Dybdegående · 13 min. læsning

Content-gap-analysen, der betaler sig selv hjem for en kop kaffes værdi i API-kredit

Én kørsel fandt 1.996 sider, konkurrenterne rangerer på, og kunden ikke gør, med 1,5 mio. månedlige søgninger bag. AI-matchet hulkort for et par dollar.

En arkæolog, der børster støv af manglende brikker i et kort over et website
De alvorlige fakta er ægte — artikelforsiderne er ikke.

Kort fortalt: En content-gap-analyse finder hver side, en konkurrent rangerer på, og du ikke gør, og fordeler så resultatet på fire teams. Træk konkurrenternes søgeord og landingssider med DataForSEO for et par dollar, lad en LLM matche deres sider mod dine, og de umatchede rækker bliver SEO-rettelser, sortimentsudvidelses-idéer, betalte kampagner og content. Én reel kørsel for en tjekkisk webshop gav 1.996 manglende sider med 1.520.840 månedlige søgninger bag sig.

I sidste måned kørte jeg denne analyse for en tjekkisk webshop i børnesegmentet. Fem konkurrentdomæner røg ind. Pipelinen trak hvert søgeord, de domæner rangerer på, foldede søgeordene sammen til sider, og en LLM matchede hver konkurrentside mod kundens site natten over. Jeg læste resultatet næste morgen over en kop kaffe.

1.996 sider, konkurrenterne dækker, og kunden ikke gør. Bag de manglende sider ligger 1.520.840 søgninger om måneden.

Ikke søgeord. Sider. 1.847 af dem er kommercielle, kategorisider shoppen kunne begynde at bygge i næste uge. De øvrige 149 er content-emner, konkurrenterne bruger til at fange forældre længe før nogen taster et produktnavn. API-regningen for hele trækket var et par dollar.

På tyve år med PPC har jeg pitchet præcis denne analyse mange gange og for det meste set kunder takke nej, og jeg bebrejdede dem aldrig. Før LLM’er startede det ærlige tilbud ved 20 til 30 timers seniortid alene for at sy søgeords-eksporterne sammen, én CSV pr. konkurrent pr. værktøj, og dertil op mod 50 timer mere til at rense resultatet og lægge det oven på sitet, som det faktisk ser ud i dag. Det skriver ingen under på for et måske. Samme job tager mig nu 2 til 5 timer. Det, der er tilbage, er at afgøre, hvad hvert hul betyder, og det er den del, der er værd at læse videre for. Her er hele trækket, med kørslens reelle tal hele vejen igennem.

1.996
sider, konkurrenterne rangerer på, og kunden ikke gør
1.520.840
månedlige søgninger bag hullerne
10.110
søgeord fordelt på 651 konkurrentsider, 5 domæner
0,60 $
pr. 1.000 SERP-forespørgsler (DataForSEO Regular)

Hele trækket i én sætning

Find de sider, dine konkurrenter rangerer på, og som du ikke engang har i porteføljen, og lav så den liste om til arbejde for fire teams. Mere SEO-synlighed, søgekampagner rettet mod landingssider, du manglede, sortimentsidéer med efterspørgslen allerede bevist, og content, der fodrer en remarketing-liste. Ét kort, fire gevinster. Alt nedenfor er, hvordan du kommer derhen.

Hvert SEO-deck har den slide, der siger, du skal gøre det her. Analysér konkurrencen, find hullerne i dit content og dine kategorier. Næsten ingen følger den, for den gamle måde var en møllesten. Eksportér en konkurrents søgeord, gæt dig frem til hvilke landingssider de førte til, stil dem op mod dit sitemap i hånden, og slås om matchene i et regneark i en uge. Så sliden forblev en slide.

To ting ændrede sig. At trække dataene holdt op med at være dyrt, for DataForSEO gør for få cent, hvad Semrush gør for et månedsabonnement. Og matchingen holdt op med at være manuel. En LLM parrer en konkurrents sider mod dine på minutter, og den behøver ikke være perfekt for at være brugbar.

