seo-sxo について
seo-sxoは、技術的な健全性だけでなく、ページが検索結果やユーザーのニーズに合うかを評価するSEOスキルです。SERPの期待、ページ形式、コンテンツの不足、ペルソナを分析し、任意でワイヤーフレームを作成します。
主な機能
- 01SERPとページ形式の分析
- 02検索意図との不一致の検出
- 037項目でのギャップ採点
- 04ペルソナ別のページ評価
- 05現状・目標ワイヤーフレームの任意作成
- 06DataForSEOまたはWebSearchでの調査
活用シーン
- 01ページが検索上位に届かない理由の分析
- 02対象キーワードに合うページ形式の選定
- 03コンテンツとUXの改善優先度の決定
- 04検索意図に沿ったページワイヤーフレームの作成
MCP 対応
DataForSEO MCP ツールが利用可能な場合、詳細なSERPデータとキーワード指標の取得に使います。利用できない場合はWebSearchに切り替えます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --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:対象の取得
scripts/fetch_page.pyを使って対象 URL を取得します(SSRF 対策済み)。scripts/parse_html.pyで解析し、タイトル、H1、メタディスクリプション、見出しの階層、単語数、スキーママークアップ、CTA、メディア要素を抽出します。- キーワードが指定されていない場合は、タイトルタグと H1 の重複部分から主要なキーワードを抽出します。
- 続行する前に、キーワードが空でないことを確認します。
ステップ 2:SERP の逆方向分析
分類ルールについては、references/page-type-taxonomy.md を参照してください。
- 対象キーワードを Google で検索します(WebSearch)。
- 上位 10 件のオーガニック検索結果ごとに、以下を記録します。
- URL とドメイン権威性の区分(ブランド/ニッチ分野の権威/不明)
- ページタイプ(分類表を使用して分類)
- コンテンツ形式(長文形式、リスト記事、手順解説、比較、ツール、動画)
- 単語数の推定値(スニペットの長さとページ構成から推定)
- 存在するスキーマタイプ(評価、FAQ、HowTo などの SERP 機能から判断)
- メディアの兆候(動画カルーセル、画像パック、サムネイルの有無)
- 表示されている 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 |
| スキーママークアップ | 実装済みと想定される構造化データの種類 | 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 データ(順位、機能、スニペット)には
google_organic_serpを使用します - 検索ボリュームと競合指標には
keyword_dataを使用します - DataForSEO が利用できない場合は WebSearch に切り替え、出力で精度が低下することを明記します
SXO スコアと SEO ヘルススコア
SXO スコアは、メインの SEO ヘルススコアとは別のものです。
- SEO ヘルススコア = 技術的な準拠状況(クロール可能性、速度、スキーマなど)
- SXO ギャップスコア = ページと SERP の期待との適合度
- SEO が 95 点、SXO が 30 点のページもあり得ます。つまり、技術的には完璧でも、戦略的には SERP と適合していません
- 両方のスコアを算出できる場合は、あわせて報告してください
他のスキルへの引き継ぎ
| 分析結果 | 引き継ぎ先 |
|---|---|
| ペルソナスコアリングで明らかになった 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 を
scripts/fetch_page.py経由で取得した(生の curl/fetch は使用していない) - ページタイプの分類に references の分類体系を使用した
- SERP の検索結果を 5 件以上分析した
- ユーザーストーリーで、根拠として具体的な SERP のシグナルを挙げている
- ペルソナのスコアに、具体的な改善提案が含まれている
- SXO スコアが SEO Health Score とは別のものとして明確に示されている
- 制約のセクションがあり、正直に記載されている
- 該当する場合、関連スキルをまたぐ提案が含まれている