mcpField
S
seo-content-brief

seo-content-brief

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

seo-content-brief について

ドメインとトピックの意図から、編集者やライター向けの根拠あるコンテンツブリーフを作成するスキルです。キーワードギャップ、検索結果、競合ページ、内部リンク案をまとめて、単独で使える成果物にします。

主な機能

  1. 01キーワードと競合のギャップ発見
  2. 02検索結果と関連クエリの調査
  3. 03上位コンテンツの分析
  4. 04コンテンツテンプレートの分類
  5. 05内部リンクの計画
  6. 06根拠を含むライターブリーフ作成

活用シーン

  1. 01対象トピックのライターブリーフ作成
  2. 02ドメインだけの状態からトピックを選定
  3. 03検索結果と競合の根拠に基づく記事構成

MCP 対応

ドメイン、キーワード、検索結果、AI Overview のデータ取得に、接続済みの SE Ranking MCP サーバーが必要です。Claude の WebFetch も使用し、Firecrawl は追加のページ分析に任意で利用できます。

インストール

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

$npx skills add https://github.com/seranking/seo-skills --skill seo-content-brief

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

同梱ファイルreferences/intent-template-map.md

詳細

出力例:examples/seo-content-brief-vercel-rate-limiting-20260514/BRIEF.md

コンテンツブリーフ

ドメインとトピックの意図から、ターゲットキーワード、タイトル候補、H2/H3 構成、現在の上位検索結果が見落としているコンテンツのギャップ、内部リンク計画、AI 検索の切り口、推定トラフィックのポテンシャルを含む、完全なコンテンツ編集者向けブリーフを作成します。

前提条件

  • SE Ranking MCP サーバーが接続されていること。
  • Claude の WebFetch ツールが利用可能であること(上位 3 件のコンテンツ分析に使用します)。
  • ユーザーから以下の情報が提供されていること:(a)ターゲットドメイン、(b)市場/国(デフォルト:us)、および任意で(c)シードトピックまたは意図。シードトピックが指定されていない場合は、キーワードギャップの手順から最適な機会を見つけます。

