seo-content-audit について
seo-content-auditは、既存ページの公開可否を評価するSEOスキルです。編集者やコンテンツチーム向けに、E-E-A-TとCITEの採点、公開不可条件の確認、優先修正項目を含む判定を行います。
主な機能
- 01E-E-A-T基準で採点
- 02CITE基準で採点
- 03公開不可条件の確認
- 04AI Overviewの引用分析
- 05公開判定と上位5件の修正案
活用シーン
- 01記事の公開準備状況の評価
- 02YMYLコンテンツの著者情報と根拠の監査
- 03AI Overview掲載元とページの差分確認
MCP 対応
AI Overviewデータ、プロンプトのサンプル、関連検索情報の取得に、接続済みのSE Ranking MCP サーバーが必要です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ seranking/ seo-skills --skill seo-content-auditインストール後、Claude Code で/seo-content-auditを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/cite.mdcore-eeat.mdtemplates/verdict.md詳細
出力例:examples/seo-content-audit-stripe-rate-limiters-20260514/VERDICT.md
コンテンツ品質監査
既存のコンテンツを、現代的な E-E-A-T(経験、専門性、権威性、信頼性)および CITE(明確な回答、一次統計データの掲載、タイムスタンプ、エンティティの権威性)の評価基準に照らして採点します。全体スコアにかかわらず公開を妨げる拒否項目を明らかにします。公開可/修正後に公開可/公開不可の明確な判定と、優先度の高い修正点 5 件を提示します。
前提条件
- SE Ranking MCP サーバーが接続されていること。
- Claude の
WebFetchツールを利用できること。 - ユーザーから以下の情報が提供されること:(a)既存コンテンツの URL(または貼り付けたコンテンツと公開予定の URL)、(b)コンテンツが検索順位を上げる対象のキーワード。任意で対象国(既定値:
us)。
プロセス
-
コンテンツを取得
WebFetch(常に実行)+mcp__firecrawl-mcp__firecrawl_scrape(利用可能な場合)- 対象を検証し、事前チェックを実行します。 標準の 3 段階事前チェック(クレジット残高、Firecrawl の利用可否、Google API)については、
skills/seo-firecrawl/references/preflight.mdを参照してください。このスキル固有の注意事項:- このスキルでの SE Ranking の推定コスト:通常約 10~15 クレジット(AIO コンテキスト、対象キーワードの AIO プロンプトサンプリング、監査対象 URL)。
- Firecrawl:任意です。利用できない場合は WebFetch にフォールバックします。監査する URL 1 件につき Firecrawl クレジットを 1 消費します(既定の上限は 50 URL、絶対上限は 200)。続行する前に、予測される Firecrawl クレジット数を提示します。
--no-firecrawlを渡すと、WebFetch のみで調査します(拒否項目の確認精度が下がります。手順 4 の注意事項を参照)。 - Google API:ティア 2(GA4 を利用可能)の場合、AIO コンテキスト取得後に手順 3b(監査対象 URL の GA4 オーガニックトラフィック)を実行できます。詳しい手順については、
skills/seo-google/references/cross-skill-integration.mdの「seo-content-audit」を参照してください。
- 最初に WebFetch(無料、即時):語数、H タグの階層、出典の引用(権威ある情報源へのリンク、番号付き参照)、画像、表、コードブロック、コメントスレッドを確認するため、Markdown を取得します。
- ページタイプを検出します。 URL のパターン、H1 の表現、JSON-LD の
@typeから、ページを次のいずれかに分類します:総合ガイド/ピラーページ、ハウツー、リスト記事/おすすめ記事、比較記事(X 対 Y)、解説記事、レビュー(単一製品)、ランディングページ(商用)。該当する語数の下限は、references/core-eeat.md→「ページタイプ別の語数の下限」で確認します。検出したページタイプ、適用した下限、実際の語数をevidence/01-content-snapshot.mdに記載します。実際の語数が下限を大きく下回る場合は、深度に関する E-E-A-T 項目でフラグを立てます(監査担当者が例外を正当化しない限り、自動的に ✗)。 - 次に Firecrawl — WebFetch の Markdown で失われる情報を補います:
metadataから、canonical URL、robots、lang、og:titleを取得します。- 返された
htmlから、すべての<script type="application/ld+json">ブロックを取得します。Article/BlogPostingスキーマを解析し、author(名前、@type: Person、任意のurlとsameAs)、datePublished/dateModified(ISO 8601)、publisher、mainEntityOfPageを抽出します。存在する場合は、単独のPersonスキーマも検出します。 - DOM レベルで著者名の検出を行います:構造化された著者表記(
<a rel="author">、<meta name="author">、<span class="byline">、[itemprop="author"])を特定します。実際の著者表記要素と、本文中の記述(「Jane と共同で執筆」のような本文中の記述は著者表記ではありませんが、<a rel="author">Jane Doe</a>は著者表記です)を区別します。
- Firecrawl を利用できない場合: WebFetch の処理はそのまま実行します。スキーマタイプの検出と構造化された著者表記の検出については、
evidence/01-content-snapshot.mdに「(skipped — Firecrawl required)」と記載します。手順 4 の拒否チェック #1 と #4 は本文中の記述を確認する方式にフォールバックします(信頼性は下がります)。この注意点をVERDICT.mdに記載します。
- 対象を検証し、事前チェックを実行します。 標準の 3 段階事前チェック(クレジット残高、Firecrawl の利用可否、Google API)については、
-
AIO のコンテキスト
DATA_getAiOverviewおよびDATA_getAiOverviewLeaderboard- 対象キーワードに AIO はありますか?
- AIO で引用されているのは誰ですか?
- 候補 URL は引用されていますか?
- 引用元に特徴的なパターン(掲載元のランク、新しさ、構成)は何ですか?
-
AIO プロンプトのサンプリング
DATA_getAiPromptsByTarget- 対象 URL のドメインがソースとして表示される LLM プロンプトをサンプリングします。
- 候補 URL と相互参照し、サンプリングしたプロンプトに表示されるか確認します。
3b. 監査対象 URL の GA4 オーガニックトラフィック (google-api.json が存在する場合のみ、tier ≥ 2)
- 暗黙的なトラフィック推定を、監査対象 URL の実測オーガニックセッション数に置き換えます。
- 直近 28 日間のオーガニック流入ランディングページ上位を取得します:
python3 scripts/ga4_report.py --report top-pages --days 28 --json - 結果をクライアント側で監査対象 URL のパスに絞り込みます。既存の AIO 引用のクロスチェックと合わせて、
VERDICT.mdの「## Snapshot」に次の内容を記載します:- GA4 の直近 28 日間のオーガニック指標:
{sessions} sessions / {users} users / avg engagement {n}s - URL がオーガニック流入ランディングページ上位 100 件に表示されない場合:「GA4:直近 28 日間のオーガニック流入ランディングページ上位 100 件に含まれていません — トラフィックが少ないか、ありません。」
- GA4 の直近 28 日間のオーガニック指標:
- これはシグナルであり、却下の理由ではありません。 E-E-A-T が高い YMYL ページの GA4 トラフィックが少ない場合、有益な情報となります(「コンテンツの品質から期待される可視性を獲得できていません」)。ただし、公開判断は変わりません。
- 詳細な手順は、
skills/seo-google/references/cross-skill-integration.md§「seo-content-audit」を参照してください。
-
references/core-eeat.mdを使って E-E-A-T をスコアリングします。- 4 つの評価軸(各 15 項目)で、合計 60 項目を評価します。
- 各項目を「はい/いいえ/一部該当」で評価します。評価軸ごとのスコア(各 0~100%)を算出します。
- 8 項目からなる AI コンテンツのマーカーのサブセクションをスコアリングします(references/core-eeat.md →「AI-content markers」を参照)。各項目が該当するかどうかを記録します。
- 4 つの公開不可チェックを適用します。いずれかに該当する場合は公開不可です。
- YMYL トピックで著者が匿名。(Firecrawl で取得した著者スキーマと DOM の著者名表記がある場合は高確度、本文のみの確認では中確度です。)
- 出典のない事実の主張。
- 開示されていないアフィリエイトまたはスポンサー関係。
- 人によるレビューのマーカーがない、AI 生成の YMYL コンテンツ(AI コンテンツのマーカーが 4 項目以上該当し、YMYL トピックであり、編集者の著者名表記/「レビュー担当」表記/「最終レビュー日」または「ファクトチェック日」の記載がない場合)。「編集者の著者名表記/レビュー担当」の確認には、Firecrawl で取得した DOM の著者名表記と、利用可能な場合は Article スキーマの
authorを使用します。Firecrawl がない場合は本文レベルのパターンマッチングにフォールバックします(確度が低くなるため、VERDICT.mdにその旨を記載します)。
-
references/cite.mdを使って CITE をスコアリングします。- 30 項目の CITE 評価基準(最初の 200 語以内で明確な回答を示す、一次統計を含める、タイムスタンプの新しさ、エンティティの権威性)。
- 各項目を「はい/いいえ/一部該当」で評価します。評価軸ごとのスコアを算出します。
- 3 つの公開不可チェックを適用します(最初の 300 語以内に回答がない/時間に左右されるコンテンツに日付スタンプがない/固有名詞を含むクエリでエンティティが明確に区別されていない)。
-
AIO の勝者と相互チェックする
- 引用元に特徴的なパターン(ステップ 2 より)ごとに候補を評価し、引用元にある要素が候補にもあるか確認します。
- 具体的な不足点を明示します。
-
templates/verdict.mdを使って 判定をまとめる- 公開: E-E-A-T ≥ 75%、CITE ≥ 70%、公開不可チェックへの該当なし。
- 修正後に公開: E-E-A-T 60~74% または CITE 55~69%、公開不可チェックへの該当なし。優先度の高い修正を 5 項目指定します。
- 公開不可: いずれかの公開不可チェックに該当、または E-E-A-T < 60%、または CITE < 55%。大幅な書き直しが必要です。
出力形式
以下の内容で seo-content-audit-{target-slug}-{YYYYMMDD}/ フォルダーを作成します。
seo-content-audit-{target-slug}-{YYYYMMDD}/
├── VERDICT.md (publish / publish-with-fixes / no-publish — primary deliverable; inlines content snapshot + AIO context)
├── 03-eeat-scoring.md (60-item rubric scored — load-bearing reference an editor consults item-by-item)
├── 04-cite-scoring.md (30-item rubric scored — load-bearing reference)
├── 05-aio-winner-comparison.md (gap vs cited sources — must remain top-level; live AIO competitive evidence per EVAL_RESULT_v2.md §9)
└── evidence/
├── 01-content-snapshot.md (HTML extracts + page metadata — raw step output)
└── 02-aio-context.md (AIO presence, citations, patterns — raw step output)
ステップファイル 01 と 02 は VERDICT.md の「スナップショット」/「AIO コンテキスト」セクションにインラインで記載します。evidence/ 内のコピーには、ステップの生の出力をそのまま保存します。03-eeat-scoring.md、04-cite-scoring.md、05-aio-winner-comparison.md はトップレベルに置きます。編集者がルーブリックの採点詳細を直接確認できるようにし、AIO の優位性比較は、ルーブリックの判定の根拠となる最新の競合エビデンスだからです。
VERDICT.md は以下の構成にします(templates/verdict.md も参照してください)。
# Content Audit: {URL or title}
> Audited {YYYY-MM-DD} · Target keyword: "{keyword}" · Country: {country}
## Verdict: {PUBLISH | PUBLISH WITH FIXES | NO PUBLISH}
{One sentence summary of why}
## Scores
| Dimension | Score | Threshold | Status |
|---|---|---|---|
| Experience | {n}% | 75% | {✓/✗} |
| Expertise | {n}% | 75% | {✓/✗} |
| Authoritativeness | {n}% | 75% | {✓/✗} |
| Trustworthiness | {n}% | 75% | {✓/✗} |
| **E-E-A-T composite** | {n}% | 75% | {✓/✗} |
| Clear answer | {n}% | 70% | {✓/✗} |
| Include stats | {n}% | 70% | {✓/✗} |
| Timestamp | {n}% | 70% | {✓/✗} |
| Entity authority | {n}% | 70% | {✓/✗} |
| **CITE composite** | {n}% | 70% | {✓/✗} |
## Veto checks
- Anonymous author on YMYL: {triggered / not triggered}
- Unsourced factual claims: {triggered / not triggered}
- Undisclosed affiliate / sponsored: {triggered / not triggered}
- AI-generated YMYL with no human review: {triggered / not triggered} ({n}/8 AI-content markers fired)
- ...
## AI Search readiness
- AIO present for "{keyword}": {yes/no}
- Top citation patterns: {list}
- Candidate URL cited in any sampled AIO: {yes/no}
- Gap vs cited sources: {bulleted gaps}
## Snapshot (measured)
- GA4 organic last 28d: {sessions} sessions / {users} users / avg engagement {n}s *(or `not in top-100` / `not configured (Tier 2 required)`)*
## Top 5 fixes
1. {Specific fix linked to a low-scored item or veto}
2. ...
5. ...
## Detailed scoring
See:
- 03-eeat-scoring.md (item-by-item E-E-A-T)
- 04-cite-scoring.md (item-by-item CITE)
- 05-aio-winner-comparison.md (gap analysis)
ヒント
- レート制限を守ってください。AIO と AIO-prompts のクエリは約 5~10 回で、十分な余裕があります。
- 実行前に
DATA_getCreditBalanceを呼び出してください。SE Ranking クレジットは通常約 10~15 必要です。さらに Firecrawl がインストールされている場合、監査対象 URL 1 件につき Firecrawl クレジットが 1 つ必要です(デフォルトの上限は 50 URL)。 - 基準値(E-E-A-T 75%、CITE 70%)は初期設定です。ドメインに合わせて調整してください。YMYL サイト(医療、金融)では、より高い基準(85%/80%)を求める必要があります。一般向けのブログでは、より低い基準(65%/60%)でも構いません。
- 拒否判定のチェック項目は交渉の余地がありません。YMYL トピックで執筆者が匿名のコンテンツは、スコアにかかわらず合格しません。
- 「修正して公開」と判定されたコンテンツでは、優先度上位 5 項目のリストが成果物です。執筆者に渡し、修正後に再監査してください。
- 新規記事の作成には
seo-content-briefを併用してください。このスキルは既存のコンテンツを監査し、content-brief は新しいコンテンツを作成します。 - ページに技術面やページタイプの問題がある場合は、
seo-sxoを併用してください。これは別の診断です。 - 60 項目の E-E-A-T ルーブリックと 30 項目の CITE ルーブリックは
references/にあります。これらは独自の見解に基づくものです。ドメインの編集基準に合わせて調整してください。