Tilbage står den del, der altid var den egentlige værdi, og det var aldrig rigtig en SEO-opgave. Et content-hul er en manglende kategoriside, en produktlinje du ikke fører, en blog der fodrer en remarketing-liste. Det rører ved SEO, paid, sortiment og content-strategi på én gang.

Analysen i én kasse

  • Hvad vi er ude efter Hver side, en konkurrent rangerer på, og du ikke gør
  • Værktøjer DataForSEO API · en hvilken som helst LLM · en site-crawler
  • Pris Et par dollar i API-kredit, intet abonnement
  • Hvad du får Et prioriteret hulkort til SEO, paid, sortiment og content

Én kørsel, fem konkurrenter, 1.996 huller

Før mekanikken, resultatet. Kunden sælger børneprodukter på et konkurrencepræget tjekkisk marked, og fem rivaliserende domæner endte på shortlisten. Pipelinen matchede 651 af deres stærkeste sider, med 10.110 rangerende søgeord bag sig, mod kundens eget site-kort. Hver klynge af efterspørgsel uden en tilsvarende side hos kunden blev et hul, og hvert hul er en side, kunden kunne bygge, med søgevolumen bag allerede målt.

Hvad kørslen kom tilbage med

  • Hul-sider (de dækker det, kunden gør ikke) 1.996
  • Kommercielle huller, en landingsside mangler 1.847
  • Content-huller, et emne mangler 149
  • Månedlige søgninger bag hullerne 1.520.840
  • Evidensgrundlag 10.110 søgeord · 651 konkurrentsider · 5 domæner

Og hullerne er ikke tilfældige. Syv mønstre dækker alle på nær tre af de 1.996 rækker, og ét mønster dominerer alt andet:

Hul-sider pr. mønster fra én kørsel for en tjekkisk webshop i børnesegmentet, fem konkurrentdomæner. Mint-nuancer er kommercielle huller (en landingsside mangler), koral er content-huller (en artikel eller et hub mangler). Syv mønstre dækker 1.993 af de 1.996 huller.
Hvor de 1.996 huller kommer fra hul-sider pr. mønster
Kategori-synonym
1.640 produkterne findes, sidenavnet gør ikke
Kategori × tema
136
Content-emne
114
Kategori × brand
36
Kategori × attribut
32
Content-franchise
18
Content how-to
17
kommercielt hul (manglende landingsside) content-hul (manglende artikel)

Kategori-synonymerne er fundet. Kunden sælger allerede de produkter. Konkurrenterne giver bare hylden sin egen landingsside under det navn, folk faktisk taster, mens kunden folder de samme produkter ind i én bredere oversigt. Efterspørgsel, du betjener uden en side navngivet, som folk søger, er efterspørgsel, du er usynlig for. Og hver af de 1.640 rækker er en billig rettelse, for den kræver hverken nyt produkt, ny leverandør eller nyt content. Bare en side.

Resten af den kommercielle del skærer kategorier på andre måder. En kategori krydset med et tema, fx et aldersspænd eller en anledning. Et brands linje på sin egen side. En kategori filtreret på materiale eller funktion. Content-siden spejler det med emneklynger, hubs om licensfigurer og how-to-guider, konkurrenterne rangerer på, mens kunden aldrig har skrevet en linje.

Hulkortet, tæt på

Hver række i leverancen læses på samme måde: hvad konkurrenten har, om vi har det, og hvilket team rettelsen lander hos. Her er én række pr. mønster, med kategorinavnene generaliseret, så kunden forbliver anonym (tallene ovenfor er de reelle):