プロセス

  1. ドメインの概要 DATA_getDomainOverviewWorldwide、DATA_getDomainKeywords

    • 対象市場のオーガニックトラフィック、上位の国、オーガニックキーワード上位100件を取得します。
    • 生の JSON と、人が読める要約を保存します。
  2. 競合の特定 DATA_getDomainCompetitors

    • 対象市場で共通キーワードが多いオーガニック競合上位5社を特定します。
    • 競合ごとに、ポジショニングに関するメモを1行で保存します。
    • 注: 上流 API は limit/offset に対応していないため、この呼び出しでは全件(人気ドメインの場合は約60 KB)が返され、MCP ハーネスがファイルに書き込みます。ファイルパスを読み取り、{data: [...]} の JSON を解析して、common_keywords の降順で並べ替え、上位5件を取得します。
  3. キーワードギャップ分析 DATA_getDomainKeywordsComparison

    • 競合はランクインしているものの、対象ドメインはランクインしていないキーワードを取得します。
    • 絞り込み条件:情報検索意図、月間検索ボリューム > 1,000、キーワード難易度 < 40。
    • 絞り込んだギャップの一覧を検索ボリューム順に並べて保存します。
  4. 最適なトピッククラスターを選択

    • ギャップの中からトピックを1つ選びます。トラフィックの可能性、難易度、対象ドメインの製品との関連性を根拠として示します。先にユーザーに選定理由を伝えてから、次に進みます。
  5. 選んだトピックの SERP とキーワードを詳細に調査

    • DATA_getSerpResults でオーガニック検索上位10件と SERP 機能(AIO、PAA、強調スニペット、動画)を取得します。
    • DATA_getRelatedKeywords と DATA_getSimilarKeywords でキーワードを拡張します。
    • DATA_getKeywordQuestions で「他のユーザーはこちらも質問」や質問ベースのバリエーションを取得します。
    • DATA_getAiOverview と DATA_getAiOverviewLeaderboard で、現在このトピックについて LLM が引用しているブランドを確認します。
  6. 上位3件のコンテンツ分析 WebFetch(常に実行)+mcp__firecrawl-mcp__firecrawl_scrape(利用可能な場合)

    • まず WebFetch(無料、即時):検索順位上位3件の URL からマークダウンを取得します。H1/H2/H3 の構成、記事ごとの語数、共通するサブトピック、コンテンツの不足点、文章レベルの書式パターンを抽出します。
    • 次に Firecrawl(Firecrawl クレジット3件 — 上位3件の各ページにつき1件):WebFetch のマークダウンでは確認できない情報を取得します。
      • metadata から、<title> の長さ(マークダウンの最初の見出しではなく、実際の文字列)、メタディスクリプションの長さ、og:title、og:description、og:image、twitter:card を取得します。
      • 返された html から、すべての <script type="application/ld+json"> ブロックを取得します。ページごとに @type(Article、FAQPage、BreadcrumbList、Product など)を解析して一覧にします。これらは新しい記事の「スキーマのベースライン」になります。
      • ページ上のシグナル:ヒーロー画像の有無、著者名の構造(<a rel="author">、<meta name="author">)、表の数、コードブロックの数。
    • このブリーフのテンプレートを references/intent-template-map.md の8種類のテンプレートマップに照らして分類します。次の要素を相互参照します:(a)SERP 上位10件で主流のページタイプ(skills/seo-sxo/references/page-type-patterns.md のヒューリスティクスを使用)、(b)ステップ5の PAA パターン、(c)DATA_getRelatedKeywords によるキーワードの検索意図の分類。次から1つ選びます:ultimate-guide/how-to/listicle/explainer/comparison/review/best-of/landing-page。SERP のページタイプが分かれている場合は、MIXED ルールに従います(Tips を参照)。選択したテンプレートによって、推奨する H1/H2 のアウトライン構成と語数の最低ラインが決まります。選択したテンプレートと、その根拠を1文で BRIEF.md に記録します。
    • Firecrawl が利用できない場合(または --no-firecrawl が指定された場合): WebFetch の処理は変更なく実行します。ブリーフの「上位3件 — ページ上のベンチマーク」サブセクション(Output を参照)には (skipped — Firecrawl required for schema/og:* on competitor pages) が出力されます。テンプレートの分類は引き続き WebFetch と SERP のデータに基づいて行います。
  7. 内部リンク計画

    • DATA_getDomainKeywords を対象ドメインに絞り込み、トピックが隣接するクエリで上位表示されているページ5件を WebFetch で取得します。
    • 各ページについて、アンカーテキスト案と、新しい記事内で配置するセクションを提案します。
  8. ブリーフを作成(出力形式を参照)。

出力形式

合成したブリーフを最上位に、ステップファイルを evidence/ に保存した seo-content-brief-{target-slug}-{YYYYMMDD}/ フォルダーを作成します。

