Djupdykning · 13 min läsning

Innehållsgapsanalysen som betalar sig för en kaffes värde i API-krediter

En körning hittade 1 996 sidor konkurrenterna rankar på men inte kunden, med 1,5 miljoner sökningar i månaden bakom. AI-matchad gapkarta för några dollar.

En arkeolog som borstar damm från saknade brickor i en karta över en webbplats
De seriösa fakta är på riktigt — artikelomslagen är det inte.

Kort sagt: En innehållsgapsanalys hittar varje sida en konkurrent rankar på men inte du, och fördelar sedan resultatet på fyra team. Dra konkurrenternas sökord och målsidor med DataForSEO för några dollar, låt en LLM matcha deras sidor mot dina, och de omatchade raderna blir SEO-fixar, idéer för sortimentsutökning, betalda kampanjer och innehåll. En verklig körning för en tjeckisk webbutik gav 1 996 saknade sidor med 1 520 840 sökningar i månaden bakom sig.

Förra månaden körde jag den här analysen för en tjeckisk webbutik i barnsegmentet. Fem konkurrentdomäner gick in. Pipelinen drog varje sökord de domänerna rankar på, vek ihop sökorden till sidor, och en LLM matchade varje konkurrentsida mot kundens sajt över natten. Jag läste resultatet nästa morgon över en kopp kaffe.

1 996 sidor som konkurrenterna täcker och kunden inte gör. Bakom de saknade sidorna, 1 520 840 sökningar i månaden.

Inte sökord. Sidor. 1 847 av dem är kommersiella, kategorisidor butiken kunde börja bygga nästa vecka. De övriga 149 är innehållsämnen konkurrenterna använder för att fånga föräldrar långt innan någon skriver in ett produktnamn. API-notan för hela dragningen var några dollar.

På tjugo år med PPC har jag pitchat exakt den här analysen många gånger och mest sett kunder tacka nej, och jag klandrade dem aldrig. Före LLM:er började den ärliga offerten på 20 till 30 timmar seniortid bara för att sy ihop sökordsexporterna, en CSV per konkurrent per verktyg, och sedan upp till 50 timmar till för att städa resultatet och lägga det mot sajten som den faktiskt ser ut i dag. Ingen skriver på det för ett kanske. Samma jobb tar mig nu 2 till 5 timmar. Det som återstår är att avgöra vad varje gap betyder, och det är den delen som är värd att läsa vidare för. Här är hela upplägget, med körningens verkliga siffror hela vägen.

1 996
sidor konkurrenterna rankar på men inte kunden
1 520 840
sökningar i månaden bakom gapen
10 110
sökord över 651 konkurrentsidor, 5 domäner
0,60 $
per 1 000 SERP-frågor (DataForSEO Regular)

Hela upplägget i en mening

Hitta sidorna dina konkurrenter rankar på som du inte ens har i portföljen, och gör sedan den listan till arbete för fyra team. Mer SEO-synlighet, sökkampanjer riktade mot målsidor du saknade, sortimentsidéer med efterfrågan redan bevisad, och innehåll som matar en remarketinglista. En karta, fyra utdelningar. Allt nedan är hur du tar dig dit.

Varje SEO-presentation har sliden som säger åt dig att göra det här. Analysera konkurrensen, hitta gapen i ditt innehåll och dina kategorier. Nästan ingen följer den, eftersom det gamla sättet var ett slit. Exportera en konkurrents sökord, ögna igenom vilka målsidor de ledde till, ställ upp dem mot din sitemap för hand, och bråka om matchningar i ett kalkylark i en vecka. Så sliden förblev en slide.

Två saker ändrades. Att dra datan slutade vara dyrt, eftersom DataForSEO gör för ören det Semrush gör för en månadsprenumeration. Och matchningen slutade vara manuell. En LLM parar en konkurrents sidor mot dina på minuter, och den behöver inte vara perfekt för att vara användbar.

