Kort fortalt: Find hver side, en konkurrent rangerer på, og du ikke gør — og lav så den liste om til tre gevinster: mere SEO-synlighed, søgekampagner rettet mod manglende landingssider og content til research-trafik. DataForSEO trækker dataene for et par cent, en LLM matcher siderne på minutter — det, der hos Semrush ville være et abonnement til 500 $/md., koster her et par dollar i API-kredit.
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 tre gevinster: mere SEO-synlighed, søgekampagner rettet mod landingssider, du manglede, og ikke-kommerciel trafik, du ellers aldrig ville have rørt. Ét kort, tre forskellige udbetalinger, der lander hos tre forskellige teams. Det er hele analysen; alt nedenfor er, hvordan du rent faktisk kommer derhen.
Hvert SEO-deck har den slide, der fortæller dig det her — analysér konkurrencen, find hullerne i dit content og dine kategorier. Næsten ingen følger den, fordi den gamle måde var en møllesten: eksportér en konkurrents søgeord, gæt dig til hvilke landingssider de førte til, stil dem manuelt op mod dit eget sitemap og slås en hel uge i et regneark om matchene. Så sliden forblev en slide.
To ting ændrede sig. At trække dataene holdt op med at være dyrt: DataForSEO gør for et par 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 det behøver ikke være perfekt for at være brugbart.
Det, der står tilbage, er den del, der altid var den egentlige værdi — og det var aldrig rigtigt 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. Sådan kører jeg den.
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 En prioriteret shortlist af content-, sortiments- & kampagnehuller
Én shop, fire konkurrenter — hvordan det ser ud i virkeligheden
Før mekanikken: formen på det. Lad os sige, at ABC er en mellemstor outdoor-grej-webshop: telte, trailsko, regnjakker, rygsække. Du trækker det reelle konkurrentsæt, og fire navne kommer tilbage — og det interessante er hvorfor hver enkelt slår ABC organisk:
- Konkurrent 1 driver en ægte god blog om, hvordan man vælger en trailløbssko. Den trækker tusindvis af købere i research-fasen — før de overhovedet søger efter et produkt.
- Konkurrent 2 ejer how-to-indholdet om at imprægnere en regnjakke på ny — et emne, ABC aldrig har skrevet en eneste linje om, men som enhver jakkeejer før eller siden søger efter.
- Konkurrent 3 har et dybt kategoritræ: separate landingssider til børneregnjakker, 3-sæsonstelte, ultralette rygsække — granulære sider, som ABC i dag pakker ind i én generisk oversigt.
- Konkurrent 4 byder ganske enkelt alle over på brand-termer. Det er støj, ikke et content-hul — drop den.
Det ene kort giver ABC tre konkrete træk:
- Content — skriv trailsko- og jakkepleje-guiderne, fang den research-fase-trafik, bloggene æder, og smid de læsere ind i en remarketing-liste.
- Paid — så snart de granulære landingssider findes, ret søgekampagner mod dem (
børneregnjakker→ børneregnjakke-siden) i stedet for at smide hvert klik ind på én stump kategoriside. - Sortiment & struktur — byg de manglende kategorisider til linjer, ABC allerede fører, men aldrig gav et ordentligt hjem, og markér produktlinjer, en konkurrent fører, og ABC ikke gør.
Samme analyse, tre teams, tre budgetter. (Illustrativt eksempel.) Og sådan producerer du det kort.
Flowet, fra ende til anden
Identificér de reelle konkurrenter — på tre måder
Ikke hvem du tror konkurrerer — hvem der faktisk dukker op der, hvor dine penge er. Brug tre signaler i kombination. Et: send 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 af reelle konkurrenter. Hvorfor først: gør du det her forkert, arver hvert senere trin fejlen — du ville kortlægge dine huller mod en rival, der aldrig rigtigt konkurrerede om dine penge.
Træk konkurrentens søgeord og landingssider
For hver konkurrent trækker du deres bedste organiske søgeord — op til ~100 tusind — og, afgørende, hvilken landingsside hvert søgeord rangerer. Ud fra position × søgevolumen kan du estimere den trafik, der flyder ind på hver af deres sider. Hvorfor sider, ikke søgeord: et søgeord er en abstraktion; en side er noget, du kan kopiere, genopbygge eller rette en kampagne mod. Så du kollapser søgeordslisten til et kort: konkurrentside × estimeret trafik × de søgeord, der fodrer den. En række kunne lyde: rival.com/trail-running-shoes · top-søgeord trail running shoes · ~8.000 estimerede besøg/md. (Illustrativt eksempel.)
Kortlæg dit eget site
Du har brug for spejlbilledet af dine egne sider. Hvorfor dette trin: du kan kun kalde noget et “hul”, hvis du er sikker på, at det mangler hos dig — så dit eget kort 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 din shop-platform, læs produkt-feedet, eller parse XML-sitemap’et — som regel en kombination. En advarsel: stol ikke på sitemap’et alene. Det overser rutinemæssigt parametriske sider, filtrerede kategorivisninger og bloggen — netop de flader, en hul-analyse interesserer sig for.
Lad AI'en 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 konkurrentside med dit nærmeste modstykke. Du behøver ikke 100 % præcision; du har brug for de umatchede rækker. Outputtet er gevinsten: de sider, de har, der giver dem trafik og placeringer, og som du simpelthen ikke har.
Afgør hvad hvert hul betyder — det er her, det holder op med at være SEO
Et hul er ikke én ting. Sortér hvert ind i en spand: produkter du allerede sælger, men ikke har en kategoriside til → ret din landingsside-struktur. Produkter du ikke sælger, men din leverandør fører → en sortimentsudvidelses-shortlist med efterspørgsel vedhæftet. En konkurrents stærke ikke-kommercielle blog, der trækker præcis din målgruppe → en content-strategi. Hver spand lander hos et forskelligt team — og flere af dem flyder direkte ind i dine kampagner.
For eksempel: deres /cordless-drills-side trækker ~12.000 besøg/md., du sælger boremaskiner, men kun på en generisk /power-tools-side — det er en landingsside-struktur-rettelse, ikke et nyt blogindlæg. Den næste umatchede række, /drill-bit-buying-guide, er ren content. Samme hulkort, to forskellige teams. (Illustrativt eksempel.)
Matchet behøver ikke være perfekt. Folk går i stå her og venter på 100 % præcision. Du har ikke brug for det. Et par fejlmærkede par koster dig ingenting; værdien ligger i de klart umatchede konkurrentsider, og dem overlever et støjende match fint. Lever analysen ved 90 % og handl på den i stedet for at polere en model, der kun nogensinde var et middel til en shortlist.
Se det køre: hvad hvert trin faktisk spytter ud
De fem trin ovenfor er kortet; det her er terrænet. Nedenfor står det konkrete artefakt, hvert trin rækker dig — det, du bogstaveligt talt stirrer på, før du går videre. Formerne er præcis det, værktøjerne returnerer; rækkerne er illustrative, ikke en rigtig kunde. (Illustrative eksempler hele vejen igennem.)
Trin 1 → en konkurrent-shortlist, scoret. Du kører de tre signaler og kollapser dem til én tabel. De brands, du ville have nævnt fra maven, er ikke altid dem, der overlever alle tre:
Domain Paid/Org Overlap Shared Verdict
rival-a.com yes/yes 71% 4,120 core
niche-c.com yes/yes 44% 2,300 core
rival-b.com no /yes 12% 3,880 content-only rival
bigbox.com yes/yes 9% 910 too broad — drop
Tre ud af fire overlever; megabutikken, der “åbenlyst” konkurrerer, falder fra, fordi overlappet er støj.
Trin 2 → et sidekort med penge på. For hver overlevende konkurrent returnerer ét API-kald rangerede søgeord og den landingsside, hvert enkelt rammer. Aggregér efter side, og du holder op med at kigge på søgeord:
Page Keyword Pos Vol Visits/mo
/trail-shoes trail running shoe 2 18,100 ~8,000
/waterproof-jackets waterproof jacket 4 12,000 ~3,200
/blog/clean-shoes clean trail shoes 1 2,400 ~1,500
/gaiters running gaiters 6 900 ~640
Hver række er en side, der giver en konkurrent reel trafik — et mål, ikke en søgeterm.
Trin 3 → dit eget inventar, og hvor meget sitemap’et oversprang. Spejl det for dit site fra crawl + feed + kategori-eksport. Pointen med at trække fire kilder bliver synlig i det øjeblik, du tæller dem:
Source Pages found
XML sitemap 412
Screaming Frog crawl 938
Product feed 1,205 SKUs
Category export 64
Deduped own-site map 1,010 URLs
Sitemap’et så 412 sider. Det rigtige kort er 1.010. Analysen lever i de ~600, sitemap’et aldrig viste dig.
Trin 4 → NO MATCH-rækkerne, prioriteret. Giv begge inventarer til LLM’en med matching-prompten. Den returnerer én dom pr. konkurrentside; du beholder kun hullerne, sorteret efter trafik:
Competitor page Closest OURS Verdict Visits/mo
/trail-shoes /running-shoes MATCH —
/waterproof-jackets — NO MATCH 3,200
/blog/clean-shoes — NO MATCH 1,500
/gaiters — NO MATCH 640
Ét MATCH falder fra; tre prioriterede huller bliver tilbage. Den fire-rækkers tabel er hele leverancen i sin spæde form.
Trin 5 → hulkortet med en ejer. Tag hvert hul med en spand og det team, det lander hos. Nu er det ikke en SEO-rapport — det er en arbejdsordre:
Gap Visits/mo Bucket Lands on
/waterproof-jackets 3,200 sell it, no LP SEO / web
/blog/clean-shoes 1,500 non-commercial Content + ads
/gaiters 640 don't stock it yet Assortment
Ét kort, tre teams, hver række dimensioneret efter trafik. Det er det øjeblik, hvor en “content-gap-analyse” holder op med at være en SEO-pligtopgave og bliver en plan på tværs af teams.
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. Men analysen i denne artikel er programmatisk: ét API-kald pr. konkurrent-domæne, ~100 tusind rangerede søgeord og deres landingssider på én gang. Semrush spærrer sit 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, ~10 units pr. rangeret søgeord-række), oven i abonnementet. DataForSEO er pay-as-you-go: en optankning på 50 $ holder i måneder, der er ingen plads at leje eller niveau at låse op, og du betaler kun for de forespørgsler, du faktisk trækker.
| 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; 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 af sammenlignelig.
To historier fra tyve år med det her
Mekanikken er ny. De træk, den låser op, er nogle, jeg har set virke i to årtier — de var bare for besværlige at sætte op før.
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 — malesider, 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, smed de besøgende ind 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 sad ved siden af en kategori med to smukke egenskaber: opskrift-forespørgsler har ekstremt søgevolumen og cent-niveau CPC’er. 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 var 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 gør det 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 indhold 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 endnu gør det. 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 lige skete. Vi startede med en pæn SEO-opgave — “find content-huller” — og den skvulpede over i sortimentsbeslutninger, paid-kampagner, remarketing-målgrupper og content-strategi. Det er ikke scope creep. Det er den faktiske form på arbejdet.
Dataene var altid mulige at trække; ingen gad, fordi den manuelle omkostning oversteg udbyttet. Nu er trækket billigt, og matchingen er automatiseret. Det, der bliver tilbage som den knappe ingrediens, er 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.
Den del, du kan stjæle
Sidematching-prompt — parrer en konkurrents sider med dine og markerer hullerne:
You are a site-structure analyst. You get two lists of pages:
COMPETITOR (url, top keywords, estimated monthly traffic) and OURS (url, title).
For each COMPETITOR page, return the single closest OURS page, or "NO MATCH".
Then output only the NO MATCH rows, sorted by estimated traffic descending.
Match on intent and topic, not exact wording. Cross-language matches are allowed.
100% precision is not required — never invent a match to avoid "NO MATCH".Rangerede søgeord + landingssider — DataForSEO Labs, ét kald pr. konkurrent-domæne:
curl -s "https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live" \
-u "$LOGIN:$PASSWORD" -H "Content-Type: application/json" \
-d '[{"target":"competitor.com","location_code":2840,"language_code":"en","limit":1000}]'Tre ting, der sparer dig en spildt eftermiddag:
- Stol aldrig på sitemap’et alene for dit eget kort. Det springer parametriske sider, filtrerede visninger og bloggen over — netop de flader, hvor hullerne gemmer sig. Kombinér crawl + feed + kategori-eksport.
- Lever ved “godt nok”-matching. Værdien er de umatchede konkurrentsider; et par forkerte par ændrer ikke shortlisten. Polér ikke modellen — handl på listen.
- Kør det mod et udenlandsk marked, når hjemme er for nemt. Ingen stærk lokal konkurrent betyder ingen huller at finde. Lån i stedet fra det stærkeste marked i din kategori.
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å (du starter på nul). 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 — ofte ikke de brands, du selv ville have nævnt.
Er det her ikke bare SEO?
Det ligner SEO, og det er det ikke. 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 — 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.