Én generaliseret eksempelrække pr. hul-mønster fra den reelle kørsel. Matchede rækker falder fra; hver ✗-række er en side, der skal bygges, med målt efterspørgsel vedhæftet.
KonkurrentsideHos osMønsterLander hos
Hovedkategoriside ✓ matchIntet hulIntet at gøre
Kategorien under det synonym, folk faktisk taster ✗ foldet ind i en bredere oversigtKategori-synonymSEO + paid
Kategorien skåret efter aldersspænd Kategori × temaSEO + paid
En sæsonbestemt gaveguide-klynge Content-emneContent + ads
Et brands linje på sin egen side Kategori × brandSortiment + SEO
Kategorien filtreret på materiale Kategori × attributWebstruktur
Et hub omkring en licensfigur Content-franchiseContent + sortiment
En how-to-guide i at vælge den rigtige størrelse Content how-toContent + remarketing

✓-rækkerne falder fra; ✗-rækkerne er leverancen.

Hvordan ser en hul-række ud med tallene på? Her er et illustrativt eksempel, et opdigtet demo-domæne og afrundede tal, ikke kundens data, så du kan se formen, uden at jeg udstiller nogen:

Illustrativt eksempel med opdigtede data. Én række pr. konkurrentside, med hele søgeordsklyngens efterspørgsel summeret bag og ét kommercielt spørgsmål vedhæftet, nemlig om vi allerede fører de produkter, siden ville sælge.
Konkurrentside (demo)Rangerende søgeordMånedlige søgningerEst. konkurrent-trafikFører 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

Hver række besvarer de to spørgsmål, et prioriteringsmøde faktisk har brug for. Hvor meget efterspørgsel ligger bag denne side, og kan vi betjene den med dagens sortiment. Et ✓ med høj efterspørgsel er en landingsside til næste sprint; et ✗ med høj efterspørgsel er en samtale med indkøb, før nogen rører websitet.

Og under hver række ligger klyngen. Fold montessori-rækken ud, og du ser de forespørgsler, den ene konkurrentside samler:

Illustrativt eksempel med opdigtede data. Søgeordsgruppen bag én enkelt række i hulkortet. Alle disse forespørgsler lander på én konkurrentside, så de får også kun én landingsside hos os.
Søgeord i klyngenMånedlige søgninger
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 seks forespørgsler er én cirkel af efterspørgsel, så de får én side. Én klynge, én landingsside, én række i hulkortet. Byg den side, og alle 38.200 månedlige søgninger bag rækken åbner sig på én gang. Det er derfor, kortet tæller sider og ikke søgeord.

Og leverancen selv er ikke et slidedeck. Kunden fik en Excel-fil til menneskene, en README, og under begge en indekseret SQLite-database med fem tabeller. Deres egen Claude kobler sig på den database og forespørger den direkte, så “hvilke content-huller bærer flest søgninger” er et spørgsmål, de taster direkte ind i dataene i stedet for en anmodning, de sender til mig og venter en dag på. En leverance, en AI kan forespørge, overlever enhver præsentation af den.

Flowet, fra ende til anden

Identificér de reelle konkurrenter, på tre måder

Spring over, hvem du tror konkurrerer, og se på, hvem der faktisk dukker op der, hvor dine penge er. Brug tre signaler i kombination. Et, kør dine vigtigste søgeforespørgsler gennem DataForSEO og notér, hvem der optræder i paid og organisk. To, læs Auction Insights i Google Ads; auktionsoverlap fortæller dig, hvor tæt en rival reelt er. Tre, træk keyword-overlap-data, hvor antallet af forespørgsler, du deler med et domæne, er en ren proxy for slægtskab. Tre lister falder sammen til én shortlist. Får du dette trin galt, arver hvert senere trin fejlen, for så kortlægger du dine huller mod en rival, der aldrig konkurrerede om dine penge.

Træk konkurrentens søgeord og landingssider