Det som återstår är delen som alltid var det verkliga värdet, och det var aldrig riktigt en SEO-uppgift. Ett innehållsgap är en saknad kategorisida, en produktlinje du inte lagerför, en blogg som matar en remarketinglista. Det berör SEO, betalt, sortiment och innehållsstrategi på en gång.

Analysen i en ruta

  • Vad vi är ute efter Varje sida en konkurrent rankar på som inte du
  • Verktyg DataForSEO API · valfri LLM · en sajt-crawler
  • Kostnad Några dollar API-krediter, ingen prenumeration
  • Vad du får En rankad gapkarta för SEO, betalt, sortiment och innehåll

En körning, fem konkurrenter, 1 996 gap

Innan mekaniken, resultatet. Kunden säljer barnartiklar på en konkurrensutsatt tjeckisk marknad, och fem rivaliserande domäner hamnade på kortlistan. Pipelinen matchade 651 av deras starkaste sidor, med 10 110 rankade sökord bakom sig, mot kundens egen sajtkarta. Varje kluster av efterfrågan utan motsvarande sida hos kunden blev ett gap, och varje gap är en sida kunden kunde bygga, med sökvolymen bakom redan uppmätt.

Vad körningen gav

  • Gapsidor (de täcker det, kunden gör det inte) 1 996
  • Kommersiella gap, en målsida saknas 1 847
  • Innehållsgap, ett ämne saknas 149
  • Sökningar i månaden bakom gapen 1 520 840
  • Evidensbas 10 110 sökord · 651 konkurrentsidor · 5 domäner

Och gapen är inte slumpmässiga. Sju mönster täcker alla utom tre av de 1 996 raderna, och ett mönster dominerar allt annat:

Gapsidor per mönster från en körning för en tjeckisk webbutik i barnsegmentet, fem konkurrentdomäner. Mintnyanser är kommersiella gap (en målsida saknas), korall är innehållsgap (en artikel eller ett nav saknas). Sju mönster täcker 1 993 av de 1 996 gapen.
Var de 1 996 gapen kommer ifrån gapsidor per mönster
Kategorisynonym
1 640 produkterna finns, sidnamnet gör det inte
Kategori × tema
136
Innehållsämne
114
Kategori × varumärke
36
Kategori × attribut
32
Innehållsfranchise
18
Innehålls-how-to
17
kommersiellt gap (saknad målsida) innehållsgap (saknad artikel)

Kategorisynonymerna är fyndet. Kunden säljer redan de produkterna. Konkurrenterna ger helt enkelt hyllan en egen målsida under namnet folk faktiskt skriver in, medan kunden viker in samma produkter i en bredare listning. Efterfrågan du betjänar utan en sida döpt som folk söker är efterfrågan du är osynlig för. Och var och en av de 1 640 raderna är en billig fix, eftersom den varken kräver ny produkt, ny leverantör eller nytt innehåll. Bara en sida.

Resten av den kommersiella delen skär kategorier på andra sätt. En kategori korsad med ett tema, säg ett åldersspann eller ett tillfälle. Ett varumärkes linje på sin egen sida. En kategori filtrerad på material eller funktion. Innehållssidan speglar det med ämneskluster, nav kring licensfigurer och how-to-guider som konkurrenterna rankar på medan kunden aldrig skrivit en rad.

Gapkartan, på nära håll

Varje rad i leveransen läses på samma sätt: vad konkurrenten har, om vi har det, och vilket team fixen landar på. Här är en rad per mönster, med kategorinamnen generaliserade så att kunden förblir anonym (siffrorna ovan är de verkliga):

