seo-competitor-gap-analysis について
競合が検索上位 20 位以内にランクインし、対象ドメインはランクインしていないキーワードを見つけるマーケティングスキルです。SEO チーム向けに機会を絞り込んで優先順位を付け、コンテンツ施策を提案します。
主な機能
- 01競合キーワードのギャップ特定
- 02競合の発見または確認
- 03検索量・難易度・意図による絞り込み
- 04機会の評価と優先順位付け
- 05キーワードをコンテンツ施策に対応
活用シーン
- 01ドメインに不足するランキング語の特定
- 02獲得可能性のあるキーワード機会の優先付け
- 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、検索意図)も指定します。
プロセス
-
競合を検証または検出する
DATA_getDomainCompetitors- ユーザーが競合を指定しなかった場合、対象市場における対象ドメインのオーガニック検索競合上位5件を取得します。
- 先にリストをユーザーに提示し、続行する前に確認または変更を依頼します。
- **注:**上流のAPIは
limit/offsetに対応していないため、この呼び出しでは全件が返されます(人気のあるドメインでは約60KB)。MCP ハーネスが結果をファイルに書き込むので、そのファイルパスを読み取り、{data: [...]}のJSONを解析し、common_keywordsの降順に並べ替えて上位5件を取得します。
-
競合のキーワードセットを取得する
DATA_getDomainKeywords- 各競合について、対象国で検索順位トップ20にランクインしているキーワードを取得します。
- 競合ごとにリストを保存します。
-
対象ドメインのキーワードセットを取得する
DATA_getDomainKeywords- 対象ドメインについて、対象国でランクインしているすべてのキーワード(順位は問わない)を取得します。
- これを除外セットとして使用します。
-
ギャップを算出する
DATA_getDomainKeywordsComparison(照合)- 1つ以上の競合が検索順位トップ20にランクインしている一方、対象ドメインはまったくランクインしていないキーワードを抽出します。
- 照合のため、比較エンドポイントを使用します。
-
フィルタリングと分類
- ユーザー指定の検索ボリューム、KD、検索意図のフィルターを適用します。
- 検索意図ごとに分類します:情報収集、商業調査、取引、ナビゲーション。
- 競合状況ごとに分類します:各ギャップキーワードで、N件の競合のうち何件がランクインしているか。
-
スコアリングと優先順位付け
- 各ギャップキーワードにスコアを付けます:トラフィックポテンシャル(検索ボリューム×CTRモデル)+検索意図の重み付け+KDの逆数。
- キーワードごとの理由とともに、上位50件の機会を提示します。
-
コンテンツ施策に対応付ける
- 上位の各機会について、新規記事の作成、既存ページの拡充、既存ページの更新、プログラマティックテンプレートのいずれかを推奨します。
- すぐに成果が見込める機会にはフラグを付けます:競合が薄いコンテンツでランクインしているケース(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と自然に連携させてください。出力の「次におすすめする手順」セクションで、これらに言及してください。