For hver konkurrent trækker du deres bedste organiske søgeord, op til omkring 100k pr. domæne, og, helt afgørende, hvilken landingsside hvert søgeord rangerer med. Ud fra position og søgevolumen kan du estimere trafikken ind på hver af deres sider. Et søgeord er en abstraktion; en side er noget, du kan kopiere, genopbygge eller rette en kampagne mod. Så du folder søgeordslisten sammen til et kort over konkurrentsider med de søgeord, der fodrer dem, og den estimerede trafik vedhæftet. Én ting skal på plads her, for den former alt nedstrøms. Du parrer ikke enkelte søgeord med enkelte sider. En enkelt konkurrent-kategoriside rangerer typisk på dusinvis af beslægtede forespørgsler, og hele den gruppe beskriver én cirkel af det, brugerne beder om. Siden er klyngen. På børne-kørslen kogte fem domæner ned til 651 sider værd at matche, med 10.110 søgeord, groft femten forespørgsler pr. side.

Kortlæg dit eget site

Du har brug for spejlbilledet af dine egne sider, og det skal være komplet, ellers jagter du “huller”, der i virkeligheden bare er sider, dit inventar glemte at liste. Crawl sitet (Screaming Frog, eller en engangs-Python-crawler, en LLM skriver på fem minutter), eksportér kategorier fra shop-platformen, læs produkt-feedet, parse XML-sitemap’et. Som regel kræver det en kombination. Én advarsel fra erfaring. Stol aldrig på sitemap’et alene. Det overser rutinemæssigt parametriske sider, filtrerede kategorivisninger og bloggen, præcis de flader en hul-analyse interesserer sig for.

Lad AI matche deres sider med dine

Det her er trinnet, der før tog en uge. Giv begge inventarer til en LLM, en open source-model er fin, og lad den parre hver klynge af konkurrent-efterspørgsel med din nærmeste tilsvarende side. Matchingen kører på sideniveau, aldrig på søgeordsniveau. LLM’en spørger, om dit site har en side, der betjener samme cirkel af efterspørgsel som konkurrentens, ikke om du ejer en side med samme navn. Og når en klynge ikke finder et hjem hos dig, er rettelsen én landingsside bygget til hele klyngen, ikke én side pr. søgeord i den. Du behøver ikke 100 % præcision; du har brug for de umatchede rækker. På børne-kørslen fortættede den umatchede efterspørgsel sig til 1.996 sider uden modstykke hos kunden. Den liste er gevinsten.

Afgør, hvad hvert hul betyder, for det er her, det holder op med at være SEO

Et hul er ikke én ting. Produkter, du allerede sælger, men aldrig gav en ordentlig side, får en landingsside-rettelse. Produkter, du ikke fører, men din leverandør gør, bliver en sortiments-shortlist med efterspørgsel vedhæftet. En konkurrents stærke ikke-kommercielle content bliver en content-brief og en remarketing-målgruppe i ét. På børne-kørslen faldt fordelingen ud som 1.847 kommercielle huller mod 149 content-huller, og hver spand lander hos et andet team med et andet budget.

Matchet behøver ikke være perfekt. Folk går i stå her og venter på 100 % præcision. Du har ikke brug for den. Et par fejlmærkede par koster dig ingenting; værdien ligger i de klart umatchede konkurrentsider, og de overlever et støjende match fint. Lever analysen ved 90 % og handl på den i stedet for at polere en model, der kun var et middel til en shortlist.

Semrush vs. DataForSEO: hvorfor prisforskellen betyder noget

Grunden til, at denne analyse gik fra “det burde vi” til “det gjorde vi”, er omkostningen, og det Semrush-tal, der tæller her, ligger højere end den listepris, folk citerer. Pro-planen til 139,95 $/md. kører et content-gap-tjek i interfacet, i hånden, med eksport-lofter. Analysen i denne artikel er programmatisk. Ét API-kald pr. konkurrentdomæne returnerer op til ~100k rangerede søgeord med den landingsside, hvert enkelt rammer. Semrush spærrer det API bag Business-planen til 499,95 $/md., og selv da starter du med nul API-units; dem køber du separat, groft 50 $ pr. million units, oven i abonnementet. DataForSEO er pay-as-you-go. En optankning på 50 $ holder i måneder, der er ingen plads at leje, og hele fem-domæne-kørslen ovenfor lå inden for et par dollar af den.