En generaliserad exempelrad per gapmönster från den verkliga körningen. Matchade rader faller bort; varje ✗-rad är en sida att bygga, med uppmätt efterfrågan knuten till sig.
KonkurrentsidaPå vår sidaMönsterLandar på
Huvudkategorisida ✓ matchInget gapInget att göra
Kategorin under synonymen folk faktiskt skriver in ✗ invikt i en bredare listningKategorisynonymSEO + betalt
Kategorin skuren efter åldersspann Kategori × temaSEO + betalt
Ett säsongskluster med presentguider InnehållsämneInnehåll + annonser
Ett varumärkes linje på egen sida Kategori × varumärkeSortiment + SEO
Kategorin filtrerad på material Kategori × attributWebbstruktur
Ett nav kring en licensfigur InnehållsfranchiseInnehåll + sortiment
En how-to-guide om att välja rätt storlek Innehålls-how-toInnehåll + remarketing

✓-raderna faller bort; ✗-raderna är leveransen.

Hur ser en gaprad ut med siffrorna på? Här är ett illustrativt exempel, en påhittad demodomän och avrundade siffror, inte kundens data, så att du kan se formen utan att jag hänger ut någon:

Illustrativt exempel med påhittade data. En rad per konkurrentsida, med hela sökordsklustrets efterfrågan summerad bakom och en kommersiell fråga knuten till sig, nämligen om vi redan för produkterna sidan skulle sälja.
Konkurrentsida (demo)Rankade sökordSökningar/månEst. konkurrenttrafikLagerför vi det?
toydemo.example/montessori-toys 11238 2009 800
toydemo.example/wooden-toys 8422 4006 100
toydemo.example/balance-bikes 5714 9004 300
toydemo.example/kids-carnival-costumes 419 7002 600

Varje rad svarar på de två frågor ett prioriteringsmöte faktiskt behöver. Hur mycket efterfrågan ligger bakom den här sidan, och kan vi betjäna den med dagens sortiment. Ett ✓ med hög efterfrågan är en målsida att bygga nästa sprint; ett ✗ med hög efterfrågan är ett samtal med inköp innan någon rör webbplatsen.

Och under varje rad ligger klustret. Vik ut montessori-raden och du ser frågorna den enda konkurrentsidan samlar:

Illustrativt exempel med påhittade data. Sökordsgruppen bakom en enda rad i gapkartan. Alla de här frågorna landar på en och samma konkurrentsida, så de får en enda målsida hos oss också.
Sökord i klustretSökningar/mån
montessori toys 18 100
montessori toys for 1 year old 5 400
wooden montessori toys 4 900
montessori sensory toys 3 800
montessori baby toys 3 300
best montessori toys for toddlers 2 700

De sex frågorna är en cirkel av efterfrågan, så de får en sida. Ett kluster, en målsida, en rad i gapkartan. Bygg den sidan och hela 38 200 sökningar i månaden bakom raden öppnar sig på en gång. Det är därför kartan räknar sidor i stället för sökord.

Och leveransen i sig är ingen presentation. Kunden fick en Excel-fil för människorna, en README, och under bägge en indexerad SQLite-databas med fem tabeller. Deras egen Claude kopplar upp sig mot den databasen och frågar den direkt, så “vilka innehållsgap bär flest sökningar” är en fråga de skriver rakt in i datan i stället för en förfrågan de skickar till mig och väntar en dag på. En leverans en AI kan fråga överlever varje presentation av den.

Flödet, från början till slut

Identifiera de verkliga konkurrenterna, på tre sätt

Hoppa över vem du tror konkurrerar och titta på vem som faktiskt dyker upp där dina pengar finns. Använd tre signaler tillsammans. Ett, kör dina viktigaste sökfrågor genom DataForSEO och notera vem som syns i betalt och organiskt. Två, läs Auction Insights i Google Ads; auktionsöverlapp berättar hur nära en rival verkligen är. Tre, dra data om sökordsöverlapp, där antalet frågor du delar med en domän är en ren proxy för släktskap. Tre listor kollapsar till en kortlista. Får du det här steget fel ärver varje senare steg misstaget, eftersom du då skulle kartlägga dina gap mot en rival som aldrig konkurrerade om dina pengar.

