Surround Sound SEO戦略:実データを使ったSERP支配システムの構築方法
完全なSurround Sound戦略の構築を深掘り — システムアーキテクチャ、ツール、データベース設計、6言語で2,800以上のキーワードを追跡して得た実際のビジビリティデータ。
2019年、HubSpotのAlex BirkettとIrina Nicaが、SEOに対する考え方を変える先駆的な取り組みを行いました。単一の#1ランキングにこだわるのではなく、彼らはこう問いかけました:もしあなたのブランドがトップ10の検索結果のすべてのページに表示されたらどうだろう?
彼らはこれをSurround Sound Strategyと名付けました。そして600以上のキーワードを追跡して6ヶ月以内に、プログラム影響下の言及率50%を達成しました。私たちは彼らのフレームワークを採用し、その周りにフルスタック自動化システムを構築し、6言語で2,800以上のキーワードにわたって自社ブランドに適用しました。
この記事は、アーキテクチャ、ツール、データベース設計、そして実際に得られたデータの完全な技術的な解説です。以下に、Three.jsで構築されたインタラクティブな3Dビジュアライゼーションがあり、実際のビジビリティスコア、キーワードランドスケープ、アウトリーチパイプラインを表示しています。
核心的な洞察:#1だけでなく、あらゆる場所に存在する
実際に製品をどのように発見するか考えてみてください。「best email marketing software」と検索すると、10件の結果が表示されます。そのうち3〜4件をクリックします。もし一つのブランドがあなたが読むすべての記事に表示されていれば、そのブランドが勝ちます — たとえそのブランド自体が一度も#1にランクインしていなくても。
「複数のソースから製品について聞く頻度が高ければ高いほど、その製品を購入する可能性が高くなります。」
これがsurround sound効果です。カクテルパーティーで全員が同じ本を勧めるようなものです。
その背後にある数学
Visibility Score — 最もシンプルな指標:
Visibility Score % = (mentions in top 20 ÷ 20) × 100あなたのブランドが「best CRM software」のトップ20結果のうち8つに表示されていれば、ビジビリティスコアは40%です。
Position-Weighted Visibility — ポジション1はポジション20より重要だから:
Weighted Score = Σ(Position Weight where mentioned) / Σ(All Position Weights) × 100
Position Weights: #1 = 10pts, #2 = 9pts, ... #10 = 1ptOpportunity Score — 努力を集中すべき場所:
Opportunity = (100% - Visibility Score) × Monthly Search Volume月間35,000検索で5%のビジビリティを持つキーワード = opportunity scoreは33,250。ここから最初にピッチすべきです。
システムアーキテクチャ
surround soundワークフローを自動化するために構築したフルスタックをご紹介します:
テクノロジースタック
| レイヤー | テクノロジー | 目的 |
|---|---|---|
| データベース | PostgreSQL | 13テーブル、19,000以上のレコード |
| スクリプト | Python 3.12 | 4つのコア自動化スクリプト(約2,000 LOC) |
| SERPデータ | Ahrefs API + BrightData | キーワードメトリクス + ライブSERPスクレイピング |
| コンテンツスクレイピング | BrightData MCP | 言及検出のためのページコンテンツ抽出 |
| ビジビリティエンジン | カスタムPython | ポジション重み付けによる3つのスコアリング方法 |
| オーケストレーション | Claude Code + MCP | AI支援による分析と実行 |
パイプライン
┌─────────────────┐ ┌──────────────────┐ ┌───────────────────┐│ 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 │└─────────────────┘ └──────────────────┘ └───────────────────┘データベース設計
PostgreSQLデータベースには13のテーブルがあり、生のキーワードからアウトリーチプロスペクトのステータスまですべてを追跡しています。以下は私たちが扱っているデータです:
コアテーブル
| テーブル | レコード数 | 目的 |
|---|---|---|
keywords | 2,804 | ボリューム、難易度、サイロ付きのターゲットキーワード |
serp_results | 6,900 | SERPポジションとランキングURL |
brand_mentions | 739 | URL別ブランド言及追跡 |
visibility_scores | 684 | 時系列での計算済みビジビリティ |
outreach_prospects | 7,322 | リンクビルディングの機会 |
seo_content_plan | 535 | ステータス付きコンテンツプランニング |
google_ads_keywords | 1,593 | インポートしたGoogle Adsデータ |
keyword_volume_history | 238 | ボリュームトレンド追跡 |
スキーマのハイライト
keywordsテーブルは多国、多言語の追跡をサポートしています:
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テーブルは、キーワードごとのブランドビジビリティを時系列で追跡します:
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());キーワードランドスケープ:月間740万検索
58のコンテンツサイロにわたる2,804キーワードを追跡しており、月間740万以上の検索を代表しています。以下がその分布です:
検索ボリューム別トップサイロ
| サイロ | キーワード数 | 平均ボリューム | 合計ボリューム |
|---|---|---|---|
| Email Marketing | 498 | 2,400 | 1,160K |
| CRM | 395 | 2,370 | 1,100K |
| ビジネス戦略 | 4 | 168,750 | 675K |
| マーケティング戦略 | 12 | 36,275 | 435K |
| 顧客エンゲージメント | 162 | 2,329 | 377K |
| 8 | 30,375 | 243K | |
| オートメーション | 55 | 3,025 | 166K |
| メッセージング | 105 | 1,410 | 148K |
| アナリティクス | 10 | 14,090 | 141K |
| SMS Marketing | 103 | 1,070 | 110K |
平均キーワード難易度:38.7/100
ターゲットキーワードの大部分は中程度の難易度範囲にあります — 質の高いコンテンツと戦略的なサードパーティの言及で達成可能です。Surround soundにとってのスイートスポットは、難易度20〜50でボリューム1,000以上のキーワードです。
実際のビジビリティデータ
ここが戦略が現実のものになるところです。現在の**全体ビジビリティスコアは0.1%**です — 実行の初期段階にいます。しかし、すでにトラクションがあるキーワードを見てください:
すでに可視性があるキーワード
| キーワード | ボリューム | ビジビリティ | 発見されたページ |
|---|---|---|---|
| best email marketing software | 1,900 | 100% | チェック済み2件中2件 |
| email campaign | 2,800 | 100% | チェック済み1件中1件 |
| flash sale | 6,800 | 100% | チェック済み1件中1件 |
| software for small business | 1,700 | 100% | チェック済み1件中1件 |
| shopify community | 1,300 | 100% | チェック済み1件中1件 |
| welcome email | 1,400 | 100% | チェック済み1件中1件 |
| smtp service | 400 | 98.2% | チェック済み10件中9件 |
| top email marketing | 60 | 100% | チェック済み9件中9件 |
最大の機会があるキーワード
これらの高ボリュームキーワードはビジビリティがゼロです — 巨大な機会:
| キーワード | 月間ボリューム | 現在のビジビリティ | 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 |
ブランド言及検出
言及チェッカーはこれまでに739ページをスキャンし、590ページで17,285件のブランド言及を発見しました(79.8%の言及率)。実際のバックリンクを含むのはわずか37ページです。
言及チェッカーの仕組み:
- ページコンテンツの取得 — BrightDataのスクレイピングAPIを通じて(ボット検出とCAPTCHAを処理)
- 正規表現マッチング — ブランド名とエイリアスに対して(大文字小文字を区別せず、コンテキスト抽出付き)
- リンク検出 — 言及にバックリンクが含まれているかどうかを判定
- コンテキスト抽出 — 各言及の周囲の文を記録
# 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 mentionsアウトリーチパイプライン:7,322プロスペクト
アウトリーチシステムは、ターゲットキーワードでランクインしているがまだ私たちに言及していないページを特定します。それぞれがプロスペクトになります。
パイプラインの内訳
| ステータス | 件数 | % |
|---|---|---|
| Go(適格、ピッチ準備完了) | 2,363 | 32.3% |
| Pending(適格性評価が必要) | 3,632 | 49.6% |
| No-Go(適合しない) | 1,327 | 18.1% |
プロスペクトタイプ(適格な「Go」プロスペクト)
| タイプ | 件数 | 戦略 |
|---|---|---|
| 他のSaaS企業 | 288 | クロスプロモーション、ゲスト投稿 |
| マーケティングブログ | 209 | コンテンツ貢献、専門家の引用 |
| 大手パブリッシャー | 14 | PRピッチ、データ調査 |
| レビューサイト | 19 | 製品リスティング、レビュー依頼 |
| 未分類(トリアージが必要) | 1,833 | 一括適格性評価が必要 |
コンテンツプランのステータス
| ステータス | 件数 |
|---|---|
| 未完了 | 512 |
| 完了 | 23 |
535件のコンテンツが計画されています。23件が完了。512件が制作の様々な段階にあります — これがsurround soundマシンを動かすコンテンツエンジンです。
ツール:MCP駆動のオートメーション
システム全体は**Model Context Protocol(MCP)**サーバーを通じてオーケストレーションされ、すべてのワークフローステップのAI支援実行を可能にしています。
Ahrefs MCPインテグレーション
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インテグレーション
search_engine → Live SERP scraping (Google, Bing, Yandex)search_engine_batch → Batch SERP scrapingscrape_as_markdown → Full page content extractionscrape_batch → Batch content scrapingワークフロー:キーワードからアウトリーチまで
以下は私たちが定期的に実行しているワークフローです:
ステップ1:キーワードリサーチ
python3 keyword_research.py --stats# Returns: 2,804 keywords, 58 silos, 7.4M total volumeステップ2:SERP分析
python3 serp_analyzer.py --keyword-id 1 --summary# Returns: top 15 results, avg DR 90.2, 13 unique domainsステップ3:言及チェック
python3 mention_checker.py --stats# Returns: 739 pages checked, 590 with mentions, 17,285 totalステップ4:ビジビリティ計算
python3 visibility_calculator.py --overall --report# Returns: 0.1% overall visibility, silo breakdown, opportunitiesこれまでの学び
1. 競合キーワードから始める
「競合」サイロは最も高い平均ビジビリティ(11%)を持っています。競合比較ページは自然に複数のブランドに言及するからです。「mailchimp alternatives」や「hubspot vs brevo」のようなキーワードは、手の届きやすい成果です。
2. レビューサイトは金脈
G2、Capterra、PCMagなどのサイトはほぼすべてのキーワードでランクインしており、基準を満たせばリストに掲載してくれます。SERPデータではトップ結果の平均DRが90.2です — 彼らを上回ることはできませんが、彼らの上に載ることはできます。
3. ボリューム ≠ 機会
「CRM」は月間44,000検索がありますが、ランキングページはエンタープライズブランドに支配されています。「ecommerce email marketing」は500検索ですが、より実行可能なアウトリーチターゲットがあります。生のボリュームではなく、opportunity scoreの公式を使いましょう。
4. 言及 ≠ リンク
私たちに言及している590ページのうち、リンクを含むのはわずか37件です。リンク率は6.3%です。リンクのない言及はすべて簡単なアウトリーチの勝利です — すでにあなたを推薦しているので、丁寧にリンクをお願いできます。
5. 多言語はすべてを倍増させる
6言語(EN、FR、DE、IT、PT、ES)での追跡は、機会の表面積を何倍にもします。英語で1,000検索のキーワードがフランス語で500、ドイツ語で300あるかもしれません — 一つのコンセプトから1,800です。
次のステップ:90日間の目標
| 指標 | 現在 | 目標 |
|---|---|---|
| 完全監査済みキーワード | 約50 | 200以上 |
| 全体ビジビリティ | 0.1% | 20%以上 |
| アクティブなアウトリーチ連絡先 | 0 | 50以上 |
| 新しいサードパーティ言及 | 0 | 12以上 |
| 公開済みコンテンツ | 23 | 50以上 |
| 言及からのバックリンク | 37 | 100以上 |
自分で試してみよう
Surround soundの方法論はどのブランドにも有効です。始め方は以下の通りです:
- 20キーワードを選ぶ — 「best X」「X alternatives」「X vs Y」のフォーマットに注目
- SERPを監査する — 各キーワードについて、ポジション1〜20に誰がランクインしているか確認
- 言及を確認する — あなたのブランドがそれらのページに表示されているか?
- ビジビリティを計算する — 上記の公式を使用
- 機会で優先順位をつける — (100% - ビジビリティ)× ボリューム = 注力すべき場所
- ギャップにピッチする — ランクインしているがあなたに言及していないページにアプローチ
Surround soundの美しさは、それが複利的に効くことです。新しい言及のたびにビジビリティスコアが向上し、ビジビリティが向上するたびに次の言及を獲得しやすくなります。
この記事は、本番のsurround sound追跡システムに対して実行されたライブデータベースクエリから生成されました。以下のThree.jsビジュアライゼーションは、2,804キーワード、6,900件のSERP結果、7,322件のアウトリーチプロスペクトの実際のデータをレンダリングしています。