mcpField
S
seo-sxo

seo-sxo

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

seo-sxo について

seo-sxoは、ページが検索結果の傾向やユーザーのニーズにどれだけ合うかを評価するCodex SEOスキルです。SERP分析、ページ種別の照合、ギャップ採点、ペルソナ別の改善提案を行います。

主な機能

  1. 01SERP分析と傾向判定
  2. 02ページ種別の不一致検出
  3. 037項目のギャップ採点
  4. 04ペルソナ別の改善提案
  5. 05任意のワイヤーフレーム生成

活用シーン

  1. 01対象キーワードに対するページ評価
  2. 02上位ページ形式との不一致の特定
  3. 03コンテンツとUX改善の優先順位付け

インストール

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

$npx skills add https://github.com/agricidaniel/codex-seo --skill seo-sxo

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
page-type-taxonomy.md
persona-scoring.md
user-story-framework.md
wireframe-templates.md

詳細

検索体験最適化(SXO)

共有データキャッシュ

ステップ 0 -- 共有データキャッシュを確認する:

情報収集を始める前に、関連する SEO スキルから再利用できるコンテキストがないか、.seo-cache/ を確認します。 スキーマと依存関係マップについては、../seo/references/shared-data-cache.md を参照してください。

以下のキャッシュファイルが存在する場合は確認します。

  • .seo-cache/site-meta.json:ドメイン、ビジネスタイプ、業界、クロールのコンテキスト

  • .seo-cache/audit-scores.json:以前のフル監査での優先事項

  • .seo-cache/pages/{url-slug}/page-analysis.json:URL が指定されている場合のページ単位のコンテキスト

  • 見つかった場合:明らかに有効なフィールドを解析して使用します(「[日付]の[X]をキャッシュから使用」と記録します)

  • 見つからない場合、破損している場合、または無関係な場合:新しい根拠をもとに続行します

  • ユーザーが「refresh」または「re-run」と指示した場合:キャッシュの読み取りを無視し、書き込み時に上書きします

SXO は、SEO(Google が評価するもの)と UX(ユーザーが必要とするもの)の隔たりを埋めます。 従来の SEO 監査では技術的な健全性を確認します。SXO では、次のように問いかけます。「Google が SERP で実際に評価している内容に照らして、このページはこのキーワードでランクインするに値するでしょうか?」

核心的な洞察

技術的な SEO で 100 点中 95 点を獲得しても、そのキーワードに対してページの種類が適切でないために、ランクインできないことがあります。対象キーワードの検索結果に商品ページが 8 件、比較ページが 2 件表示されている場合、どれだけ最適化しても、ブログ記事が上位に食い込むことはありません。

コマンド

コマンド目的
/seo sxo <url>SXO の全分析(ページからキーワードを自動検出)
/seo sxo <url> <keyword>特定のキーワードを対象とした SXO の全分析
/seo sxo wireframe <url>具体的なプレースホルダーを含む IST/SOLL ワイヤーフレームを生成
/seo sxo personas <url>ペルソナのみをスコアリング(SERP 分析を省略)

実行パイプライン

ステップ 1:対象の取得
  1. scripts/fetch_page.py を使って対象の URL を取得します(SSRF 対策済み)
  2. scripts/parse_html.py で解析し、タイトル、H1、メタディスクリプション、見出し階層、単語数、スキーママークアップ、CTA、メディア要素を抽出します
  3. キーワードが指定されていない場合は、タイトルタグと H1 の共通部分から主要キーワードを抽出します
  4. 次に進む前に、キーワードが空でないことを検証します
ステップ 2:SERP の逆方向分析

分類ルールについては、references/page-type-taxonomy.md を参照してください。

  1. 対象キーワードを Google で検索します(WebSearch)
  2. オーガニック検索結果の上位 10 件それぞれについて、以下を記録します。
    • URL とドメイン権威性の区分(ブランド/ニッチ分野の権威/不明)
    • ページの種類(分類体系を使って分類)
    • コンテンツ形式(長文、リスト記事、ハウツー、比較、ツール、動画)
    • 単語数の推定値(スニペットの長さとページ構成から)
    • 使用されているスキーマの種類(評価、FAQ、HowTo などの SERP 機能から)
    • メディアのシグナル(動画カルーセル、画像パック、サムネイルの有無)
  3. 表示されている SERP 機能を記録します。
    • 強調スニペット(段落/リスト/表/動画)
    • 他の人はこちらも質問(表示されている質問をすべて抽出)
    • 広告(上部と下部の件数を数え、広告文のテーマを分析)
    • 関連検索(すべて抽出)
    • ナレッジパネル/ローカルパック/ショッピング結果
    • AI Overview の有無とソースの種類
  4. SERP のコンセンサスを算出します。
    • 優勢なページの種類(60% 超=強いコンセンサス、40~60%=混在、40% 未満=分散)
    • コンテンツの深さに対する期待(平均単語数の区分)
    • スキーマに対する期待(最も一般的な構造化データの種類)
    • メディアに対する期待(動画が必須か、画像が重要か)
