seo-score について
監査結果からSearch SEOとAI Visibilityのスコアを算出し、定義済みの重み、重大度上限、ランク、カバレッジの規則を適用するスキルです。監査結果を再現可能な形で評価できます。
主な機能
- 01Search SEOとAIスコアの算出
- 02ステータスと重大度の適用
- 03有効カテゴリの重み調整
- 04重大な失敗によるスコア上限
- 05ランクとカバレッジの報告
活用シーン
- 01SEO監査結果のスコア化
- 02検索とAI可視性の結果比較
- 03CI向けの再現可能な監査スコア生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hainrixz/ claude-seo-ai --skill seo-scoreインストール後、Claude Code で/seo-scoreを入力して読み込まれたか確認します。
詳細
seo-score
所見(schema/finding.schema.json に準拠)を 2 つのスコアに変換します。モデルの全容は references/scoring-model.md にあります。必ずその内容に従ってください。
手順
- スコアごとに、各モジュールが対応するカテゴリ別に所見をグループ化します。所見は
expected_impact.axis(search、ai、both)で指定されたスコアにのみ反映されます。 - カテゴリ値 =
100 × Σ(スコア対象の所見の status_factor × severity)/ Σ(severity)。status_factorは、pass が 1.0、warn が 0.5、fail が 0.0 です。needs_apiとnot_applicableは両方の合計から除外します。 - 有効な重み: モジュールから所見が出ていない条件付きカテゴリ(e-commerce/local/international)を除外し、残りの重みを再正規化して有効な合計にします。
- スコア = Search SEO と AI Visibility それぞれについて、
Σ(カテゴリ値 × 重み)/ Σ(有効な重み)。 - 重大度による上限:
severity: 5かつstatus: failの所見がある場合、影響を受けるスコアの上限を 40 とし、capped: trueを設定します。 - バンドを割り当て(A≥90、B≥80、C≥70、D≥60、F<60)、Search×AI の象限に基づく 1 行の解釈を付けます。
6b. カバレッジの下限:
coverage(所見がスコアに反映された、その軸の常時適用ウェイトの割合)を報告します。50% 未満の場合、その軸はprovisional: true、state: "partial"となります。この場合、バンドとカバレッジ値を必ず併記し、バンドの文字だけを単独で表示しないでください。 - M21(AI discovery & agent endpoints — llms.txt、agents.md、UCP、agentic sitemap)の重みは 0 です。レポートには含めますが、AI スコアには反映させないでください。
決定性
数値を再現可能にし、CI で検証できるように、node "${CLAUDE_PLUGIN_ROOT}/scripts/score.mjs" --run <run-dir>(<run-dir>/findings.json を読み込みます)、または所見のみのファイルには --findings <path> を使用してください。ファイルに実行コンテキストが含まれていない場合は、--vertical a,b、--multilingual、--environment production|preview|staging|local を追加します。--run が受け取るのはパスであり、latest という単語ではありません。score コマンドは、ディレクトリを渡す前に <root>/<host>/latest.json から latest[:host] を解決します。Node を利用できない場合は、同じ計算式に従って手計算し、その代替手段を明記してください。いずれの場合も、計算結果は references/scoring-model.md と一致している必要があります。
出力
{ "search_seo": { "value": 78, "band": "C", "capped": false, "interpretation": "...", "categories": [ {"name":"Indexability & Crawl","weight":22,"value":91,"active":true}, ... ] },
"ai_visibility": { "value": 64, "band": "D", "capped": false, "interpretation": "Citable structure missing; add answer blocks and schema.", "categories": [ ... ] } }