SemrushDataForSEO
Prismodel Fast abonnement; API faktureret ovenpåPay-as-you-go-kredit
UI-startplan 139,95 $/md. (Pro), tilbagevendende, eksport-begrænsetIngen plads nødvendig; kun API
Programmatisk / API-adgang Business 499,95 $/md. + API-units købt separatInkluderet, du betaler bare pr. kald
Organisk SERP, pr. 1.000 forespørgsler Indeholdt i pladsens pris0,60 $ (Regular) – 3,50 $ (Advanced, live)
Én lavsæson-hul-analyse En Business-måned + units, tilbagevendendeEt par dollar i kredit

Til et engangsjob af dybt teknisk karakter som et content-gap-træk er det forskellen mellem at låse et API-niveau til 500 $/md. op og at bruge en kop kaffes værdi i kredit. Datakvaliteten er der til dette use case; økonomien er ikke i nærheden.

To historier fra tyve år med det her

Mekanikken er ny. De træk, den låser op, har jeg set virke i to årtier; de var bare for besværlige at sætte op før. Og de 149 content-huller i børne-kørslen er begge disse historier, der venter på at ske igen.

Børnebloggen, der blev en salgskanal

En kunde i børnesegmentet blev slået på en klasse af forespørgsler, der intet havde med produkter at gøre. Konkurrenten drev en stærk blog fuld af malesider og godnathistorier, med enormt søgevolumen rettet mod præcis målgruppen, forældre. Hul-analysen blottede hele klyngen. Kunden overtog strategien, byggede indholdet, trak trafikken, lagde de besøgende i remarketing og forvandlede et “ikke-kommercielt” content-hul til køb. (Anonymiseret.)

Opskrifter til en kostform, der sælger måltidskasser

En meal-prep- og coaching-virksomhed lå ved siden af en kategori med to smukke egenskaber. Opskrift-forespørgsler har ekstremt søgevolumen, og deres klik koster cent. De strategiske konkurrenter havde bygget strukturerede opskriftssektioner og høstet en strøm af mennesker, der per definition ville spise bedre. Derfra er der et kort skridt til et produkt eller et coaching-tilbud. Hul-analysen er det, der gjorde muligheden synlig og satte tal på den. (Anonymiseret.)

Vinklen, ingen kører: lån fra et stærkere marked

Her er vinklen, der forvandler det her fra et defensivt audit til en uretfærdig fordel.

Lad os sige, du er førende på et lille marked uden seriøs konkurrence at lære af. Hul-analysen derhjemme giver intet brugbart; der er ingen foran dig at kopiere. Så kør den ikke derhjemme. Kør præcis den samme analyse mod det stærkeste, mest konkurrenceprægede udenlandske marked i din kategori.

Sprog er ingen barriere. LLM’en afbilder deres kategorier og content på dine, uanset hvilket sprog de er skrevet på. Du importerer de strategier, lederne på et modent marked allerede har bevist, kategoristrukturer, content-vinkler, sortimentsidéer, ind på et marked, hvor bogstaveligt talt ingen gør dem endnu. Du bliver first mover derhjemme ved at kopiere fremtiden fra udlandet. Det passer naturligt sammen med en fuld markedsudvidelses-analyse, når du skal afgøre, hvor det stærkere marked ligger.

Hvorfor det lukker cirklen

Bemærk, hvad der skete på børne-kørslen. Vi startede med en pæn SEO-opgave, find content-huller, og resultatet skvulpede over i sortimentsbeslutninger, betalte kampagner, remarketing-målgrupper og content-strategi. Det er ikke scope creep. Det er den faktiske form på arbejdet.