ステップ 3:ページタイプの不一致の検出

これは SXO の中核となる洞察です。対象ページのタイプを、SERP で多数を占めるタイプと比較します。

不一致の深刻度レベル:

対象のタイプSERP が期待するタイプ深刻度推奨事項
ブログ記事商品ページ重大専用の商品ページを作成する
ブログ記事比較高マトリクスを含む比較ページに再構成する
商品情報提供高教育コンテンツのレイヤーを追加する
ランディングページツール/計算機高インタラクティブなツールコンポーネントを作成する
サービスページローカル検索結果中地域を示すシグナルとローカル向けスキーマを追加する
いずれかのタイプが一致-一致コンテンツの深さと UX に注力する

分類ルール:

  • references/page-type-taxonomy.md を使用して対象ページを分類する
  • 同じタクソノミーを使用して各 SERP 結果を分類する
  • 対象のタイプが SERP で多数を占めるタイプと異なる場合、不一致としてマークする
  • SERP にまとまりがない場合(多数を占めるタイプがない場合)、差別化の機会を記録する
ステップ 4:ユーザーストーリーの導出

完全なフレームワークについては、references/user-story-framework.md を参照してください。

SERP のシグナルから、ユーザーストーリーを導出します。

  1. PAA の質問から、知識の不足や懸念が明らかになります
  2. 広告コピーのテーマから、購買のきっかけや価値提案が明らかになります
  3. 関連検索から、検索の過程(その前後に何があるか)が明らかになります
  4. 強調スニペットの形式から、期待される回答の構成が明らかになります
  5. AI Overviewから、Google が決定的な回答と見なす内容が明らかになります

シグナルの各クラスターについて、ユーザーストーリーを作成します。

As a [persona derived from signal],
I want to [goal derived from query intent],
because [emotional driver from ad copy / PAA tone],
but I'm blocked by [barrier derived from PAA questions / related searches].

主要な検索意図を網羅するユーザーストーリーを 3~5 件作成します。

ステップ 5:ギャップ分析

SERP の期待に照らして、対象ページを 7 つの観点で比較します。

観点比較する内容スコア
ページタイプ対象のタイプと SERP で多数を占めるタイプの比較0-15
コンテンツの深さ単語数、見出しの階層、トピックの網羅性0-15
UX シグナルCTA の明確さ、ファーストビューのコンテンツ、モバイルレイアウト0-15
スキーママークアップ期待される構造化データの種類が含まれているか0-15
メディアの充実度画像、動画、インタラクティブ要素と SERP の標準との比較0-15
権威性のシグナルE-E-A-T の指標、ソーシャルプルーフ、資格0-15
鮮度最終更新日、日付のシグナル、コンテンツの新しさ0-10

合計:SXO ギャップスコア 0~100(低いほどギャップが大きく、高いほど一致度が高い)

ステップ 6:ペルソナベースのスコアリング

方法については、references/persona-scoring.md を参照してください。

  1. SERP の検索意図シグナルから、4~7 個のペルソナを導出します。
    • PAA の質問をテーマごとにグループ化する
    • 広告コピーを対象ユーザーごとに分類する
    • 関連検索を検索行動の段階に対応付ける
  2. 各ペルソナについて、4 つの観点(各 25 点)で対象ページを採点します。
    • 関連性:ページはこのペルソナのニーズに応えていますか?
    • 明確さ:このペルソナは 10 秒以内に回答を見つけられますか?
    • 信頼性:このペルソナに十分な信頼のシグナルがありますか?
    • 行動:このペルソナに明確な次のステップが示されていますか?
  3. スコアと具体的な改善提案を含むペルソナカードを出力します
  4. 最も弱いペルソナを先頭にして、提案を並べ替えます(最大の機会)
ステップ 7:ワイヤーフレームの生成(任意)

/seo sxo wireframe が呼び出された場合にのみ実行します。

