seo-content-brief について
ドメインとトピックの意図から、編集者やライター向けの根拠あるコンテンツブリーフを作成するスキルです。キーワードギャップ、検索結果、競合ページ、内部リンク案をまとめて、単独で使える成果物にします。
主な機能
- 01キーワードと競合のギャップ発見
- 02検索結果と関連クエリの調査
- 03上位コンテンツの分析
- 04コンテンツテンプレートの分類
- 05内部リンクの計画
- 06根拠を含むライターブリーフ作成
活用シーン
- 01対象トピックのライターブリーフ作成
- 02ドメインだけの状態からトピックを選定
- 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)シードトピックまたは意図。シードトピックが指定されていない場合は、キーワードギャップの手順から最適な機会を見つけます。
プロセス
-
ドメインの概要
DATA_getDomainOverviewWorldwide、DATA_getDomainKeywords- 対象市場のオーガニックトラフィック、上位の国、オーガニックキーワード上位100件を取得します。
- 生の JSON と、人が読める要約を保存します。
-
競合の特定
DATA_getDomainCompetitors- 対象市場で共通キーワードが多いオーガニック競合上位5社を特定します。
- 競合ごとに、ポジショニングに関するメモを1行で保存します。
- 注: 上流 API は
limit/offsetに対応していないため、この呼び出しでは全件(人気ドメインの場合は約60 KB)が返され、MCP ハーネスがファイルに書き込みます。ファイルパスを読み取り、{data: [...]}の JSON を解析して、common_keywordsの降順で並べ替え、上位5件を取得します。
-
キーワードギャップ分析
DATA_getDomainKeywordsComparison- 競合はランクインしているものの、対象ドメインはランクインしていないキーワードを取得します。
- 絞り込み条件:情報検索意図、月間検索ボリューム > 1,000、キーワード難易度 < 40。
- 絞り込んだギャップの一覧を検索ボリューム順に並べて保存します。
-
最適なトピッククラスターを選択
- ギャップの中からトピックを1つ選びます。トラフィックの可能性、難易度、対象ドメインの製品との関連性を根拠として示します。先にユーザーに選定理由を伝えてから、次に進みます。
-
選んだトピックの SERP とキーワードを詳細に調査
DATA_getSerpResultsでオーガニック検索上位10件と SERP 機能(AIO、PAA、強調スニペット、動画)を取得します。DATA_getRelatedKeywordsとDATA_getSimilarKeywordsでキーワードを拡張します。DATA_getKeywordQuestionsで「他のユーザーはこちらも質問」や質問ベースのバリエーションを取得します。DATA_getAiOverviewとDATA_getAiOverviewLeaderboardで、現在このトピックについて LLM が引用しているブランドを確認します。
-
上位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 のデータに基づいて行います。
-
内部リンク計画
DATA_getDomainKeywordsを対象ドメインに絞り込み、トピックが隣接するクエリで上位表示されているページ5件を WebFetch で取得します。- 各ページについて、アンカーテキスト案と、新しい記事内で配置するセクションを提案します。
-
ブリーフを作成(出力形式を参照)。
出力形式
合成したブリーフを最上位に、ステップファイルを 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行では、どのテンプレートのアウトライン構成を引き継ぎ、どの二次的なパターンを取り入れるのかを説明して、ハイブリッドを選んだ理由を示してください。