Dataene kunne altid trækkes; ingen gad, fordi den manuelle omkostning oversteg udbyttet. Nu koster trækket et par dollar, og matchingen kører natten over. Tilbage som den knappe ingrediens står det, der altid var knapt, idéen. Senioriteten til at se på et hulkort og vide, at en konkurrents maleside-blog i virkeligheden er en remarketing-kanal, og rækkevidden til at forbinde SEO, paid og sortiment i ét hoved.

Udførelsen blev let. Dømmekraften er jobbet.

Take it with you

Hent den komplette instruktion til din AI

Hele metoden ovenfor, skrevet som en brief du kan indsætte direkte i Claude eller en anden dygtig kodeagent, inklusive matching-prompten og DataForSEO-kaldene. Du leverer konkurrentlisten og API-kreditten, den bygger gap-kortet for dit site. Skriv din e-mail, så er filen din.

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

FAQ

Skal jeg virkelig ikke have 100 % match-præcision?

Korrekt. Du jagter de konkurrentsider, der ikke har noget modstykke hos dig, de umatchede rækker. En håndfuld fejlmærkede par rykker ikke den shortlist. At kræve perfektion her forsinker bare handling på en liste, der allerede var god nok.

Hvorfor DataForSEO frem for Semrush?

Omkostningsstruktur, og hvilken dør API’et gemmer sig bag. Semrushs content-gap-værktøjer bor i UI’et på Pro-planen til 139,95 $/md.; det programmatiske træk, denne artikel bruger, kræver Business-planen til 499,95 $/md. plus API-units købt ovenpå. DataForSEO er pay-as-you-go fra en kredit på 50 $, der holder i måneder, til 0,60–3,50 $ pr. 1.000 SERP-forespørgsler. Til et engangstræk af teknisk karakter er det et par dollar mod at låse en tilbagevendende Business-plads op.

Hvordan vælger jeg, hvilke konkurrenter jeg skal analysere?

Tre signaler i kombination: hvem der dukker op i paid og organisk på dine vigtigste forespørgsler (via DataForSEO), hvem der overlapper med dig i Google Ads Auction Insights, og hvem der deler flest søgeord med dig i tool-dataene. Skæringspunktet er dit reelle konkurrentsæt, og det er ofte ikke de brands, du selv ville have nævnt.

Er det her ikke bare SEO?

Det ligner SEO, og det er det ikke. På kørslen i denne artikel var 1.847 huller manglende landingssider og 149 manglende content-emner. Hullerne deler sig op i landingsside-struktur (SEO), produkter du burde føre (sortiment), målgrupper der er remarketing værd (paid) og emner der er værd at skrive om (content). Analysen er den samme; handlingerne lander hos fire forskellige teams.

Kan jeg virkelig gøre det her på tværs af sprog og markeder?

Ja, og det er den stærkeste version af det. LLM’en matcher sider efter intention, ikke ordlyd, så den parrer en udenlandsk konkurrents kategorier på dine helt fint. Hvis dit hjemmemarked ikke har nogen konkurrence at lære af, så kør analysen mod et stærkere udenlandsk marked og importér det, der virker.

Mit sitemap lister alle mine sider. Er det ikke nok for min side?

Nej. Sitemaps udelader rutinemæssigt parametriske URL’er, filtrerede kategorivisninger og dele af bloggen, præcis der hvor hullerne bor. Byg dit eget site-kort fra et crawl plus produkt-feedet plus en kategori-eksport, og behandl sitemap’et som ét input, ikke som den fulde sandhed.


CTA: Nysgerrig efter, hvad din stærkeste konkurrent rangerer på, og du ikke gør? Lad os trække hulkortet.

Pointen med det hele

Vil du have dette niveau af indsigt i din konto?

Én e-mail. Jeg siger dig ærligt, om det er besværet værd for dit setup.

Kontakt →