Surround Sound SEO-strategi: Hur vi byggde ett system för SERP-dominans med verkliga data
En djupdykning i att bygga en komplett Surround Sound-strategi — systemarkitektur, verktyg, databasdesign och verkliga synlighetsdata från spårning av 2 800+ sökord på 6 språk.
År 2019 skapade Alex Birkett och Irina Nica på HubSpot något som förändrade hur vi tänker kring SEO. Istället för att besatt jaga en enda #1-placering frågade de: tänk om ditt varumärke dök upp på varje sida i de 10 bästa resultaten?
De kallade det Surround Sound Strategy — och inom 6 månader av spårning av 600+ sökord uppnådde de 50% programpåverkade omnämnanden. Vi tog deras ramverk, byggde ett komplett full-stack-automatiseringssystem runt det och tillämpade det på vårt eget varumärke över 2 800+ sökord på 6 språk.
Det här inlägget är en komplett teknisk genomgång av arkitekturen, verktygen, databasdesignen och de verkliga data vi ser. Nedan hittar du interaktiva 3D-visualiseringar byggda med Three.js som visar våra faktiska synlighetspoäng, sökordslandskap och outreach-pipeline.
Kärninsikten: var överallt, inte bara #1
Tänk på hur du faktiskt upptäcker produkter. Du söker “bästa mjukvaran för e-postmarknadsföring” och ser 10 resultat. Du klickar på 3-4 av dem. Om ett varumärke dyker upp i varje artikel du läser vinner det varumärket — även om det aldrig rankade #1 själv.
“Ju oftare någon hör om din produkt från flera källor, desto mer sannolikt är det att de köper din produkt.”
Det här är surround sound-effekten. Som en cocktailparty där alla rekommenderar samma bok.
Matematiken bakom det
Visibility Score — det enklaste måttet:
Visibility Score % = (mentions in top 20 ÷ 20) × 100Om ditt varumärke dyker upp på 8 av de 20 bästa resultaten för “best CRM software” är din synlighetspoäng 40%.
Positionsviktad synlighet — eftersom position 1 betyder mer än position 20:
Weighted Score = Σ(Position Weight where mentioned) / Σ(All Position Weights) × 100
Position Weights: #1 = 10pts, #2 = 9pts, ... #10 = 1ptOpportunity Score — var du ska fokusera dina insatser:
Opportunity = (100% - Visibility Score) × Monthly Search VolumeEtt sökord med 35 000 månatliga sökningar och 5% synlighet = opportunity score på 33 250. Det är där du pitchar först.
Systemarkitektur
Här är den kompletta stacken vi byggde för att automatisera surround sound-arbetsflödet:
Teknologisk stack
| Lager | Teknologi | Syfte |
|---|---|---|
| Databas | PostgreSQL | 13 tabeller, 19 000+ poster |
| Skript | Python 3.12 | 4 huvudsakliga automatiseringsskript (~2 000 LOC) |
| SERP-data | Ahrefs API + BrightData | Sökordsmetriker + live SERP-scraping |
| Innehållsscraping | BrightData MCP | Sidinnehållsextrahering för omnämnandedetektering |
| Synlighetsmotor | Custom Python | 3 poängmetoder med positionsviktning |
| Orkestrering | Claude Code + MCP | AI-assisterad analys och exekvering |
Pipeline
┌─────────────────┐ ┌──────────────────┐ ┌───────────────────┐│ 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 │└─────────────────┘ └──────────────────┘ └───────────────────┘Databasdesign
Vår PostgreSQL-databas har 13 tabeller som spårar allt från råa sökord till outreach-prospektens status. Här är datan vi arbetar med:
Huvudtabeller
| Tabell | Poster | Syfte |
|---|---|---|
keywords | 2 804 | Målsökord med volym, svårighet, silo |
serp_results | 6 900 | SERP-positioner och rankande URL:er |
brand_mentions | 739 | Spårning av varumärkesomnämnanden per URL |
visibility_scores | 684 | Beräknad synlighet över tid |
outreach_prospects | 7 322 | Möjligheter för länkbyggande |
seo_content_plan | 535 | Innehållsplanering med status |
google_ads_keywords | 1 593 | Importerad Google Ads-data |
keyword_volume_history | 238 | Spårning av volymtrender |
Schemahöjdpunkter
Tabellen keywords stöder spårning för flera länder och 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));Tabellen visibility_scores spårar varumärkessynlighet per sökord över 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ökordslandskap: 7,4 miljoner månatliga sökningar
Vi spårar 2 804 sökord över 58 innehållssilos, som representerar över 7,4 miljoner månatliga sökningar. Här är fördelningen:
Topp-silos efter sökvolym
| Silo | Sökord | Snittvolym | Total volym |
|---|---|---|---|
| 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 |
Genomsnittlig sökordssvårighet: 38,7/100
De flesta av våra målsökord befinner sig i det medelhöga svårighetsintervallet — uppnåeligt med kvalitetsinnehåll och strategiska tredjepartsmomnämnanden. Den optimala zonen för surround sound är sökord med svårighet 20-50 och volym över 1 000.
Verkliga synlighetsdata
Här blir strategin verklig. Vår nuvarande övergripande synlighetspoäng är 0,1% — vi är i ett tidigt skede av genomförandet. Men titta på sökorden där vi redan har dragkraft:
Var vi redan är synliga
| Sökord | Volym | Synlighet | Sidor hittade på |
|---|---|---|---|
| best email marketing software | 1 900 | 100% | 2 av 2 kontrollerade |
| email campaign | 2 800 | 100% | 1 av 1 kontrollerade |
| flash sale | 6 800 | 100% | 1 av 1 kontrollerade |
| software for small business | 1 700 | 100% | 1 av 1 kontrollerade |
| shopify community | 1 300 | 100% | 1 av 1 kontrollerade |
| welcome email | 1 400 | 100% | 1 av 1 kontrollerade |
| smtp service | 400 | 98,2% | 9 av 10 kontrollerade |
| top email marketing | 60 | 100% | 9 av 9 kontrollerade |
Var de största möjligheterna finns
Dessa högvolymsökord har noll synlighet — massiva möjligheter:
| Sökord | Månatlig volym | Nuvarande synlighet | Opportunity Score |
|---|---|---|---|
| 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 |
Detektering av varumärkesomnämnanden
Vår omnämnandekontroll har skannat 739 sidor och hittat 17 285 varumärkesomnämnanden på 590 sidor (79,8% omnämnandefrekvens). Bara 37 sidor innehåller en faktisk bakåtlänk.
Omnämnandekontrollern fungerar genom att:
- Hämta sidinnehåll via BrightDatas scraping-API (hanterar botdetektering och CAPTCHA)
- Regex-matchning för varumärkesnamn och alias (skiftlägesokänslig, med kontextextrahering)
- Länkdetektering för att avgöra om omnämnanden inkluderar bakåtlänkar
- Kontextextrahering för att fånga meningen runt varje omnämnande
# 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 prospekt
Outreach-systemet identifierar sidor som rankar för våra målsökord men inte nämner oss ännu. Varje sida blir en prospekt.
Pipelinefördelning
| Status | Antal | % |
|---|---|---|
| Go (kvalificerade, redo att pitcha) | 2 363 | 32,3% |
| Pending (behöver kvalificering) | 3 632 | 49,6% |
| No-Go (passar inte) | 1 327 | 18,1% |
Prospekttyper (kvalificerade “Go”-prospekt)
| Typ | Antal | Strategi |
|---|---|---|
| Andra SaaS-företag | 288 | Korspromotion, gästinlägg |
| Marknadsföringsbloggar | 209 | Innehållsbidrag, expertcitat |
| Stora utgivare | 14 | PR-pitchar, datastudier |
| Recensionssajter | 19 | Produktlistning, recensionsförfrågningar |
| Ej kategoriserade (behöver triage) | 1 833 | Masskvalificering |
Status för innehållsplan
| Status | Antal |
|---|---|
| Ej färdigställt | 512 |
| Färdigställt | 23 |
Vi har 535 planerade innehållsdelar. 23 är färdiga. 512 befinner sig i olika produktionsstadier — detta är innehållsmotorn som driver surround sound-maskinen.
Verktygen: MCP-driven automatisering
Hela systemet orkestreras genom Model Context Protocol (MCP)-servrar, som möjliggör AI-assisterad exekvering av varje steg i arbetsflödet.
Ahrefs MCP-integration
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-integration
search_engine → Live SERP scraping (Google, Bing, Yandex)search_engine_batch → Batch SERP scrapingscrape_as_markdown → Full page content extractionscrape_batch → Batch content scrapingArbetsflöde: från sökord till outreach
Här är ett verkligt arbetsflöde som vi kör regelbundet:
Steg 1: Sökordsresearch
python3 keyword_research.py --stats# Returns: 2,804 keywords, 58 silos, 7.4M total volumeSteg 2: SERP-analys
python3 serp_analyzer.py --keyword-id 1 --summary# Returns: top 15 results, avg DR 90.2, 13 unique domainsSteg 3: Omnämnandekontroll
python3 mention_checker.py --stats# Returns: 739 pages checked, 590 with mentions, 17,285 totalSteg 4: Synlighetsberäkning
python3 visibility_calculator.py --overall --report# Returns: 0.1% overall visibility, silo breakdown, opportunitiesLärdomar (hittills)
1. Börja med konkurrenters sökord
Silon “Competitor” har den högsta genomsnittliga synligheten (11%) eftersom konkurrentjämförelsesidor naturligt nämner flera varumärken. Sökord som “mailchimp alternatives” eller “hubspot vs brevo” är lågt hängande frukt.
2. Recensionssajter är guld
Sajter som G2, Capterra och PCMag rankar för nästan allt och listar dig om du uppfyller deras kriterier. Vår SERP-data visar snitt-DR 90,2 för toppresultat — du kan inte överträffa dem i ranking, men du kan vara på dem.
3. Volym ≠ Möjlighet
“CRM” har 44 000 månatliga sökningar men rankande sidor domineras av enterprise-varumärken. “ecommerce email marketing” med 500 sökningar har fler genomförbara outreach-mål. Använd formeln för opportunity score, inte rå volym.
4. Omnämnande ≠ Länk
Av 590 sidor som nämner oss innehåller bara 37 en länk. Det är en länkfrekvens på 6,3%. Varje olänkat omnämnande är en enkel outreach-vinst — du kan artigt be om en länk eftersom de redan rekommenderar dig.
5. Flerspråkighet multiplicerar allt
Spårning över 6 språk (EN, FR, DE, IT, PT, ES) multiplicerar din möjlighetsyta. Ett sökord med 1 000 sökningar på engelska kan ha 500 på franska och 300 på tyska — det är 1 800 från ett koncept.
Vad kommer härnäst: 90-dagarsmål
| Mätvärde | Nuvarande | Mål |
|---|---|---|
| Sökord med fullständig granskning | ~50 | 200+ |
| Övergripande synlighet | 0,1% | 20%+ |
| Aktiva outreach-kontakter | 0 | 50+ |
| Nya tredjepartsomnämnanden | 0 | 12+ |
| Publicerade innehållsdelar | 23 | 50+ |
| Bakåtlänkar från omnämnanden | 37 | 100+ |
Testa själv
Surround sound-metodiken fungerar för alla varumärken. Så här börjar du:
- Välj 20 sökord — fokusera på formaten “best X”, “X alternatives”, “X vs Y”
- Granska SERP:arna — för varje sökord, kolla vem som rankar på position 1-20
- Kontrollera omnämnanden — dyker ditt varumärke upp på dessa sidor?
- Beräkna synlighet — använd formlerna ovan
- Prioritera efter möjlighet — (100% - synlighet) x volym = var du ska fokusera
- Pitcha luckorna — kontakta sidor som rankar men inte nämner dig
Det fina med surround sound är att det ackumuleras. Varje nytt omnämnande förbättrar din synlighetspoäng, och varje synlighetsförbättring gör nästa omnämnande lättare att få.
Det här inlägget genererades från live-databasfrågor mot vårt produktionssystem för surround sound-spårning. Three.js-visualiseringarna nedan renderar verkliga data från 2 804 sökord, 6 900 SERP-resultat och 7 322 outreach-prospekt.