Dra konkurrentens sökord och målsidor

För varje konkurrent, dra deras främsta organiska sökord, upp till ungefär 100k per domän, och, det avgörande, vilken målsida varje sökord rankar med. Från position och sökvolym kan du uppskatta trafiken som flödar in till var och en av deras sidor. Ett sökord är en abstraktion; en sida är något du kan kopiera, bygga om eller rikta en kampanj mot. Så vik ihop sökordslistan till en karta över konkurrentsidor med sökorden som matar dem och den uppskattade trafiken knuten till sig. En sak måste sitta här, eftersom den formar allt nedströms. Du parar inte enskilda sökord med enskilda sidor. En enda konkurrentkategorisida rankar typiskt på dussintals besläktade frågor, och hela den gruppen beskriver en cirkel av vad användarna frågar efter. Sidan är klustret. På barnkörningen kokade fem domäner ner till 651 sidor värda att matcha, med 10 110 sökord, ungefär femton frågor per sida.

Kartlägg din egen sajt

Du behöver spegelbilden av dina egna sidor, och den måste vara komplett, annars jagar du “gap” som egentligen bara är sidor ditt lager glömde lista. Crawla sajten (Screaming Frog, eller en slit-och-släng-crawler i Python som en LLM skriver på fem minuter), exportera kategorier från e-handelsplattformen, läs produktfeeden, tolka XML-sitemapen. Oftast krävs en kombination. En varning från erfarenhet. Lita aldrig på sitemapen ensam. Den missar rutinmässigt parametriska sidor, filtrerade kategorivyer och bloggen, exakt de ytor en gapanalys bryr sig om.

Låt AI matcha deras sidor mot dina

Det här är steget som förr tog en vecka. Lämna bägge inventarierna till en LLM, en modell med öppen källkod duger, och låt den para varje kluster av konkurrentefterfrågan med din närmaste motsvarande sida. Matchningen körs på sidnivå, aldrig på sökordsnivå. LLM:en frågar om din sajt har en sida som betjänar samma cirkel av efterfrågan som konkurrentens, inte om du äger en sida med samma namn. Och när ett kluster inte hittar något hem på din sida är fixen en målsida byggd för hela klustret, inte en sida per sökord i det. Du behöver inte 100 % träffsäkerhet; du behöver de omatchade raderna. På barnkörningen kondenserades den omatchade efterfrågan till 1 996 sidor utan motsvarighet hos kunden. Den listan är vinsten.

Avgör vad varje gap betyder, för det är här det slutar vara SEO

Ett gap är inte en sak. Produkter du redan säljer men aldrig gav en riktig sida får en målsidesfix. Produkter du inte lagerför men din leverantör för blir en sortimentskortlista med efterfrågan knuten till sig. En konkurrents starka icke-kommersiella innehåll blir en innehållsbrief och en remarketingmålgrupp i ett. På barnkörningen föll fördelningen ut som 1 847 kommersiella gap mot 149 innehållsgap, och varje fack landar på ett annat team med en annan budget.

Matchningen behöver inte vara perfekt. Folk fastnar här och väntar på 100 % precision. Du behöver den inte. Ett par felmärkta par kostar dig ingenting; värdet ligger i de tydligt omatchade konkurrentsidorna, och de överlever en brusig matchning alldeles utmärkt. Skeppa analysen vid 90 % och agera på den, i stället för att polera en modell som ändå bara var ett medel till en kortlista.

Semrush vs. DataForSEO: varför prisklyftan spelar roll