seo-content-brief-{target-slug}-{YYYYMMDD}/
├── BRIEF.md                        (writer-ready synthesis — primary deliverable; inlines 01-domain-overview, 02-competitors, 06-internal-links into a "Context" section)
└── evidence/
    ├── 01-domain-overview.md       (DATA_getDomainOverviewWorldwide raw — preserved for reproducibility)
    ├── 02-competitors.md           (DATA_getDomainCompetitors raw)
    ├── 03-keyword-gaps.md          (DATA_getDomainKeywordsComparison filtered)
    ├── 04-serp-and-keywords.md     (DATA_getSerpResults + related/question keywords)
    ├── 05-content-analysis.md      (top-3 winners' H-spine + on-page benchmark)
    └── 06-internal-links.md        (target domain pages + proposed anchors)

最上位に置くのは BRIEF.md のみです。フリーランスのライターがほかのファイルを開かなくても済むようにしてください。ステップファイルには、再現性を確保し、編集者向けブリーフの根拠を示すため、生の API/スクレイピング出力を evidence/ に保存します。

BRIEF.md は次の形式に従います。

# Content Brief: {proposed title}

**Template type:** {one of: ultimate-guide / how-to / listicle / explainer / comparison / review / best-of / landing-page / MIXED}
**Why this template:** {one-sentence justification grounded in SERP top-10 page-type majority + PAA pattern + keyword intent}

## Target keyword
- Primary: {kw} ({volume}/mo, KD {kd}, intent: informational)
- Secondary: {kw1} ({volume}), {kw2} ({volume}), {kw3} ({volume})

## Title options
1. {title option 1}
2. {title option 2}
3. {title option 3}

## Meta description (150-160 chars)
{draft}

## Suggested structure

### H1: {proposed H1}

#### H2: {section 1}
Cover: {bullets of what to include}
Cite: {sources to link out to}

#### H2: {section 2}
...

## Gaps the current top 3 miss
- {gap 1, with evidence}
- {gap 2, with evidence}
- {gap 3, with evidence}

## Top 3 winners — on-page benchmark (Firecrawl)

| Signal | Winner 1 | Winner 2 | Winner 3 | Required for parity |
|---|---|---|---|---|
| `<title>` length (chars) | {n} | {n} | {n} | {target} |
| Meta description length | {n} | {n} | {n} | {target} |
| `og:image` present | {✓/✗} | {✓/✗} | {✓/✗} | {yes/no} |
| `twitter:card` | {value} | {value} | {value} | {value} |
| JSON-LD types | {Article, …} | {…} | {…} | {must include} |
| Byline structure (DOM) | {✓/✗} | {✓/✗} | {✓/✗} | {yes/no} |
| Word count (rendered) | {n} | {n} | {n} | {target range} |

(Or: `Top-3 on-page benchmark: skipped — Firecrawl not installed.`)

## Internal linking plan
| From existing page | Anchor text | Target section |
|---|---|---|
| {url} | {anchor} | {section} |

## AI Search angle
- LLMs currently cite {brands} for this query.
- To earn mentions: {specific actions, e.g., add a comparison table, cite a primary study, include a structured data block}.

## Deliverables
- Word count target: {n}
- Tone and voice: {guidance from domain overview}
- Required assets: {images, schema, examples}

## Traffic potential
- Conservative: ~{n}/mo at position 5
- Target: ~{n}/mo at position 1-3

## Raw data references
- evidence/01-domain-overview.md
- evidence/02-competitors.md
- evidence/03-keyword-gaps.md
- evidence/04-serp-and-keywords.md
- evidence/05-content-analysis.md
- evidence/06-internal-links.md

ヒント

  • SE Ranking Data API のレート制限(1 秒あたり 10 リクエスト)を守ってください。順番に実行し、20 個のキーワードを並列処理しないでください。
  • Firecrawl のコスト。 ステップ 6 の競合ベンチマークでは、実行ごとに Firecrawl クレジットを 3 消費します(上位 3 件の各 1 クレジット)。--no-firecrawl を指定するとスキップできます(ブリーフは作成されますが、オンページのベンチマーク表は含まれません)。
  • ユーザーからドメインのみが提示され、トピックが示されていない場合は、まずステップ 3 を実行し、次に進む前にギャップ機会の上位 3 件を提示してください。
  • ブリーフは単独で完結するようにしてください。内容を確認したい場合を除き、フリーランスのライターが生データファイルを開く必要がないようにします。
  • キーワードの難易度や検索ボリュームを捏造しないでください。エンドポイントが null を返した場合は、推測せず、ブリーフ内で不明と記載します。
  • トピックが AI Overviews の対象となる場合、AI Search の切り口のセクションは必須であり、省略できません。この時代の成長には、LLM に引用されることが必要です。
  • SERP の上位 10 件に異なるページタイプが混在している場合(例:リスト記事 4 件、比較記事 4 件、解説記事 2 件)、MIXED と判定し、コンサルタントが選んだテンプレートとその理由を説明するハイブリッドブリーフを作成してください。SERP 自体が分かれている場合に、テンプレートを無理に 1 つに決めないでください。Template type 行には MIXED と記録し、Why this template 行では、どのテンプレートのアウトライン構成を引き継ぎ、どの二次的なパターンを取り入れるのかを説明して、ハイブリッドを選んだ理由を示してください。

コメント