mcpField
S
seo-competitor-gap-analysis

seo-competitor-gap-analysis

github.com/serankingマーケティング・グロース18975 回インストール18 週間前に更新
リポジトリ

seo-competitor-gap-analysis について

競合が検索上位 20 位以内にランクインし、対象ドメインはランクインしていないキーワードを見つけるマーケティングスキルです。SEO チーム向けに機会を絞り込んで優先順位を付け、コンテンツ施策を提案します。

主な機能

  1. 01競合キーワードのギャップ特定
  2. 02競合の発見または確認
  3. 03検索量・難易度・意図による絞り込み
  4. 04機会の評価と優先順位付け
  5. 05キーワードをコンテンツ施策に対応

活用シーン

  1. 01ドメインに不足するランキング語の特定
  2. 02獲得可能性のあるキーワード機会の優先付け
  3. 03新規作成・更新するページの選定

MCP 対応

接続済みの SE Ranking MCP サーバーが必要です。ドメインとキーワードのデータツールで競合を特定し、ランキングキーワードを比較します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/seranking/seo-skills --skill seo-competitor-gap-analysis

インストール後、Claude Code で/seo-competitor-gap-analysisを入力して読み込まれたか確認します。

詳細

出力例:examples/seo-competitor-gap-analysis-wix-com-20260514/REPORT.md

競合ギャップ分析

競合が検索順位トップ20にランクインしている一方で、自社ドメインがランクインしていない具体的なキーワードを、商業的価値と現実的な獲得難易度の順に特定します。

前提条件

  • SE Ranking MCP サーバーに接続済みであること。
  • ユーザーから次の情報を受け取ります:(a)対象ドメイン、(b)競合ドメイン3~5件(またはスキルに自動検出を依頼)、(c)対象市場の国(デフォルト:us)。必要に応じてフィルター(最小検索ボリューム、最大KD、検索意図)も指定します。

プロセス

  1. 競合を検証または検出する DATA_getDomainCompetitors

    • ユーザーが競合を指定しなかった場合、対象市場における対象ドメインのオーガニック検索競合上位5件を取得します。
    • 先にリストをユーザーに提示し、続行する前に確認または変更を依頼します。
    • **注:**上流のAPIはlimit/offsetに対応していないため、この呼び出しでは全件が返されます(人気のあるドメインでは約60KB)。MCP ハーネスが結果をファイルに書き込むので、そのファイルパスを読み取り、{data: [...]}のJSONを解析し、common_keywordsの降順に並べ替えて上位5件を取得します。
  2. 競合のキーワードセットを取得する DATA_getDomainKeywords

    • 各競合について、対象国で検索順位トップ20にランクインしているキーワードを取得します。
    • 競合ごとにリストを保存します。
  3. 対象ドメインのキーワードセットを取得する DATA_getDomainKeywords

    • 対象ドメインについて、対象国でランクインしているすべてのキーワード(順位は問わない)を取得します。
    • これを除外セットとして使用します。
  4. ギャップを算出する DATA_getDomainKeywordsComparison(照合)

    • 1つ以上の競合が検索順位トップ20にランクインしている一方、対象ドメインはまったくランクインしていないキーワードを抽出します。
    • 照合のため、比較エンドポイントを使用します。
  5. フィルタリングと分類

    • ユーザー指定の検索ボリューム、KD、検索意図のフィルターを適用します。
    • 検索意図ごとに分類します:情報収集、商業調査、取引、ナビゲーション。
    • 競合状況ごとに分類します:各ギャップキーワードで、N件の競合のうち何件がランクインしているか。
  6. スコアリングと優先順位付け

    • 各ギャップキーワードにスコアを付けます:トラフィックポテンシャル(検索ボリューム×CTRモデル)+検索意図の重み付け+KDの逆数。
    • キーワードごとの理由とともに、上位50件の機会を提示します。
  7. コンテンツ施策に対応付ける

    • 上位の各機会について、新規記事の作成、既存ページの拡充、既存ページの更新、プログラマティックテンプレートのいずれかを推奨します。
    • すぐに成果が見込める機会にはフラグを付けます:競合が薄いコンテンツでランクインしているケース(URLパターンとコンテンツ長のヒューリスティクスで検出)。