テンプレートについては、references/wireframe-templates.md を参照してください。

  1. 解析したページ構造から IST(現状)のワイヤーフレームを生成します
  2. 以下に基づいて SOLL(目標状態)のワイヤーフレームを生成します。
    • SERP で多数を占めるページタイプ
    • ギャップ分析の結果
    • ペルソナスコアリングで弱かった点
  3. 非常に具体的なプレースホルダーを使用します。
    • 不可:「ここに CTA を追加」
    • 可:「ヒーローの下に、年間割引バッジ付きの料金 CTA を追加し、/pricing#enterprise にリンクする」
  4. 注釈付きのセマンティック HTML セクション構成として出力します

DataForSEO との統合

DataForSEO MCP ツールが利用可能な場合:

  1. API を呼び出す前に必ず、コストを見積もり、ユーザーの確認を得てください
  2. 正確な SERP データ(順位、機能、スニペット)には google_organic_serp を使用してください
  3. 検索ボリュームと競合指標には keyword_data を使用してください
  4. DataForSEO が利用できない場合は WebSearch に切り替え、出力の精度が低下することを明記してください

SXO スコアと SEO ヘルススコア

SXO スコアは、メインの SEO ヘルススコアとは別のスコアです。

  • SEO ヘルススコア = 技術的な準拠状況(クロール可能性、速度、スキーマなど)
  • SXO ギャップスコア = ページと SERP の期待値との整合性
  • ページの SEO スコアが 95、SXO スコアが 30 になることもあります。つまり、技術的には完璧でも、戦略的には不整合です
  • 両方のスコアを取得できる場合は、併せて報告してください

スキル間の参照

検出事項引き継ぎ先
ペルソナスコアリングにおける E-E-A-T のギャップ詳細な E-E-A-T 監査は /seo content
不足しているスキーマタイプ生成は /seo schema
SERP で検出されたローカル検索意図GBP 分析は /seo local
コンテンツの深さに関するギャップ詳細なページ分析は /seo page
ページ取得時に見つかった技術的な問題完全な監査は /seo technical
画像/メディアのギャップ最適化は /seo images

出力形式

SXO 分析の全容
## SXO Analysis: [URL]
### Target Keyword: [keyword]

### 1. SERP Landscape
- Dominant page type: [type] ([confidence]% consensus)
- SERP features: [list]
- Content depth norm: [word count range]
- Schema expectation: [types]

### 2. Page-Type Alignment
- Your page type: [type]
- SERP expects: [type]
- Verdict: [ALIGNED | MISMATCH (severity)]
- Impact: [explanation]

### 3. User Stories (derived from SERP signals)
[3-5 user stories with source signals]

### 4. Gap Analysis (SXO Score: XX/100)
[7-dimension breakdown table]

### 5. Persona Scores
[4-7 persona cards with 4-dimension scores]

### 6. Priority Actions
[Ranked list: fix mismatch first, then weakest persona gaps]

### 7. Limitations
[What could not be assessed, data source notes]

エラー処理

エラー対応
URL の取得に失敗エラーを報告し、URL にアクセスできるか確認するよう提案する
キーワードが指定されていない、または検出されない対象キーワードを指定するようユーザーに依頼する
WebSearch の結果が 5 件未満利用可能なデータで進め、サンプルが限られていることを明記する
SERP にオーガニック検索結果がなく、すべて広告商業性が非常に高い SERP であることを明記し、広告コピーのみを分析する
対象ページが JavaScript でレンダリングされている制約を明記し、利用可能な HTML コンテンツを使用する
DataForSEO のコストがしきい値を超えるWebSearch に切り替え、ユーザーに通知する

品質チェックリスト

結果を提出する前に、以下を確認してください。

  • 対象 URL を、生の curl/fetch ではなく scripts/fetch_page.py 経由で取得した
  • ページタイプの分類に、参考資料の分類体系を使用した
  • 5 件以上の SERP 結果を分析した
  • ユーザーストーリーの根拠として、具体的な SERP シグナルを示した
  • ペルソナスコアに、具体的な改善提案を含めた
  • SXO スコアが SEO ヘルススコアとは別であることを明確に示した
  • 制約事項のセクションを設け、正直に記載した
  • 該当する場合、スキル間の推奨事項を含めた

共有データキャッシュへの書き込み

すべての作業を完了した後、ワークフローで長期的に活用できる知見が得られた場合は、簡潔な JSON サマリーを .seo-cache/ に書き込んでください。 ../seo/references/shared-data-cache.md のスキーマと命名規則に従い、少なくとも cache_type、analyzed_at、ソース URL/ドメイン、主な検出事項、問題、推奨事項、ツールの制約を含めてください。.gitignore に .seo-cache/ がない場合は追加してください。

コメント