Anledningen att den här analysen gick från “vi borde” till “vi gjorde” är kostnaden, och Semrush-siffran som spelar roll här är högre än listpriset folk citerar. Pro-planen för 139,95 $/mån kör en innehållsgapskontroll i gränssnittet, för hand, med exporttak. Analysen i den här artikeln är programmatisk. Ett API-anrop per konkurrentdomän returnerar upp till ~100k rankade sökord med målsidan var och en träffar. Semrush gömmer det API:et bakom Business-planen för 499,95 $/mån, och även då börjar du med noll API-enheter; dem köper du separat, ungefär 50 $ per miljon enheter, ovanpå prenumerationen. DataForSEO är betala per användning. En påfyllning på 50 $ räcker i månader, det finns ingen licens att hyra, och hela femdomänskörningen ovan rymdes i några dollar av den.

SemrushDataForSEO
Prismodell Fast prenumeration; API debiteras ovanpåBetala-per-användning-kredit
Ingångsplan med gränssnitt 139,95 $/mån (Pro), återkommande, exporttakIngen licens behövs; bara API
Programmatisk / API-åtkomst Business 499,95 $/mån + API-enheter köpta separatInkluderat, du betalar bara per anrop
Organisk SERP, per 1 000 frågor Inbakat i licensen0,60 $ (Regular) – 3,50 $ (Advanced, live)
En engångs-gapanalys En Business-månad + enheter, återkommandeNågra dollar i krediter

För ett engångsjobb, djupt tekniskt som en innehållsgapsdragning, är det skillnaden mellan att låsa upp en API-nivå för 500 $/mån och att lägga en kaffes värde i krediter. Datakvaliteten finns där för det här användningsfallet; ekonomin är inte i närheten.

Två berättelser från tjugo år av att göra det här

Mekaniken är ny. Spelen den låser upp är sådana jag sett funka i två decennier; de var bara för arbetskrävande att sätta upp förr. Och de 149 innehållsgapen i barnkörningen är bägge de här berättelserna som väntar på att hända igen.

Barnbloggen som blev en försäljningskanal

En kund i barnsegmentet blev slagen på en klass av frågor som inte hade något med produkter att göra. Konkurrenten drev en stark blogg full av målarbilder och godnattsagor, med enorm sökvolym riktad mot exakt målgruppen, föräldrar. Gapanalysen lyfte fram hela klustret. Kunden anammade strategin, byggde innehållet, drog trafiken, släppte de besökarna i remarketing och förvandlade ett “icke-kommersiellt” innehållsgap till köp. (Anonymiserat.)

Recept för en kost som säljer matlådor

En verksamhet inom matlådor och coaching låg intill en kategori med två vackra egenskaper. Receptfrågor har extrem sökvolym, och deras klick kostar ören. De strategiska konkurrenterna hade byggt strukturerade receptsektioner och skördat en ström av människor som per definition ville äta bättre. Därifrån är det ett kort steg till en produkt eller ett coachingerbjudande. Gapanalysen är det som gjorde möjligheten synlig och satte siffror på den. (Anonymiserat.)

Vändningen ingen kör: låna från en starkare marknad

Här är vinkeln som förvandlar det här från en defensiv granskning till ett orättvist övertag.

Säg att du är ledare på en liten marknad utan seriös konkurrens att lära av. Gapanalysen hemma returnerar inget användbart; det finns ingen före dig att kopiera. Så kör den inte hemma. Kör exakt samma analys mot den starkaste, mest konkurrensutsatta utländska marknaden i din kategori.

Språk är ingen barriär. LLM:en kartlägger deras kategorier och innehåll mot dina oavsett vilket språk de är skrivna på. Du importerar strategierna som ledarna på en mogen marknad redan bevisat, kategoristrukturer, innehållsvinklar, sortimentsidéer, till en marknad där bokstavligen ingen gör dem ännu. Du blir först ut på hemmaplan genom att kopiera framtiden från utlandet. Det går hand i hand med en full marknadsexpansionsanalys när du ska avgöra var den starkare marknaden finns.

Varför det här sluter cirkeln

Lägg märke till vad som hände på barnkörningen. Vi började med en prydlig SEO-uppgift, hitta innehållsgap, och resultatet spillde över i sortimentsbeslut, betalda kampanjer, remarketingmålgrupper och innehållsstrategi. Det är inte scope creep. Det är arbetets faktiska form.

