seo-sxo について
seo-sxoは、SEOやUXの担当者向けに、ページが検索結果に表れるページタイプやユーザーの期待に合っているかを評価するスキルです。SERPを分析して不一致やギャップを特定し、具体的なワイヤーフレームも作成できます。
主な機能
- 01SERP形式と特徴の分析
- 02ページタイプの不一致検出
- 03コンテンツとUXのギャップ評価
- 04検索シグナルからペルソナを導出
- 05注釈付きページワイヤーフレームの作成
活用シーン
- 01技術的に整ったページが順位を得られない理由を評価
- 02検索結果に合うページ形式を選定
- 03ペルソナ別に改善の優先順位を決定
- 04目標ページの構成案を作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agricidaniel/ claude-seo --skill seo-sxoインストール後、Claude Code で/seo-sxoを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/page-type-taxonomy.mdpersona-scoring.mduser-story-framework.mdwireframe-templates.md詳細
検索体験最適化(SXO)
SXO は、SEO(Google が評価するもの)と UX(ユーザーが必要とするもの)の間のギャップを埋めます。 従来の SEO 監査では、技術面の健全性を確認します。SXO では、「SERP で Google が実際に評価している内容に基づいて、このページはこのキーワードで上位表示されるに値するか?」を問いかけます。
核となる洞察
技術 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:ターゲットの取得
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run render_page.py <URL> --mode auto(SPA 対応かつ SSRF 対策済み)でターゲット URL を取得します"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run parse_html.py <URL>で解析し、タイトル、H1、メタディスクリプション、 見出しの階層、単語数、スキーママークアップ、CTA、メディア要素を抽出します- キーワードが指定されていない場合は、タイトルタグと H1 の重複箇所から主要なキーワードを抽出します
- 続行する前に、キーワードが空でないことを確認します
ステップ 2:SERP の逆算分析
分類ルールについては references/page-type-taxonomy.md を参照してください。
- ターゲットキーワードで Google を検索します(WebSearch)
- 上位 10 件のオーガニック検索結果それぞれについて、以下を記録します:
- URL とドメインオーソリティの分類(ブランド/ニッチ分野の権威/不明)
- ページタイプ(分類体系を使用して分類)
- コンテンツ形式(長文、リスト形式、ハウツー、比較、ツール、動画)
- 単語数の推定値(スニペットの長さとページ構造から)
- 表示されているスキーマタイプ(現在サポートされている SERP 機能に基づく。FAQ/HowTo は除外)
- メディアのシグナル(動画カルーセル、画像パック、サムネイルの有無)
- 表示されている SERP 機能を記録します:
- 強調スニペット(段落/リスト/表/動画)
- 関連する質問(表示されている質問をすべて抽出)
- 広告(上部と下部。件数を数え、広告文のテーマを分析)
- 関連検索(すべて抽出)
- ナレッジパネル/ローカルパック/ショッピング結果
- AI Overview の有無とソースタイプ
- 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 のシグナルから、ユーザーストーリーを導出します。
- PAA の質問から、知識の不足や懸念を把握します
- 広告コピーのテーマから、商業的なきっかけや価値提案を把握します
- 関連検索から、検索の流れ(前後に何を検索するか)を把握します
- 強調スニペットの形式から、期待される回答の構成を把握します
- 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:ギャップ分析
次の 7 つの観点から、対象ページを SERP の期待と比較します。
| 観点 | 比較対象 | スコア |
|---|---|---|
| ページタイプ | 対象ページのタイプと SERP で主流のタイプ | 0-15 |
| コンテンツの深さ | 単語数、見出しの階層、トピックの網羅性 | 0-15 |
| UX シグナル | CTA の明確さ、ファーストビューのコンテンツ、モバイルレイアウト | 0-15 |
| Schema マークアップ | 構造化データの有無と期待されるタイプ | 0-15 |
| メディアの充実度 | SERP の標準と比較した画像、動画、インタラクティブ要素 | 0-15 |
| 権威性のシグナル | E-E-A-T の指標、社会的証明、資格・実績 | 0-15 |
| 鮮度 | 最終更新日、日付のシグナル、コンテンツの新しさ | 0-10 |
合計:0~100 の SXO ギャップスコア(低いほどギャップが大きく、高いほど適合度が高い)
ステップ 6:ペルソナベースのスコアリング
方法については、references/persona-scoring.md をお読みください。
- SERP の検索意図シグナルから、4~7 件のペルソナを導出します。
- PAA の質問をテーマごとに分類します
- 広告コピーを対象読者ごとに分類します
- 関連検索を検索行動の段階に対応付けます
- 各ペルソナについて、4 つの観点(各 25 点)で対象ページを採点します。
- 関連性:ページはこのペルソナのニーズに応えていますか?
- 明確さ:このペルソナは 10 秒以内に回答を見つけられますか?
- 信頼性:このペルソナにとって十分な信頼性のシグナルがありますか?
- 行動:このペルソナに明確な次のステップが示されていますか?
- スコアと具体的な改善提案を記載したペルソナカードを出力します
- 最も弱いペルソナから順に、改善提案を並べます(最大の機会から)
ステップ 7:ワイヤーフレームの生成(任意)
/seo sxo wireframe が実行された場合にのみ実施します。
テンプレートについては、references/wireframe-templates.md をお読みください。
- 解析したページ構造から IST(現状)のワイヤーフレームを生成します
- 次の要素に基づいて SOLL(目標)のワイヤーフレームを生成します。
- SERP で合意されているページタイプ
- ギャップ分析の結果
- ペルソナスコアリングで判明した弱点
- 具体性の高いプレースホルダーを使用します。
- 不可:「ここに CTA を追加」
- 可:「ヒーローの下に年間割引バッジ付きの料金 CTA を追加し、/pricing#enterprise にリンク」
- 注釈付きのセマンティック HTML セクションの概要として出力します
DataForSEO の統合
DataForSEO MCP ツールを利用できる場合:
- **API を呼び出す前に、**コストを見積もり、ユーザーに確認します
- 正確な SERP データ(順位、機能、スニペット)には
serp_organic_live_advancedを使用します - 検索ボリュームと競合指標には
kw_data_google_ads_search_volumeを使用します - DataForSEO を利用できない場合は WebSearch に切り替え、出力で精度が低下することを明記します
SXO スコアと SEO ヘルススコアの違い
SXO スコアは、メインの SEO ヘルススコアとは別のスコアです。
- SEO ヘルススコア = 技術的な準拠状況(クロール可能性、速度、スキーマなど)
- SXO ギャップスコア = ページと SERP の期待との適合度
- SEO 95 点 + SXO 30 点のページもあり得ます。技術的には完璧でも、戦略的には適合していない状態です
- 両方のスコアが利用できる場合は、併せて報告してください
他のスキルとの連携
| 調査結果 | 引き継ぎ先 |
|---|---|
| ペルソナスコアリングで判明した E-E-A-T の不足 | /seo content で E-E-A-T を詳細に監査 |
| スキーマタイプの不足 | /seo schema で生成 |
| SERP でローカル検索意図を検出 | /seo local で GBP を分析 |
| コンテンツの深さの不足 | /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 が
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run render_page.py <URL> --mode auto経由で取得されている(raw curl/fetch は使用しない) - ページタイプの分類に、references の分類体系が使用されている
- SERP の結果が 5 件以上分析されている
- ユーザーストーリーの根拠として、具体的な SERP シグナルが引用されている
- ペルソナのスコアに、具体的な改善案が含まれている
- SXO スコアが SEO Health Score とは別に明記されている
- 制限事項のセクションがあり、誠実に記載されている
- 関連する場合は、スキル間の推奨事項が含まれている