【採点ロジック完全公開】IndexReadyが26項目でWebサイトを評価する理由と配点の設計思想
なぜ採点ロジックを公開するのか
IndexReadyは、URLを入力するだけでWebサイトのSEOと生成エンジン最適化(GEO)の対策状況を100点満点で自動採点する無料ツールです。開発・運営しているのは、Webエンジニアのじょせふ(私)です。完全に個人プロジェクトとして継続的に改善しています。
このツールを公開してからよく聞かれる質問のひとつが、**「何を根拠にスコアを算出しているのか?」**です。これは真っ当な疑問で、ブラックボックスなスコアを鵜呑みにしてSEO施策の優先順位を決めるのは危険です。
そこで本記事では、IndexReadyが現在採用している全26項目の採点ロジックと配点の設計思想、そして実装上の判定閾値を可能な限り具体的に公開します。実装ファイルは src/lib/analyzers/seo/ と src/lib/analyzers/geo/ 配下に各項目ごとに分離されており、本記事の内容と1対1で対応しています。
設計思想 — なぜSEOとGEOを独立させたのか
最大の設計判断は、SEOとGEOを独立したカテゴリとして扱い、それぞれ100点満点で別々のスコアを算出していることです。
従来のSEOツールの多くは、「SEO総合スコア」として1つの数字に全項目をまとめます。これはユーザーには分かりやすい一方で、AI検索が普及した現在では大きな欠陥があります。
たとえば、ある企業サイトが完璧なtitleタグ、整ったmeta description、充実したsitemap.xmlを備えていても、llms.txt が存在せずGPTBotをrobots.txtでブロックしていれば、ChatGPTやPerplexityでの引用可能性はほぼゼロです。この現実を単一のスコアに押し込めると、重要なシグナルが埋もれてしまいます。
IndexReadyは「Google検索対策とAI検索対策は別の評価軸」というスタンスを取り、2つのスコアを並列に提示することで、ユーザーが自分のサイトの「どちらが弱いか」を一目で把握できるようにしています。
採点アルゴリズム — 個別スコアの集約方法
各項目は status(ok / warning / error)と数値スコア(0〜配点) を返します。カテゴリスコア(SEO 100点、GEO 100点)は単純な合計で、総合スコアはSEOとGEOを足した200点満点です。
| ステータス | 表示色 | 意味 |
|---|---|---|
| ok | 緑 | 配点満点を獲得 |
| warning | 黄 | 部分点(多くは配点の50%前後) |
| error | 赤 | 0点 — 致命的な欠落または誤設定 |
この3段階は結果ページの「Top Priorities」で失点が大きい順に上位3項目として表示され、改善優先度の判断材料になります。「どこから手を入れるべきか分からない」を避けるための仕組みです。
SEO採点の15項目 — 配点と判定閾値
SEOカテゴリは合計100点、15項目に配分されます。配点の考え方は**「検索順位への影響度」と「実装の難易度」のバランス**です。各項目の判定閾値は以下のとおりです。
| 項目 | 配点 | 満点条件 | 部分点条件 | 0点条件 |
|---|---|---|---|---|
| titleタグ | 10 | 30〜60文字 | 範囲外(5点) | 未設定 |
| meta description | 10 | 70〜160文字 | 範囲外(5点) | 未設定 |
| meta robots noindex | 8 | noindex指令なし | — | noindex検出(誤設定の疑い) |
| PageSpeed | 8 | PSI 90以上 | 50〜89(5点)/ 取得不能(3点) | 50未満(1点) |
| Core Web Vitals | 8 | LCP < 2.5s / INP < 200ms / CLS < 0.1 全て満たす | 1指標が閾値超過 or 取得不能(5点 or 3点) | 2指標以上が閾値超過(1点) |
| 見出し構造 | 6 | h1が1個 + h2が1個以上 | h1ありh2なし(4点)/ h1複数(2点) | h1なし |
| OGPタグ | 6 | og:title / description / image 全て設定 | 1〜2個欠落(2点) | 全欠落 |
| HTTPS | 6 | URLがhttps | — | http |
| canonicalタグ | 6 | 設定あり | — | 未設定 |
| 画像alt属性 | 6 | 全画像にalt(または画像なし) | alt欠落が画像数の30%以下(3点) | 30%超で欠落 |
| robots.txt | 6 | User-agentとSitemap指令の両方あり | どちらか欠落(3点) | 未設置 |
| sitemap.xml | 6 | <urlset> または <sitemapindex> を含む | XML として無効(3点) | 未設置 |
| コンテンツ量 | 6 | 800字以上(日本語)/ 500語以上(英語) | 300〜799字 / 200〜499語(3点) | 300字未満 / 200語未満 |
| HTML lang属性 | 4 | lang属性ありかつ書式妥当(例: ja、en-US) | 値が書式不正(2点) | 未設定 |
| viewport | 4 | width=device-width を含む | viewportはあるが width=device-width 未含(2点) | 未設定 |
titleとmeta descriptionが各10点の理由
この2項目を最高配点にしているのは、CTR(クリック率)に直接影響するからです。検索結果画面に表示される要素はユーザーの最初の接点であり、ここが弱いと順位が高くても流入が得られません。実装難易度は極めて低く、未対応サイトは純粋に「もったいない」の一言です。閾値(30〜60文字 / 70〜160文字)はGoogle Search Centralと一般的な検索結果スニペットの表示文字数に基づいています。
noindexが8点の理由
noindexチェックに8点という重い配点を設定しているのは、誤設定による事故のリスクが異常に高いからです。ステージング用テンプレートを本番に反映してしまい、全ページが検索対象外になっている事例が後を絶ちません。影響が甚大な割に、気づけば数秒で直せるため、目立つ重みで警告する設計にしています。
PageSpeedとCore Web Vitalsを別項目にしている理由
PageSpeed (8点)とCore Web Vitals (8点)は重複しているように見えますが、別の指標です。PageSpeedはLighthouseの総合スコア(モバイルベース)で、CWVは実ユーザーの読み込み体感を直接示すLCP・INP・CLSの値を見ています。前者はラボ環境の改善余地、後者はフィールド計測(CrUX)に基づく現状を表すため、IndexReadyは両方を計測対象に残しています。閾値はweb.dev — Core Web Vitalsの公式しきい値(LCP < 2.5s, INP < 200ms, CLS < 0.1)に準拠しています。
langとviewportが4点に抑えられている理由
HTML lang属性とmeta viewportは、未設定でも即座に順位が落ちるわけではないため控えめな配点です。ただしモバイルファーストインデックスでは無視できない基礎項目なので、チェック対象からは外していません。
コンテンツ量の閾値が言語によって異なる理由
日本語と英語では1単位あたりの情報密度が違います。実装上、文字種別の正規表現で日本語ページか英語ページかを判定し、日本語は「文字数(空白除く)」、英語は「単語数」で測ります。閾値は経験則で、日本語800字 ≒ 英語500語前後を目安に設定しています。これは厳密な研究値ではなく、IndexReadyが「薄いコンテンツ警告」と「明らかな不足エラー」を切り分けるための運用上の線引きです。
生成エンジン最適化(GEO)採点の11項目 — 配点と判定閾値
GEOカテゴリも合計100点、11項目に配分されます。SEOより項目数が少ない代わりに、1項目あたりの配点が重めになっています。
| 項目 | 配点 | 満点条件 | 部分点条件 | 0点条件 |
|---|---|---|---|---|
| llms.txt | 12 | llms.txt と llms-full.txt の両方かつ llms.txt 5行以上 | 両方ありで内容不十分(9点)/ llms.txt のみ(7点) | 未設置 |
| AIクローラー許可状況 | 12 | 主要AI bot 6種すべてを許可 | robots.txt未設置 or ブロック1〜2種(6点) | ブロック3種以上(2点) |
| 構造化データ JSON-LD | 10 | @type を3種以上検出 | 1〜2種(6点)/ JSON-LDあるが解析不能(3点) | JSON-LD未検出 |
| 引用元リンク品質 | 10 | 権威ある外部ドメイン3件以上 | 権威1〜2件(5点)/ 外部リンク3件以上だが権威0件(3点) | 外部リンクほぼなし or 権威なし |
| 明確な回答文 | 8 | 30〜200字パラグラフ3個以上 + 定義パターン(「とは」「is defined as」等)あり | パラグラフ1〜2個 + 定義パターン あり(5点)/ パラグラフ3個以上のみ(5点)/ パラグラフ1〜2個のみ(warning相当) | パラグラフなし or 内部スコア3未満 |
| FAQ/リスト/定義形式 | 8 | FAQ見出し(3) + 3項目以上のリスト(2) + 定義リスト(2) + <details>(2) の合計5以上 | 合計2〜4(そのスコアをそのまま表示) | 合計0〜1 |
| 質問形式の見出し | 8 | h2/h3に質問形式の見出しが3個以上 | 1〜2個(4点) | 0個 or h2/h3が1個もない |
| 統計・数値データ | 8 | 数値表現(%/年/件など)5個以上 | 2〜4個(4点) | 0〜1個 |
| コンテンツ鮮度 | 8 | datePublished / dateModified / <time> / last-modified のうち2種類以上検出 | 1種類のみ検出(4点) | 鮮度メタデータなし |
| E-E-A-T関連 | 8 | 著者情報(2) + 外部参照リンク2件以上(2) + 日付情報(1) の合計4以上 | 合計2〜3(合計値+1点を表示、最大8) | 合計0〜1 |
| Google推奨構造化データ | 8 | Google推奨タイプを3種以上 | 1〜2種(4点) | Google推奨タイプ0種 |
llms.txtとAIクローラー許可が各12点の理由
GEOカテゴリで最高配点の12点をつけているこの2項目は、存在しないとAI検索への露出が物理的にゼロになるという共通の性質を持ちます。
- llms.txtが無ければ、AIはあなたのサイト構造を効率的に把握できない
- GPTBotやClaudeBotをrobots.txtでブロックしていれば、そもそもクロールすらされない
これらは「改善すれば良くなる」項目ではなく、「やらなければマイナスが続く」項目です。扉が物理的に閉まっている状態を示すシグナルなので、最重量の配点にしています。判定する主要AI botのリストは2026年時点で GPTBot / ClaudeBot / PerplexityBot / Google-Extended / CCBot / anthropic-ai の6種です。
「引用されやすさ」を評価する項目群
GEOで重要なのは、AIが回答を生成するときに引用したくなる構造になっているかどうかです。
- 明確な回答文: AIは曖昧な文章より、定義的で簡潔なパラグラフを好む。実装は本文中の30〜200文字のパラグラフ数と、「とは」「is defined as」「refers to」「means that」といった定義パターンの有無を合算して評価
- 質問形式の見出し: 「〇〇とは?」「どう改善する?」などの形式は、質問ベースのAI検索にマッチしやすい
- 統計・数値データ: 具体的な数字は信頼性のシグナル。実装は本文中の数値表現(%、年、件数、million / billion など)を正規表現で抽出
- E-E-A-T: Experience / Expertise / Authoritativeness / Trustworthiness の4要素。著者情報(rel="author" や
[itemprop="author"]等)・外部参照リンク2件以上・日付情報(<time>、datePublished、dateModified等)の有無で判定
これらはSEOでは脇役だった要素が、GEOでは主役に昇格しています。
引用元リンク品質の判定基準
citation-quality では、外部リンクのドメインを URL.hostname で抽出し、*.gov / *.edu / *.ac.jp / *.go.jp / *.or.jp などの公的・教育機関TLD、または事前に登録された権威あるドメイン(wikipedia.org / scholar.google.com / pubmed / doi.org / arxiv.org / w3.org / schema.org / developers.google.com / web.dev / mdn.mozilla.org など)を「権威ある引用元」としてカウントします。ユニークな権威ドメインが3件以上で満点(10)、1〜2件あれば5点、権威ゼロでも外部リンクが3件以上あれば3点、それ以下は0点です。リンク数ではなく権威ある引用元の数で配点しているのは、量より質を評価したいためです。
コンテンツ鮮度の判定基準
content-freshness は8点で、満点条件は datePublished / dateModified / <time datetime> / last-modified メタの中から2種類以上のシグナルを検出することです。1種類のみだと部分点(4)、ゼロだと0点です。datePublished と dateModified の両方を構造化データに入れるのが最も安全な実装ですが、<time> 要素 + datePublished 等の組み合わせでも満点になります。
全26項目を貫く3つの配点方針
配点全体を決めるうえで、次の3つの方針を守っています。
- 誤設定リスクの高い項目は重く配点する(noindex、canonical、robots.txt)
- 実装コストが低く影響が大きい項目は重く配点する(title、meta description)
- やらないと全体が無効化される項目は最重量配点する(llms.txt、AIクローラー許可)
逆に、枝葉の微調整(例: alt属性の細かい文言)は軽い配点にしています。多くのサイトにとって重要なのは「致命的な誤設定がないこと」と「基本を押さえること」であり、細かな微調整ではないと考えているからです。
採点で参考にしている公式ガイドライン
各項目の閾値や判定ルールは、可能な限り公式情報源に基づいています。
- SEO全般: Google Search Central — SEO Starter Guide
- タイトル・スニペット表示: Title Link Best Practices
- Core Web Vitals: web.dev — Core Web Vitals(LCP/INP/CLSの公式しきい値)
- 構造化データ: Schema.org / Google構造化データ ギャラリー
- robots.txt: Robots Exclusion Protocol (RFC 9309)
- OGP: Open Graph protocol
- llms.txt: llmstxt.org — 仕様策定中の標準
特定のAIモデルやアルゴリズムの内部仕様は公開されていないため、GEO項目の一部は「現時点で観測されているベストプラクティス」を反映しています。仕様や挙動が変われば配点・閾値は調整します。
採点結果の読み方
スコアを確認するときの推奨順序は次のとおりです。
- エラー項目から確認 — 赤い項目は致命的なので最優先
- 警告項目を次に確認 — 黄色は順位への影響が出始めているサイン
- カテゴリ別スコアを比較 — SEOとGEOどちらが弱いかを把握
- 配点の重い項目に集中 — 限られた時間で最大の改善効果を狙う
満点を目指すより、**「エラーゼロ + 重み上位5項目で合格点」**を目指すほうが現実的で効果的です。実例として、私がindex-ready.jp自体を診断した検証レポートでは総合185/200でしたが、PageSpeedとLCPを最優先で直せば数日でこのスコアは伸ばせる手応えがあります。
FAQ
Q. このスコアで本当に検索順位が上がりますか?
A. IndexReadyのスコアは「Webサイトが技術的な基礎を備えているか」を評価する指標です。順位そのものを保証するものではありませんが、基礎ができていないサイトはそもそも上位表示の土俵に上がれません。逆に言えば、スコアを改善しても上位表示される保証はなく、コンテンツの質やドメインオーソリティなど他の要素も並行して強化する必要があります。
Q. 生成エンジン最適化(GEO)はなぜ重要ですか?
A. ChatGPT、Perplexity、Google AI Overviewなど、AIが回答を生成する検索サービスが増えています。これらで引用されるには、従来のSEOとは別の最適化軸(llms.txt、明確な回答文、構造化データなど)が必要です。GEOカテゴリを別建てにしているのは、SEO項目に紛れさせると「重要だが投資が後回しになりがち」な層の項目が見えなくなるためです。
Q. 採点項目は今後増えますか?
A. はい。AI検索の動向や新しいGoogleアップデートに合わせて継続的に追加・調整していきます。現在の26項目は2026年初頭時点でのSEOとGEOの実態を反映しています。仕様変更があれば、本記事と採点基準ページを更新します。
Q. 配点比率を変える予定はありますか?
A. 大きな変更は予定していません。配点を頻繁に変えるとスコアの過去比較ができなくなるため、安定運用を優先します。ただし、新しい採点項目を追加するときは、全体のバランスを取るために既存項目の重みを微調整する可能性があります。変更時は本記事に記録します。
実際にスコアを確認するには
IndexReadyのトップページでURLを入力するだけで、数秒でこの26項目すべての評価結果が手に入ります。完全無料、アカウント登録不要です。
各項目のさらに詳しい判定基準と改善方法は採点基準ページに掲載しています。本記事と合わせて参照してください。