Datan gick alltid att dra; ingen brydde sig, eftersom den manuella kostnaden vägde tyngre än utdelningen. Nu kostar dragningen några dollar och matchningen körs över natten. Det som återstår som den knappa resursen är det som alltid var knappt, idén. Senioriteten att titta på en gapkarta och veta att en konkurrents målarbildsblogg egentligen är en remarketingkanal, och bredden att koppla SEO, betalt och sortiment i ett och samma huvud.

Genomförandet blev lätt. Omdömet är jobbet.

Take it with you

Ladda ner de kompletta instruktionerna till din AI

Hela metoden ovan, skriven som en brief du kan klistra in direkt i Claude eller någon annan kapabel kodagent, inklusive matchningsprompten och DataForSEO-anropen. Du står för konkurrentlistan och API-krediten, den bygger gap-kartan för din sajt. Lämna din e-post så är filen din.

One file, one list. I only write when there's something worth reading.

FAQ

Behöver jag verkligen inte 100 % träffsäkerhet i matchningen?

Just det. Du jagar konkurrentsidorna utan motsvarighet på din sida, de omatchade raderna. En handfull felmärkta par rubbar inte den listan. Att kräva perfektion här fördröjer bara att du agerar på en lista som redan var tillräckligt bra.

Varför DataForSEO i stället för Semrush?

Kostnadsstrukturen, och bakom vilken dörr API:et ligger. Semrushs innehållsgapsverktyg finns i gränssnittet på Pro-planen för 139,95 $/mån; den programmatiska dragningen den här artikeln använder kräver Business-planen för 499,95 $/mån plus API-enheter köpta ovanpå. DataForSEO är betala per användning från en kredit på 50 $ som räcker i månader, för 0,60–3,50 $ per 1 000 SERP-frågor. För en teknisk engångsdragning är det några dollar mot att låsa upp en återkommande Business-licens.

Hur väljer jag vilka konkurrenter jag ska analysera?

Tre signaler tillsammans: vem som dyker upp i betalt och organiskt för dina nyckelfrågor (via DataForSEO), vem som överlappar med dig i Google Ads Auction Insights, och vem som delar flest sökord med dig i verktygsdatan. Skärningspunkten är din verkliga konkurrentuppsättning, och det är ofta inte de varumärken du själv hade gissat på.

Är inte det här bara SEO?

Det ser ut som SEO och är det inte. På körningen i den här artikeln var 1 847 gap saknade målsidor och 149 saknade innehållsämnen. Gapen delas upp i målsidesstruktur (SEO), produkter du borde lagerföra (sortiment), målgrupper värda remarketing (betalt) och ämnen värda att skriva om (innehåll). Analysen är densamma; åtgärderna landar på fyra olika team.

Kan jag verkligen göra det här över språk och marknader?

Ja, och det är den starkaste versionen av det. LLM:en matchar sidor utifrån avsikt, inte ordval, så den parar en utländsk konkurrents kategorier mot dina utan problem. Saknar din hemmamarknad konkurrens att lära av, kör analysen mot en starkare utländsk marknad och importera det som funkar.

Min sitemap listar alla mina sidor. Räcker inte det för min sida?

Nej. Sitemaps utelämnar rutinmässigt parametriska URL:er, filtrerade kategorivyer och delar av bloggen, precis där gapen finns. Bygg din egen sajtkarta från en crawl plus produktfeeden plus en kategoriexport, och behandla sitemapen som en av flera indata, inte som sanningskällan.


CTA: Nyfiken på vad din starkaste konkurrent rankar på som inte du? Nu drar vi gapkartan.

Hela poängen med det här

Vill du ha den här nivån av insyn i ditt konto?

Ett mejl. Jag säger dig ärligt om det är värt det för din uppsättning.

Hör av dig →