出力形式

seo-competitor-gap-analysis-{target-slug}-{YYYYMMDD}/フォルダーを作成し、次のファイルを格納します。

seo-competitor-gap-analysis-{target-slug}-{YYYYMMDD}/
├── REPORT.md                                (synthesised report — primary deliverable)
├── gaps.csv                                 (full gap list — load-bearing CSV the writers/planners paste into briefs)
└── evidence/
    ├── 01-competitors.md                    (competitor list / discovery — raw step output)
    ├── 02-competitor-keywords-{domain}.md   (one per competitor — raw step output)
    ├── 03-target-keywords.md                (target's existing ranking set — raw step output)
    └── 04-gap-raw.md                        (human-readable full gap list before filtering — raw step output)

最上位に配置するファイル:REPORT.mdおよびgaps.csv。番号付きのステップファイルは、再現性を確保するため、生のAPI出力をevidence/に保存します。

REPORT.mdは次の構成にします。

# Competitor Gap: {target}
Market: {country}
Competitors analysed: {list}

## Summary
- Competitor keywords in top 20: {n}
- Target keywords overall: {n}
- Gap keywords (opportunities): {n}
- Gap traffic potential: ~{n}/mo

## Top 50 opportunities

### Informational intent
| # | Keyword | Volume | KD | Competitors ranking | Action | Score |
|---|---|---|---|---|---|---|
| 1 | {kw} | {n} | {n} | {3 of 5} | New article | {score} |
| 2 | ... | ... | ... | ... | ... | ... |

### Commercial intent
| # | Keyword | Volume | KD | Competitors ranking | Action | Score |
|---|---|---|---|---|---|---|
...

### Transactional intent
...

## Quick wins (top 10)
Keywords where competitors rank in positions 5 to 20 with thin content, low DT, or old dates.

| # | Keyword | Weakest competitor position | Suggested angle |
|---|---|---|---|
| 1 | {kw} | example.com at #14 (2022 article, 800 words) | Fresh, comprehensive guide |

## Recommended next steps
1. Run `content-brief` on the top 3 opportunities to generate writer-ready briefs.
2. Run `keyword-cluster-planner` on the full gap list to build a sequencing plan.
3. Add the gap keywords to an SE Ranking project for rank tracking once content ships.

## Files
- gaps.csv: full gap list for spreadsheet analysis
- evidence/04-gap-raw.md: human-readable full gap list before filtering

gaps.csvの列: keyword,volume,kd,cpc,intent,competitors_ranking,top_competitor_position,target_position,action,score

ヒント

  • Data APIのレート制限:1秒あたり10リクエスト。大規模なサイトでは、DATA_getDomainKeywordsのページネーションが多く発生することがあります。ユーザーが全件を明示的に求めない限り、ドメインごとに上位1,000件のキーワードなど、上限を設定してください。
  • 実行前にDATA_getCreditBalanceを呼び出してください。シードが10件の場合、全体の処理で通常30~80クレジットを消費します。シードが20件の場合、150クレジットを超えることがあります。
  • competitors_rankingの件数は、実現可能性を示す最良の指標です。競合5件中4件がランクインしているキーワードは機会として有望ですが、1件のみがランクインしている場合はノイズの可能性があります。
  • ユーザーが明示的に求めない限り、競合のブランドキーワードの獲得は推奨しないでください。「競合ブランドのレビュー」で競争する戦略は有効ですが、ユーザーが選択した場合に限ります。
  • 多数のギャップキーワードが同じテーマに集中している場合は、個別記事を50本作成するのではなく、ハブページとクラスターを推奨してください。
  • このスキルはcontent-briefおよびkeyword-cluster-plannerと自然に連携させてください。出力の「次におすすめする手順」セクションで、これらに言及してください。

コメント