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.
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:
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):
| Konkurrentside | Hos os | Mønster | Lander hos |
|---|---|---|---|
| Hovedkategoriside | ✓ match | Intet hul | Intet at gøre |
| Kategorien under det synonym, folk faktisk taster | ✗ foldet ind i en bredere oversigt | Kategori-synonym | SEO + paid |
| Kategorien skåret efter aldersspænd | ✗ | Kategori × tema | SEO + paid |
| En sæsonbestemt gaveguide-klynge | ✗ | Content-emne | Content + ads |
| Et brands linje på sin egen side | ✗ | Kategori × brand | Sortiment + SEO |
| Kategorien filtreret på materiale | ✗ | Kategori × attribut | Webstruktur |
| Et hub omkring en licensfigur | ✗ | Content-franchise | Content + sortiment |
| En how-to-guide i at vælge den rigtige størrelse | ✗ | Content how-to | Content + 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:
| Konkurrentside (demo) | Rangerende søgeord | Månedlige søgninger | Est. konkurrent-trafik | Fører vi det? |
|---|---|---|---|---|
| toydemo.example/montessori-toys | 112 | 38.200 | 9.800 | ✓ |
| toydemo.example/wooden-toys | 84 | 22.400 | 6.100 | ✓ |
| toydemo.example/balance-bikes | 57 | 14.900 | 4.300 | ✓ |
| toydemo.example/kids-carnival-costumes | 41 | 9.700 | 2.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:
| Søgeord i klyngen | Må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.
| Semrush | DataForSEO | |
|---|---|---|
| Prismodel | Fast abonnement; API faktureret ovenpå | Pay-as-you-go-kredit |
| UI-startplan | 139,95 $/md. (Pro), tilbagevendende, eksport-begrænset | Ingen plads nødvendig; kun API |
| Programmatisk / API-adgang | Business 499,95 $/md. + API-units købt separat | Inkluderet, du betaler bare pr. kald |
| Organisk SERP, pr. 1.000 forespørgsler | Indeholdt i pladsens pris | 0,60 $ (Regular) – 3,50 $ (Advanced, live) |
| Én lavsæson-hul-analyse | En Business-måned + units, tilbagevendende | Et 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.
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.