Surround Sound SEO Strategy: Hvordan Vi Bygde et System for SERP-Dominans med Ekte Data
Et dypdykk i å bygge en komplett Surround Sound Strategy — systemarkitektur, verktøy, databasedesign og ekte synlighetsdata fra sporing av 2 800+ søkeord på 6 språk.
I 2019 var Alex Birkett og Irina Nica hos HubSpot pionerer for noe som endret måten vi tenker på SEO. I stedet for å være besatt av en enkelt #1-rangering, spurte de: hva om merkevaren din dukket opp på hver side i de 10 beste resultatene?
De kalte det Surround Sound Strategy — og innen 6 måneder med sporing av 600+ søkeord oppnådde de 50 % programpåvirkede omtaler. Vi tok rammeverket deres, bygde et fullstack automatiseringssystem rundt det, og anvendte det på vår egen merkevare på tvers av 2 800+ søkeord på 6 språk.
Dette innlegget er en komplett teknisk gjennomgang av arkitekturen, verktøyene, databasedesignet og de faktiske dataene vi ser. Nedenfor finner du interaktive 3D-visualiseringer bygget med Three.js som viser våre faktiske synlighetsscore, søkeordslandskap og outreach-pipeline.
Kjerneinsikten: Vær Overalt, Ikke Bare #1
Tenk over hvordan du faktisk oppdager produkter. Du søker etter “best email marketing software,” og ser 10 resultater. Du klikker på 3-4 av dem. Hvis én merkevare dukker opp i hver eneste artikkel du leser, vinner den merkevaren — selv om den aldri rangerte #1 selv.
“Jo oftere noen hører om produktet ditt fra flere kilder, desto mer sannsynlig er det at de kjøper produktet ditt.”
Dette er surround sound-effekten. Som et cocktailselskap der alle anbefaler den samme boken.
Matematikken Bak Det
Synlighetsscore — den enkleste metrikken:
Visibility Score % = (mentions in top 20 ÷ 20) × 100Hvis merkevaren din dukker opp på 8 av de 20 beste resultatene for “best CRM software,” er synlighetsscoren din 40 %.
Posisjonsvektet Synlighet — fordi posisjon 1 betyr mer enn posisjon 20:
Weighted Score = Σ(Position Weight where mentioned) / Σ(All Position Weights) × 100
Position Weights: #1 = 10pts, #2 = 9pts, ... #10 = 1ptMulighetsscore — hvor du bør fokusere innsatsen:
Opportunity = (100% - Visibility Score) × Monthly Search VolumeEt søkeord med 35 000 månedlige søk og 5 % synlighet = mulighetsscore på 33 250. Der pitcher du først.
Systemarkitektur
Her er den komplette stacken vi bygde for å automatisere surround sound-arbeidsflyten:
Teknologistack
| Lag | Teknologi | Formål |
|---|---|---|
| Database | PostgreSQL | 13 tabeller, 19 000+ poster |
| Skript | Python 3.12 | 4 kjerneskript for automatisering (~2 000 LOC) |
| SERP-Data | Ahrefs API + BrightData | Søkeordmetrikker + live SERP-skraping |
| Innholdsskraping | BrightData MCP | Sideinnholdsekstraksjon for omtaledeteksjon |
| Synlighetsmotor | Custom Python | 3 scoringsmetoder med posisjonsvekting |
| Orkestrering | Claude Code + MCP | AI-assistert analyse og utførelse |
Pipelinen
┌─────────────────┐ ┌──────────────────┐ ┌───────────────────┐│ Keyword │────▶│ SERP Analyzer │────▶│ Mention Checker ││ Research │ │ (Top 20 per KW) │ │ (Scrape + Match) ││ keyword_ │ │ serp_ │ │ mention_ ││ research.py │ │ analyzer.py │ │ checker.py │└─────────────────┘ └──────────────────┘ └───────────────────┘ │ ▼┌─────────────────┐ ┌──────────────────┐ ┌───────────────────┐│ Outreach │◀────│ Opportunity │◀────│ Visibility ││ Pipeline │ │ Scoring │ │ Calculator ││ (7,322 targets) │ │ (Gap Analysis) │ │ visibility_ ││ │ │ │ │ calculator.py │└─────────────────┘ └──────────────────┘ └───────────────────┘Databasedesign
PostgreSQL-databasen vår har 13 tabeller som sporer alt fra rå søkeord til outreach-kandidatstatus. Her er dataene vi jobber med:
Kjernetabeller
| Tabell | Poster | Formål |
|---|---|---|
keywords | 2 804 | Målsøkeord med volum, vanskelighetsgrad, silo |
serp_results | 6 900 | SERP-posisjoner og rangerings-URL-er |
brand_mentions | 739 | Sporing av merkevareomtaler per URL |
visibility_scores | 684 | Beregnet synlighet over tid |
outreach_prospects | 7 322 | Muligheter for lenkebygging |
seo_content_plan | 535 | Innholdsplanlegging med status |
google_ads_keywords | 1 593 | Importerte Google Ads-data |
keyword_volume_history | 238 | Sporing av volumtrender |
Skjemahøydepunkter
keywords-tabellen støtter sporing på tvers av flere land og språk:
CREATE TABLE keywords ( id SERIAL PRIMARY KEY, keyword VARCHAR(500) NOT NULL, silo VARCHAR(100), -- Content silo grouping volume_ahrefs INTEGER, -- Monthly search volume difficulty INTEGER, -- Keyword difficulty (0-100) cpc NUMERIC(10,2), -- Cost per click search_intent VARCHAR(50), -- informational, commercial, transactional country VARCHAR(5), -- us, de, fr, etc. language VARCHAR(5), -- en, de, fr, etc. UNIQUE(keyword, country, language));visibility_scores-tabellen sporer merkevaresynlighet per søkeord over tid:
CREATE TABLE visibility_scores ( id SERIAL PRIMARY KEY, keyword_id INTEGER REFERENCES keywords(id), brand_name VARCHAR(100), visibility_score NUMERIC(5,2), -- 0-100% mention_count INTEGER, pages_with_mentions INTEGER, total_pages_checked INTEGER, calculated_at TIMESTAMP DEFAULT NOW());Søkeordslandskap: 7,4 Mill. Månedlige Søk
Vi sporer 2 804 søkeord på tvers av 58 innholdssiloer, som representerer over 7,4 millioner månedlige søk. Her er fordelingen:
Topp Siloer etter Søkevolum
| Silo | Søkeord | Gj.sn. Volum | Totalt Volum |
|---|---|---|---|
| Email Marketing | 498 | 2 400 | 1 160K |
| CRM | 395 | 2 370 | 1 100K |
| Business Strategy | 4 | 168 750 | 675K |
| Marketing Strategy | 12 | 36 275 | 435K |
| Customer Engagement | 162 | 2 329 | 377K |
| 8 | 30 375 | 243K | |
| Automation | 55 | 3 025 | 166K |
| Messaging | 105 | 1 410 | 148K |
| Analytics | 10 | 14 090 | 141K |
| SMS Marketing | 103 | 1 070 | 110K |
Gjennomsnittlig Søkeordsvanskelighet: 38,7/100
De fleste av våre målsøkeord ligger i middels vanskelighetsområdet — oppnåelig med kvalitetsinnhold og strategiske tredjepartsomtaler. Det ideelle punktet for surround sound er søkeord med vanskelighetsgrad 20-50 og volum over 1 000.
Ekte Synlighetsdata
Her blir strategien virkelig. Vår nåværende totale synlighetsscore er 0,1 % — vi er tidlig i gjennomføringen. Men se på søkeordene der vi allerede har traksjon:
Hvor Vi Allerede Er Synlige
| Søkeord | Volum | Synlighet | Funnet på Sider |
|---|---|---|---|
| best email marketing software | 1 900 | 100 % | 2 av 2 sjekket |
| email campaign | 2 800 | 100 % | 1 av 1 sjekket |
| flash sale | 6 800 | 100 % | 1 av 1 sjekket |
| software for small business | 1 700 | 100 % | 1 av 1 sjekket |
| shopify community | 1 300 | 100 % | 1 av 1 sjekket |
| welcome email | 1 400 | 100 % | 1 av 1 sjekket |
| smtp service | 400 | 98,2 % | 9 av 10 sjekket |
| top email marketing | 60 | 100 % | 9 av 9 sjekket |
Hvor de Største Mulighetene Er
Disse søkeordene med høyt volum har null synlighet — enorm mulighet:
| Søkeord | Månedlig Volum | Nåværende Synlighet | Mulighetsscore |
|---|---|---|---|
| CRM | 44 000 | 0 % | 44 000 |
| newsletter | 42 000 | 0 % | 42 000 |
| email marketing | 35 000 | 0 % | 35 000 |
| live chat | 34 000 | 0 % | 34 000 |
| SMTP | 30 000 | 0 % | 30 000 |
| landing page | 23 000 | 0 % | 23 000 |
| marketing plan | 20 000 | 0 % | 20 000 |
| wordpress plugins | 20 000 | 0 % | 20 000 |
Deteksjon av Merkevareomtaler
Omtalesjekken vår har skannet 739 sider så langt og funnet 17 285 merkevareomtaler på tvers av 590 sider (79,8 % omtalerate). Bare 37 sider inkluderer en faktisk tilbakelenke.
Omtalesjekken fungerer ved å:
- Hente sideinnhold via BrightDatas skrapings-API (håndterer botdeteksjon og CAPTCHAer)
- Regex-matching for merkevarenavn og aliaser (uten hensyn til store/små bokstaver, med kontekstekstraksjon)
- Lenkedeteksjon for å avgjøre om omtaler inkluderer tilbakelenker
- Kontekstekstraksjon for å fange setningen rundt hver omtale
# Simplified mention detection logicdef find_brand_mentions(content, brand_names): mentions = [] for brand in brand_names: pattern = re.compile( rf'\b{re.escape(brand)}\b', re.IGNORECASE ) for match in pattern.finditer(content): # Extract surrounding context (200 chars) start = max(0, match.start() - 100) end = min(len(content), match.end() + 100) context = content[start:end] mentions.append({ 'brand': brand, 'position': match.start(), 'context': context, 'has_link': check_for_link(content, match) }) return mentionsOutreach-Pipeline: 7 322 Kandidater
Outreach-systemet identifiserer sider som rangerer for våre målsøkeord, men ikke nevner oss ennå. Hver av dem blir en kandidat.
Pipeline-Oversikt
| Status | Antall | % |
|---|---|---|
| Go (kvalifisert, klar for pitch) | 2 363 | 32,3 % |
| Pending (trenger kvalifisering) | 3 632 | 49,6 % |
| No-Go (passer ikke) | 1 327 | 18,1 % |
Kandidattyper (Kvalifiserte “Go”-Kandidater)
| Type | Antall | Strategi |
|---|---|---|
| Andre SaaS-selskaper | 288 | Krysspromotering, gjesteinnlegg |
| Markedsføringsblogger | 209 | Innholdsbidrag, ekspertsitater |
| Store utgivere | 14 | PR-pitcher, datastudier |
| Anmeldelsessider | 19 | Produktoppføring, anmeldelsesforespørsler |
| Ukategorisert (trenger triagering) | 1 833 | Massekvalifisering nødvendig |
Innholdsplanstatus
| Status | Antall |
|---|---|
| Ufullstendig | 512 |
| Fullført | 23 |
Vi har 535 innholdsdeler planlagt. 23 er fullført. 512 er i ulike stadier av produksjon — dette er innholdsmotoren som driver surround sound-maskinen.
Verktøyene: MCP-Drevet Automatisering
Hele systemet orkestreres gjennom Model Context Protocol (MCP)-servere, som muliggjør AI-assistert utførelse av hvert steg i arbeidsflyten.
Ahrefs MCP-Integrasjon
keywords-explorer-overview → Keyword metrics (volume, difficulty, CPC)keywords-explorer-matching → Related keyword discoveryserp-overview → SERP position data for any keywordsite-explorer-organic-keywords → Competitor keyword analysisbatch-analysis → Bulk domain metricsBrightData MCP-Integrasjon
search_engine → Live SERP scraping (Google, Bing, Yandex)search_engine_batch → Batch SERP scrapingscrape_as_markdown → Full page content extractionscrape_batch → Batch content scrapingArbeidsflyt: Fra Søkeord til Outreach
Her er en faktisk arbeidsflyt vi kjører regelmessig:
Steg 1: Søkeordsforskning
python3 keyword_research.py --stats# Returns: 2,804 keywords, 58 silos, 7.4M total volumeSteg 2: SERP-Analyse
python3 serp_analyzer.py --keyword-id 1 --summary# Returns: top 15 results, avg DR 90.2, 13 unique domainsSteg 3: Omtalesjekk
python3 mention_checker.py --stats# Returns: 739 pages checked, 590 with mentions, 17,285 totalSteg 4: Synlighetsberegning
python3 visibility_calculator.py --overall --report# Returns: 0.1% overall visibility, silo breakdown, opportunitiesErfaringer (Så Langt)
1. Start med Konkurrentsøkeord
“Competitor”-siloen har høyest gjennomsnittlig synlighet (11 %) fordi konkurrentsammenligningssider naturlig nevner flere merkevarer. Søkeord som “mailchimp alternatives” eller “hubspot vs brevo” er lavthengende frukt.
2. Anmeldelsessider Er Gull
Sider som G2, Capterra og PCMag rangerer for nesten alt og vil liste deg hvis du oppfyller kriteriene deres. SERP-dataene våre viser gjennomsnittlig DR 90,2 for toppresultater — du kan ikke utrangere dem, men du kan være på dem.
3. Volum ≠ Mulighet
“CRM” har 44 000 månedlige søk, men rangeringssidene domineres av bedriftsmerker. “ecommerce email marketing” med 500 søk har mer handlingsbare outreach-mål. Bruk mulighetsscoreformelen, ikke rått volum.
4. Omtale ≠ Lenke
Av 590 sider som nevner oss, inkluderer bare 37 en lenke. Det er en lenkerate på 6,3 %. Hver omtale uten lenke er en enkel outreach-seier — du kan høflig be om en lenke siden de allerede anbefaler deg.
5. Flerspråklighet Multipliserer Alt
Sporing på tvers av 6 språk (EN, FR, DE, IT, PT, ES) multipliserer mulighetsflaten din. Et søkeord med 1 000 søk på engelsk kan ha 500 på fransk og 300 på tysk — det er 1 800 fra ett konsept.
Hva Er Neste: 90-Dagersmål
| Metrikk | Nåværende | Mål |
|---|---|---|
| Søkeord med full revisjon | ~50 | 200+ |
| Total synlighet | 0,1 % | 20 %+ |
| Aktive outreach-kontakter | 0 | 50+ |
| Nye tredjepartsomtaler | 0 | 12+ |
| Publiserte innholdsdeler | 23 | 50+ |
| Tilbakelenker fra omtaler | 37 | 100+ |
Prøv Det Selv
Surround sound-metodikken fungerer for enhver merkevare. Slik kommer du i gang:
- Velg 20 søkeord — fokuser på formater som “best X”, “X alternatives”, “X vs Y”
- Revider SERP-ene — for hvert søkeord, sjekk hvem som rangerer i posisjon 1-20
- Sjekk for omtaler — dukker merkevaren din opp på disse sidene?
- Beregn synlighet — bruk formlene ovenfor
- Prioriter etter mulighet — (100 % - synlighet) x volum = hvor du skal fokusere
- Pitch gapene — ta kontakt med sider som rangerer men ikke nevner deg
Det vakre med surround sound er at det akkumuleres. Hver nye omtale forbedrer synlighetsscoren din, og hver synlighetsforbedring gjør det enklere å oppnå neste omtale.
Dette innlegget ble generert fra live databasespørringer mot vårt produksjonssystem for surround sound-sporing. Three.js-visualiseringene nedenfor gjengir ekte data fra 2 804 søkeord, 6 900 SERP-resultater og 7 322 outreach-kandidater.