mcpField
G
geo-score

geo-score

ローカル
github.comビジネス・マーケティング325 日前に更新

geo-score について

geo-scoreは、AI回答エンジンがサイトにアクセスし、内容を理解・評価して引用できるかを調べるオープンソースのスコアリングツールです。公開された基準による無料スコアに加え、チーム独自のAPIキーで引用状況を別途確認できます。

主な機能

  1. 01無料の0~100サイト準備度スコア
  2. 025つの柱にわたる21の段階的チェック
  3. 03購入者の質問をエンジンに照会
  4. 04質問セットの引用状況を週次追跡
  5. 05テキスト、JSON、SARIF、JUnitレポート
  6. 06MCPツールとGitHub Action

活用シーン

  1. 01AIクローラーを妨げる技術的要因の特定
  2. 02回答エンジンが引用する情報源の確認
  3. 03競合と比較した引用率の追跡
  4. 04CIワークフローでのサイトチェック

MCP 対応

stdio経由のMCPサーバーとして、Score、Ask、Watchの3段階をツールとして提供します。読み取り専用モードでは支出を防げます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
pypigeo-score1.8.3
mcpbgeo-score-1.8.3.mcpb

ツール

7

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
urlstringはい
urlsarrayいいえサンプリングの代わりに、同じサイト上のこれらのページを指定どおりに評価します(同条件で比較するには、以前のレポートの sampled_urls を渡してください)。
sampleintegerいいえurls が指定されていない場合にサンプリングするページ数(デフォルトは 8)。

詳細

英語 · 簡体字中国語

geo-score — AI 回答エンジンにおけるサイトの可視性を測るオープンな評価基準

geo-score

geo-score は、Jianrun Tech(见润科技)が提供する、ウェブサイト向けのオープンソース AI 可視性(GEO)スコアリングツールです。 以前の geo-watch は 1.2.0 で geo-score に統合され、レベル 2 および 3 として引き継がれています。 ウェブサイト、ドキュメント、無料のオンラインチェックはこちら:geo-score.dev。

60 秒でわかる geo-score

1 つのコマンドで 0~100 のスコア、3 つのゲート、最初に修正すべきギャップ、そしてすべてのポイントを再確認できる理由がわかります。

https://github.com/user-attachments/assets/2270314f-446a-4c2d-b27f-11e1f6d66ff8

英語 · 60 秒 · 中国語版


AI エンジンはあなたのサイトを引用できますか?1 つのコマンドで無料の 0~100 スコアを確認できます。実際に引用していますか?自分の API キーを使って、各エンジンの API 経由で確認しましょう。

geo-score は、AI 回答エンジンがウェブサイトにアクセスし、解析し、信頼して引用できるかどうかを、公開されバージョン管理された評価基準に照らして 0~100 でスコアリングします。この評価基準は誰でも再計算できます。さらに、自分の API キーを使って、購入を検討している人が尋ねる質問を各エンジンに投げかけ、回答でどのサイトが引用されたかを記録します。スコアは無料で、インストールも不要です。引用結果はスコアの横に表示され、スコアには加算されません。

クイックスタート · スクリーンショット · チェック項目 · 精度はどのくらいですか? · ドキュメント · ウェブサイト · 変更履歴 · 公開リーダーボード

ライセンス:MIT 評価基準 v1.1 依存関係なし Claude Code スキル MCP サーバー PR 歓迎 geo-score 1.8.0 を使って 2026-10-05 に測定した、リーダーボードページの AIV 準備状況 PyPI 最新リリース

バージョン: 現在のリリースは PyPI の geo-score==1.8.3 です。タグ、wheel、チェックサムは GitHub Releases にあり、変更内容は変更履歴で確認できます。このページに記載されたすべてのインストールコマンドはこのリリースに固定されています(scripts/release.py --bump ですべてまとめて更新されます)。そのため、実行するツールはこのページで説明しているものと同じです。評価基準は別途バージョン管理されており、現在のバージョンは v1.1 です。main はリリースより先行している場合があります。CI とクライアント開発には、固定されたリリースを使用してください。


❤️ スポンサー

ここに掲載を希望しますか? · スポンサーシップが評価基準、スコア、公開 リーダーボード、またはこのドキュメントの技術的な推奨事項に影響することはありません。

クリックして折りたたむ
CCSubこのプロジェクトをご支援いただいたCCSubに感謝します!CCSubはAI APIのリレープラットフォームです。Claude、GPT、Gemini、DeepSeekの各モデルで1つのAPIキーを使用でき、Claude Code、Codex、Cursorなどのコーディングツールと互換性があります。こちらのリンクから登録してください。

スポンサーは、geo-scoreの引用測定(レベル2と3)の対象としてテストされていません。これらの測定には各エンジン独自の検索対応APIが必要であり、リレー経由ではウェブ検索と引用がそのまま渡されない場合があります。

解決する問題

GEOはGenerative Engine Optimization(生成エンジン最適化)の略です — ChatGPT、Perplexity、 Google AI Overviews、Gemini、Copilotに引用されることを目指します。地理や地図とは関係ありません。

回答エンジンは、アクセスでき、解析でき、信頼できる情報源から文章を引用します。サイトが除外される理由は、ブラウザーからは見えない小さな問題であることがよくあります。たとえば、取得クローラーを拒否するrobots.txtの1行、JavaScriptの実行後にしかテキストが存在しないページ、出典のない数値などです。geo-scoreは、サイトにどの問題があり、それぞれがどれほど重要かを見つけ、さらにエンジンがサイトを引用しているかを3つのレベルで確認します。

スコア(無料、キー不要)→ 質問1つを確認(ご自身のAPIキー)→ 質問セットを毎週監視(ご自身のAPIキー)。

1つのツールで3つのレベル
レベル確認できること必要なものコマンド
1 · スコアAIエンジンがサイトにアクセスし、解析し、信頼し、引用できるか。公開評価基準に基づく0~100のスコア不要:キーもインストールも不要geo_score.py stripe.com
2 · 質問今、関心のある質問について、エンジンがサイトを引用するかOpenAI、Perplexity、Gemini、Anthropic、OpenRouterのいずれかのAPIキーgeo_score.py stripe.com --ask "payments API for marketplaces"
3 · 監視競合や出典と比較して、週ごとにどの程度引用されているかご自身のAPIキーと固定の質問リストgeo_score.py watch run
flowchart LR
    S[Your site] --> L1["Level 1 · Score<br/>free, no key"]
    L1 --> R["0–100 readiness<br/>5 pillars · 3 gates · biggest gaps"]
    Q[Questions your buyers ask] --> L2["Level 2 · Ask<br/>one question, your API keys"]
    Q --> L3["Level 3 · Watch<br/>a fixed question set, every week"]
    L2 --> C["Who the answers cite<br/>you · competitors · third-party pages"]
    L3 --> C
    R -. reported side by side, never summed .- C

レベル1はスコアです。レベル2と3では、評価基準のスコアから意図的に除外されている成果を測定します(2つのスコア、決して1つにまとめない)。これらは100点満点のスコアの横に表示され、スコアに合算されることはありません。サイトのスコアが90でも、第三者による掲載がより多い競合にすべての回答で負けることがあります。逆の場合もあるため、両方を確認する必要があります。

SEOとは異なる問いである理由

従来のSEOが問うのは、検索順位は何位かです。回答エンジンは順位付けをしません。文章を取得し、情報源を引用する価値があるかを判断してから、引用します。問いが異なれば、問題の種類も異なります。Googleで3位に表示されるサイトでも、まったく引用されないことがあります。エンジンが文章を取得するため、この評価基準ではContent Citabilityを最も重視しています。これは設計上の選択であり、測定された効果に基づくものではありません。文章の構成がどれほど重要かを示す根拠は限られており、その点は根拠の表で説明しています。

評価基準で確認する項目の大半は、機械的に対応でき、修正も容易です — robots.txtの1行、JSON-LDブロック、テンプレート内の日付、単独で意味が通じるように書き直した段落などです。難しいのは、何が欠けているのか、それぞれがどれほど重要なのかを把握することです。

まずはこちらの2つのガイドをご覧ください。手動で確認してからgeo-scoreで検証するChatGPTはあなたのウェブサイトを読めますか?と、geo-scoreと一般的なAI SEOスキルとの違いです。


スクリーンショット

すべての画像は、このページ用に撮影した実際の出力です。

ターミナルで geo-score 1.8.3 が jianruntech.com を採点:100 点中 96 点、ランクは Leading、各チェックのティア、最も大きなギャップ 3 件
レベル 1 のターミナル出力。 geo-score 1.8.3 で 2026-10-17 に実行した geo_score.py jianruntech.com(メンテナー自身のサイト)の出力を、色付きのまま画像化しています。スコア外の所見の前で切り取っています。
geo-score GitHub Action が書き込むジョブサマリー:スコア、ランク、全 21 件のチェックとそれぞれの根拠を示す表
同じレポートの GitHub Action のジョブサマリー。action/summary.py が出力する Markdown を GitHub の Markdown API でレンダリングしています。チェック表の後で切り取っています。
公開リーダーボードのページ:324 サイト、中央値 55、上位四分位数 70、範囲 11~96、73 サイトは AI が読み取れない
公開リーダーボード、2026-10-17 に撮影。数値は geo-score 1.5.0 で 2026-10-02 に実行した結果です。
リーダーボードの全サイトの表:スコア、ランク、業種、チェック ID ごとの最も大きなギャップ 3 件
リーダーボード上の全サイト。ランク、業種、チェック ID ごとの最も大きなギャップ 3 件で並べ替えできます。同じページ、同じ撮影時の画像です。

主な機能

機能内容詳細
採点(レベル 1)5 つの柱にわたる 21 件の段階的なチェック、3 つのゲート、最も大きなギャップからの表示、次の各ティアに必要な内容を確認できます。標準ライブラリのみを使う単一ファイルで、キーは不要ですチェック項目
質問(レベル 2)ご自身のキーを使い、検索機能付きの API 経由で ChatGPT、Perplexity、Gemini、Claude に 1 つの質問を投げ、それぞれの回答がどの情報源を引用したかを報告しますレベル 2 と 3
監視(レベル 3)固定した質問セットを週ごとに比較します。引用率と 95% 信頼区間、シェア・オブ・ボイス、各エンジンが重視する情報源、さらに対応のある検定で変化が確認された場合にのみ変化を変化として報告する diff を提供します監視の方法
レポートと差分テキスト、公開スキーマに準拠した JSON、SARIF、JUnit に対応します。diff は 2 つのレポートをチェックごとに比較し、--baseline は同じページを再採点しますCLI リファレンス
MCP サーバー3 つのレベルすべてを、stdio 経由でエージェント向けのツールとして提供します。--read-only を指定すると、費用を発生させられないサーバーになりますMCP サーバー · guide/mcp.md
GitHub Actionプッシュのたびに採点し、スコアの低下またはゼロのゲートでビルドを失敗させ、ジョブサマリーを作成しますGitHub Action · action.yml
バッジスコアとランクを示す任意の SVG、または shields.io エンドポイント用 JSON を提供します。スコアやリーダーボードの順位が変わることはありませんバッジ
Claude Code スキルCLI に加えて、外部検索または人間の判断が必要な 3 つのチェックを実行しますClaude Code スキル · SKILL.md

チェック項目

合計100点の段階評価チェックが21項目あり、さらに分母には含まれない最大+6点のボーナスチェックが4項目あります。仕様の全文はこちらです:rubric/v1.1.md · 简体中文

柱点数確認内容
到達可能性 — ゲート15クロール用クローラーはページにアクセスできますか? robots.txt、10種類のAIユーザーエージェントからのライブ到達性、サーバー側でレンダリングされたコンテンツ
理解可能性22ページと企業の内容を把握できますか? Organization と WebSite、llms.txt、サイトマップ、パンくずリスト、ページタイプのスキーマ
コンテンツの引用可能性35引用する価値のある内容がありますか? 単独で意味が通じる回答文、質問のされ方に合った見出し、出典のある数値、実際の執筆者名、新しさ
ブランドの信頼性18エンジンが信頼する根拠はありますか? ナレッジグラフのエンティティ、第三者の掲載情報、解決可能な sameAs、動画の存在
回答への適合性10回答に取り上げやすい形にコンテンツが構成されていますか?

設計上、コンテンツの引用可能性に最も大きな重みを割り当てています。回答エンジンが取得するのはドメインではなく、文章の抜粋です。文章の抜粋の構成がドメインの権威性を上回るかどうかは、まだ確立されていません。単独で最も配点の高いチェックである p2.answer-passages の根拠は乏しいものです(根拠が最も乏しい部分)。

採点対象のチェックはすべて段階評価です。各チェックには2~4段階があり、サンプルとして選んだ8ページのうち何ページが該当するかを示すため、同じサイトを採点する2人が同じ計算結果を得られます。ゲートとなるチェックは3項目あります。クローラーのアクセス、ライブ到達性、サーバー側でレンダリングされたコンテンツのいずれかが0点の場合、結果の上限は40点になります。クローラーがコンテンツにアクセスできない限り、ほかの対策をしても効果がないためです。

評価帯
0–3031–5051–6566–8283–100
未着手初期段階成長中堅実先進的

評価帯の名称が示すのは段階であり、最終評価ではありません。外部ベンチマークでは、ほとんどのビジネスサイトが30~55点の範囲にあるため、40点台は通常の範囲であり、心配する必要はありません。このリポジトリ独自のベンチマークでは、324サイトの85%が初期段階に達し、6%が先進的な段階に達しています(評価帯の境界)。


公開スコア付きの324サイト

その4分の1は、AIクローラーには読み取れません。 73サイトではゲートチェックが0点です。AI検索クローラーがコンテンツを取得できないため、引用できる情報がありません。20サイトはrobots.txtでAIクローラーを名指しでブロックしています。これは編集上の選択であり、そのように報告されています。amazon.comが17点なのは、まさにこの理由です。41サイトは、JavaScriptの実行後にしか本文が存在しないページを配信しています。 コンテンツは存在し、ブラウザーには表示されますが、クローラーには空の殻しか見えません。このグループは、ほぼ間違いなく意図してそうしたわけではありません。さらに12サイトでは、サーバーがクローラーのユーザーエージェントを拒否します(監査者のアドレスから未検証のプローブを実施)。

中央値は55(95% CI 51~58、stats.py)。範囲は11~96です。66サイトは4ページ未満を対象にスコアを算出しました。それらを除くと中央値は59です。

サイトスコア区分
resend.com96先行
pulumi.com94先行
supabase.com93先行
elevenlabs.io91先行
lumalabs.ai90先行
…
qcloud.com12未着手
mercadolibre.com12未着手
keepa.com11未着手

セクター別の全表 → · Markdown · 生データ · CSV · 各サイトの全レポート · 再実行する

クリックして確認する価値のある調査結果が、ほかにも2つあります。中国の5つのセクターに属するサイトは、ほかのサイトより22ポイント低いスコアです(95% CI 16~30、中央値は36対58。1.1.0で測定した以前のサンプルでは、差は16~23ポイントでした)。サイトが提供する言語で分類すると、中国語サイト54件は、ほかの270件より26ポイント低いスコアです(95% CI 22~32)。セクターの分類をそろえて比較すると、差は-8~27ポイントです。生の点数でチェックごとに数えると、差の69%はCLIがヒューリスティックを使って読み取るチェックにあります。そのため、ツールが中国語のページを誤読している可能性があるのは、最大でもその割合です(内訳)。チェック別の差が最も大きい2項目、疑問文形式の見出しと、それだけで完結する回答文については、人手監査との比較で唯一対象となった中国語サイトでも、CLIは人間より低く評価しました。そのため、この差の一部は、ツールが中国語のページを保守的に読み取っていることによる可能性があります。1.5.0以降、CLIは各ページをその言語で読み取り、中国語のタスク、説明、比較の見出しをカウントします。上記のリーダーボードは1.5.0で測定しているため、この変更が反映されています。また、出典と検証可能な著者名が明記された統計は、サイトの半数以上で、差が最も大きい3項目のうちの1つです。

ここに示す数値はすべて、クイックスタートのコマンドで再現でき(ベンチマークは2026-10-02に1.5.0で実施)、再現性も測定しました。2026-10-12、1.8.0で同じ場所から同日にリスト全体を3回スコアリングしました(3回目は1回目のページを再読み込み)。毎回スコアを算出した317サイトのうち、99%は最初の2回のスコア差が±5以内で、81%はスコアが完全に一致しました(ICC 0.99、SEM 1.9、REPRODUCIBILITY.md。benchmark/retest.pyで算出)。2026-09-09に測定した古い1.1.xビルドでは、±5以内が96%、一致が45%でした。各サイトのスコアは正確な値ではなく、±5の幅で捉えてください。中央値は安定しています。現在も変動する主な要因はナレッジグラフの照会です。この環境からは、ほとんどのサイトで応答がありません。また、ボット対策が実行ごとに異なる応答を返すサイトでは、ゲートチェックの結果も変動します。区分、対照実験、サイトごとの比較結果はbenchmark/REPRODUCIBILITY.mdに記載しています。

参考用の5サイトについては、21項目すべてのチェックを対象に、根拠を含む人手採点の監査も公開しています:examples/audits/v1.1/。


どの程度正確ですか?

よくある5つの質問と、このリポジトリでそれぞれの回答を確認できる場所:

質問回答記録
同じサイトを2回スコアリングすると、どれくらい差が出ますか?2026-10-12に1.8.0で同日に再テストした結果、317サイトの99%が±5以内で、81%が同一でした(ICC 0.99)REPRODUCIBILITY.md
誰でも再計算できますか?はい。すべてのチェック、ティア、重みが公開されているため、誰が実行しても同じページなら同じスコアになりますrubric/v1.1.md
同じルーブリックを読む人の評価と一致しますか?84のチェックペアのうち80%が同じティアになり、不一致があったのは5サイトのみで、すべてキャリブレーション用サイトでしたVALIDITY.md
重みがランキングを決めていますか?重みを均等にした場合も、300通りのランダムな摂動を加えた場合も、順位相関は0.99以上を維持しますSENSITIVITY.md
スコアの高いサイトほど、AIに頻繁に引用されますか?事前登録したテストの第1波(2026-10-12~14、16カテゴリ、83サイト、1つのエンジンからの回答1,280件)では、関連性は検出されませんでした(T = 0.07、p = 0.51)。この設計では、Tが0.29以上の関連性を検出できました。検出されなかったことは、関連性がないことと同じではありませんRESULTS-wave0.md、PREREGISTRATION.md

人手による監査との比較。 CLIは、サイト外の検索や人間の判断が必要な3つのチェックを、推測するのではなく分母から除外します(サイトが中国語に対応していない場合は、4つ目のp4.cn-enginesも除外します)。公開済みの人手監査5件について同じページを再スコアリングしたところ、84のチェックペアの80%で監査担当者のティアと一致しました(ルールを読み取るチェックでは92%、判断を近似するチェックでは69%)。両方がスコアリングしたチェックでは、平均で2.4ポイント低くなりました(サイトごとの差は12ポイント低いものから10ポイント高いものまで、平均絶対差は8.8)。全体の正規化スコアは平均で5.2ポイント低く、差は16ポイント低いものから7ポイント高いものまででした。これは、人手監査ではCLIが除外するp3.listings、p3.mentions、p4.question-coverageもスコアリングするためです。n=5で、すべてキャリブレーション用サイトです。不一致の一覧はVALIDITY.mdをご覧ください。


クイックスタート

1つのコマンド

Python 3.8以降が必要です。標準ライブラリのみを使用し、インストールは不要です。公開URLを読み取り、公開済みのバージョン管理されたルーブリックに基づくスコアを出力します。ブラックボックスではありません。

curl -sL https://raw.githubusercontent.com/jianruntech/geo-score/v1.8.3/cli/geo_score.py \
  | python3 - stripe.com --brief
出力全体 — 各チェックと、次のティアで求められる内容(--explainを追加すると根拠も表示されます)
  AIV READINESS  https://stripe.com
──────────────────────────────────────────────────────────────────────────
  72 / 100   Solid
  11 points to Leading

  Reachable 13/15
   ◐ Crawlers allowed in robots.txt   ███████████░░░░░░░  3/5
   ✓ Reachable to retrieval agents    ██████████████████  5/5
   ✓ Main content server-rendered     ██████████████████  5/5
  Understandable 17/22
   ◐ Sitemap discoverable and fresh   █████████░░░░░░░░░  2/4
   ✓ llms.txt present and structured  ██████████████████  5/5
   ✓ Organization + WebSite schema    ██████████████████  6/6
   ✗ BreadcrumbList on nested pages   ░░░░░░░░░░░░░░░░░░  0/3
   ✓ Page-type schema (Product, FAQ…) ██████████████████  4/4
  Content Citability 21/35
   ✓ Self-contained answer passages   ██████████████████  9/9
   ◐ Headings match how people ask    ████████░░░░░░░░░░  3/7
   ◐ Freshness signal present         █████████░░░░░░░░░  3/6
   ◐ Statistics carry a source        ████████░░░░░░░░░░  3/7
   ◐ Named, verifiable authorship     █████████░░░░░░░░░  3/6
  Brand Credibility 9/10
   ⊘ Third-party listings             ··················   —
   ⊘ Independent mentions             ··················   —
   ✓ Knowledge-graph entity           ██████████████████  4/4
   ✓ sameAs links resolve             ██████████████████  3/3
   ◐ Video and multimodal presence    ████████████░░░░░░  2/3
  Answer Fit 2/4
   ◐ Content shaped for extraction    █████████░░░░░░░░░  2/4
   ⊘ Covers the questions people ask  ··················   —
   ⊘ Chinese engine readiness         ··················   —
  ✓ full · ◐ partial · ✗ zero · ⊘ not measured (left the denominator)

  Biggest gaps
   +3 next tier (+3 to full)  Freshness signal present          needs: most pages do, and dateModified agrees with the visible date
   +3 next tier (+3 to full)  Named, verifiable authorship      needs: and the name links to a verifiable identity page
   +2 next tier (+2 to full)  Crawlers allowed in robots.txt    needs: mainstream retrieval user-agents explicitly allowed

  Scored 62 / 86 observable · 4 checks left the denominator · rubric v1.1 · took 91.5 s
  Needs off-site search or judgement: p3.listings, p3.mentions, p4.question-coverage
  Not observable this run: p4.cn-engines (not a Chinese-language site)

  Full rubric and what each tier means:
  https://github.com/jianruntech/geo-score/blob/v1.5.0/rubric/v1.1.md
  Score moved, or a check shows —? https://github.com/jianruntech/geo-score/blob/v1.5.0/guide/troubleshooting.md

geo_score.py stripe.comを、HTTPSプロキシ経由で2026-10-03にgeo-score 1.5.0を使用して記録したものです(フッターの時刻にはプロキシ経由の時間も含まれます)。1.8.3で実行した場合は、スクリーンショットをご覧ください。1.7.0以降、レポートではチェックの後にスコア対象外として3つの情報(ページごとのrobots.txtのルール、サーバーHTML内のリンク、hreflang)も表示されます。これらがスコアに影響することはありません。この記録はそれらの追加前のものです。cli/README.mdをご覧ください。

### PyPI からインストール:uvx または pipx

3 つのレベルすべてに対応しています。レベル 2 と 3 では、cli/geo_watch.py が cli/geo_score.py と同じ場所に必要です。PyPI のパッケージには両方が含まれています。リポジトリをクローンするか、両方のファイルをダウンロードしても実行できます。以下のどちらのコマンドにも、git やビルド手順は不要です。

uvx [email protected] example.com            # run it without installing (needs uv)
pipx install geo-score==1.8.3              # or install the geo-score command
geo-score example.com --explain            # every check, with the evidence behind it

PyPI にアクセスできない場合は、リリースから同じ wheel をインストールします: pipx install https://github.com/jianruntech/geo-score/releases/download/v1.8.3/geo_score-1.8.3-py3-none-any.whl。 ソースからインストールする場合(git が必要です):pipx install git+https://github.com/jianruntech/[email protected]。 どちらを選んでも、標準ライブラリのみを使用します。リリースのダウンロードには SHA256SUMS ファイルが含まれており、PyPI 上の wheel と sdist はバイト単位で一致します(確認方法)。

CLI のすべての実行方法と、自分の README に追加できるオプションのバッジ

CLI — レベル 1 は依存関係のない単一ファイルで、各レポートには実行時間(elapsed_s)が記録されます。レベル 2 と 3 では、同じリリースの cli/geo_watch.py を追加します。PyPI のパッケージを使う場合は、以下の python3 cli/geo_score.py の代わりに uvx [email protected](または pipx install geo-score==1.8.3 の後に geo-score)を使用できます。3 つのレベルすべてで同様です。

python3 cli/geo_score.py example.com            # human-readable
python3 cli/geo_score.py example.com --explain  # with the evidence behind every check
python3 cli/geo_score.py example.com --json     # conforms to schema/report.v2.json
python3 cli/geo_score.py example.com --compare competitor.com   # side by side
python3 cli/geo_score.py example.com --badge aiv-badge.svg      # embeddable SVG
python3 cli/geo_score.py example.com --badge-json aiv-badge.json  # the same badge as shields.io endpoint JSON
python3 cli/geo_score.py example.com --share                    # one line to paste somewhere
python3 cli/geo_score.py diff before.json after.json             # what changed between two reports, check by check
python3 cli/geo_score.py example.com --baseline before.json --fail-on-drop   # CI: re-score the same pages, fail only on a drop

「Scored with geo-score」:自分の README に追加できるオプションのバッジ。 --badge aiv-badge.svg は、スコアとバンドを示す SVG を書き出します。README と同じ場所にコミットし、その数値の意味を説明するページ、このリポジトリ、または公開リーダーボードへのリンクを設定してください:

[![AIV readiness, scored with geo-score](aiv-badge.svg)](https://github.com/jianruntech/geo-score)

これは任意であり、何も変えません。バッジや戻り先へのリンクによってスコアが変わることも、リーダーボードにサイトが掲載されるか、掲載場所が決まることもありません。サイトはサイトの追加の手順でリーダーボードに登録され、リンクの掲載と引き換えに登録されることはありません。コミットした SVG には、それを書き出した実行時の情報が表示されます。--badge-json を使うと、同じバッジを shields.io のエンドポイント JSON として書き出せるため、新しい画像を用意せずに最新の状態を保てます(詳細)。

Claude Code スキル

CLI で測定できるのは、静的なフェッチで確認できる内容です。3 つのチェックには外部検索または人間の判断が必要で、スキルはそれらも行います。

npx skills add jianruntech/geo-score     # add -g for a global install
# then: /geo-score audit https://example.com

npx skills add はオープンソースの skills CLI を実行します。このリポジトリにある 1 つのスキル geo-score を見つけ、デフォルトブランチである main のリポジトリ全体(約 9 MB)を .claude/skills/geo-score にコピーします。コピー先は Claude Code 用です。Node.js がない場合や、main ではなくリリースを使う場合は、リリースタグを自分のスキルフォルダーにクローンしてください: git clone --branch v1.8.3 --depth 1 https://github.com/jianruntech/geo-score ~/.claude/skills/geo-score。

スキルなしの場合の CLI の精度については、どの程度正確ですか?をご覧ください。

MCP サーバー

geo-score-mcp はローカル MCP サーバーです(stdio、Python 標準ライブラリのみ)。エージェントに CLI と同じ 3 つのレベルを提供します。サイトを無料でスコアリングし、AI エンジンに 1 つの質問をし、質問セットを週ごとに追跡できます。uvx [email protected] mcp を実行すると PyPI から起動します(pipx でインストールした場合は geo-score-mcp)。クローンから起動する場合は python3 cli/geo_score.py mcp を実行します。 geo-score を Cursor に追加 geo-score を VS Code にインストール geo-score を VS Code Insiders にインストール geo-score を LM Studio に追加

ボタンと以下の設定行は、PyPI から geo-score 1.8.3 を uvx で実行します。必要なのは uv だけで、git もビルド手順も不要です。独自のキーは追加しませんが、プロバイダーキーをエクスポートしたシェルから起動したサーバーは、そのキーを使用できます(Claude Code は環境変数を引き継ぎます)。サーバーが費用を使えないようにするには、mcp の後に --read-only を追加してください。

Claude Code

claude mcp add --scope user geo-score -- uvx [email protected] mcp

mcpServers ファイルを読み込むすべてのクライアント向けの標準設定(ファイルにキーは含まれません):

{
  "mcpServers": {
    "geo-score": {
      "command": "uvx",
      "args": ["[email protected]", "mcp"]
    }
  }
}

Claude Desktop はシェルの PATH を読み込みません。command には which uvx が出力するフルパスを指定してください。

PyPI にアクセスできない場合は、リリース wheel を使用します:uvx --from https://github.com/jianruntech/geo-score/releases/download/v1.8.3/geo_score-1.8.3-py3-none-any.whl geo-score-mcp

ソースから実行する場合(git が必要です):uvx --from git+https://github.com/jianruntech/[email protected] geo-score-mcp

ツール、各ツールの費用、読み込むキーと設定
ツールレベル費用書き込みヒント引数
score_site1無料いいえ読み取り専用、オープンワールドurl、urls、sample
ask2有料(お持ちのキーを使用)いいえ非破壊、オープンワールドquestion、engines、brand、domains
run3有料(お持ちのキーを使用);dry_run は無料設定ファイルの隣にある .geo-score/watch/runs/ 配下の実行ファイル非破壊、オープンワールドdry_run、engines、limit、max_calls、budget_usd
list_runs3無料いいえ読み取り専用、冪等—
report3無料いいえ読み取り専用、冪等run、since、format
diff3無料いいえ読み取り専用、冪等from、to、format
status—無料いいえ読み取り専用、冪等—

リソース:geo-score://rubric/v1.1。

プロンプト:audit_site(url)、check_citations(question、brand)、weekly_watch、compare_runs(from、to)、explain_check(check_id)。

太字の引数は必須です。ヒントはツールの MCP アノテーションです。クライアントは、何を確認するかの判断に利用できます。あくまでヒントであり、保証ではありません。費用が発生するのは ask と run のみで、サーバーに渡したプロバイダーキーがある場合に限られます。

エージェントに尋ねること:

プロンプト呼び出すもの
https://acme.com の AI 検索への対応状況をスコアリングし、獲得できるポイントが最も多いチェック項目を3つ挙げてください。url を指定して score_site
追跡中の質問をドライランし、予定されている呼び出しと上限を教えてください。dry_run: true を指定して run(レベル3、設定が必要)
直近2回のウォッチ実行を比較してください。変更されたエンジンと、ノイズの範囲を超える変更があるかを教えてください。diff(デフォルトでは最新の2回の実行を比較)
**キーと設定。** `score_site` にキーは不要です。`ask` と `run` は、プロバイダーのキー (`OPENAI_API_KEY`、`PERPLEXITY_API_KEY`、`GEMINI_API_KEY`、`ANTHROPIC_API_KEY`、`OPENROUTER_API_KEY`) をサーバーの環境変数から読み込みます。これはターミナルの環境変数とは異なります。デスクトップアプリからは、シェルで エクスポートした値を参照できません。レベル 3 のツールには `geo-score-watch.json` も必要です。GUI クライアントは プロジェクト内でサーバーを起動しないため、`-c /absolute/path/geo-score-watch.json` を指定してください。1.4.0 以降は、`--read-only` を指定すると、費用が発生しないサーバーとして起動できます。

各クライアント(Claude Code、Claude Desktop、Codex、Cursor、VS Code、Gemini CLI、Devin Desktop、Zed)のセットアップ、Claude Code プラグイン、タイムアウト、セキュリティ、トラブルシューティングについては、 guide/mcp.md を参照してください。

GitHub Action

プッシュのたびにレベル 1 を実行し、サイトをスコアリングして、スコアが低下した場合はビルドを失敗させます。スケジュールに 合わせてレベル 3 を実行する方法については、examples/ci/watch-weekly.yml を参照してください。

- uses: jianruntech/geo-score@v1
  with:
    url: https://example.com
    fail-under: 40
    fail-on-gate: true

ゲートが 0 の場合、スコアは 40 を上限とします。本来 40 以上になるサイトは正確に 40 と判定され、fail-under: 40 を通過します。fail-on-gate: true を指定すると、上限が適用されたサイトはすべて失敗します。

出力されるジョブサマリーについては、スクリーンショットを参照してください。


レベル 2 と 3 · AI は実際にあなたを引用していますか?

--ask と watch は、購入者が尋ねる質問を、各プロバイダーの検索対応 API を通じて ChatGPT、Perplexity、Gemini、Claude に 送信します。各プロバイダーの API には自分のキーを使用し、回答が誰を引用しているか(あなた、競合他社、あるいはエンジンが 代わりに参照する第三者のページ(フォーラム、レビューサイト))を記録します。キーは環境変数から読み込まれ、geo-score がどこかに 保存することはありません。

git clone --branch v1.8.3 --depth 1 https://github.com/jianruntech/geo-score && cd geo-score/cli
export OPENAI_API_KEY=… PERPLEXITY_API_KEY=…         # any subset of engines works
python3 geo_score.py acme.com --ask "invoicing app for freelancers"        # level 2
python3 geo_score.py watch init --brand Acme --domain acme.com --competitor "Rival=rival.com"
# put the questions your buyers ask an AI assistant into queries.csv, then:
python3 geo_score.py watch run --dry-run            # the plan, the caps, what a diff could detect and how precise one question's rate is; no calls, no cost
python3 geo_score.py watch run                      # level 3: every question on every engine, saved
python3 geo_score.py watch diff                     # this run against the last, with a significance test
python3 geo_score.py watch report --since 30        # the last 30 days pooled, one interval over questions

レベル 2 では、各エンジンに各質問を 1 回ずつ尋ね、結果を準備状況レポートの下に表示します(--json を指定した場合は、レポートの citation オブジェクトにも含まれます)。1 回の質問は一例にすぎません。エンジンが今日どのように回答するかを確認するために使い、引用率の測定には使わないでください。

watch の実行結果の表示例(説明用:架空のブランドと定型回答を使用しており、実際の測定結果ではありません。1.2.0 で保存し、1.8.0 で表示した実行結果)
geo-score watch · Lumo · run 20260926T083000Z · api channel

6 questions × 2 engines × 2 = 24 planned · 23 answered · 1 failed · 0 skipped

Cited in 38% of answers to questions that do not name Lumo (6 of 16, 4 questions, 95% CI 12–62%) · mentioned in 38%
Questions that name Lumo (2, kept out of the headline): cited in 100% (7 of 7, 95% CI 65–100%) · mentioned in 100%
Your site was cited somewhere for 5 of 6 questions.

By engine
  engine          model             cited         95% CI   mentioned  named first (tracked)  avg rank
  chatgpt-api     gpt-6-luna        9/12 75%      42–100%  75%        9/12                   1.0
  perplexity-api  sonar             4/11 36%      8–75%    36%        0/11                   2.0       1 failed
  gemini-api      gemini-3.8-flash  not measured                                                       no_key: set GEMINI_API_KEY or GOOGLE_API_KEY

These rows, and the tables below, count every question, the 2 that name Lumo included.

Answer share your pages support: not measured; this run was saved before citation positions were recorded.

Sources listed and used in the answer: not measured; this run was saved before listed sources were recorded.

Repeat consistency of cited domains (per engine; descriptive, not read by diff)
  engine          questions measured  pairs  median Jaccard
  chatgpt-api     6/6                 6      1.00
  perplexity-api  5/6                 5      1.00
  gemini-api      not measured                               no_key

Least consistent questions (up to 3 per engine):
  id   question                         engine          answers that cite  Jaccard
  q02  ai video tool with no watermark  chatgpt-api     2                  0.50
  q01  best free ai video generator     perplexity-api  2                  0.50

- Repeat consistency: for each question an engine answered more than once in this run, the overlap of the domains two of its answers cite, shared domains over all domains of the two (Jaccard), for every two answers, averaged per question; the median over questions per engine. 1: every ask cited the same domains; 0: no domain in common. Domains are read as everywhere in this report, www dropped; the order of citations is not compared.
- Answers that cite nothing are left out: two empty lists are not agreement, and one empty list is not a 0. On an engine, a question with fewer than two answers that cite is not measured. Lowest: up to 3 questions per engine whose answers did not all cite the same domains, lowest first.
- Descriptive only: no interval and no test, never part of the cited rate, and watch diff does not read it. It describes asks minutes apart in one run, which share that day's index; it is not computed over pooled runs.

Share of voice
              cited  95% CI  mentioned  named first (tracked)  sentence share
  Lumo (you)  57%    26–86%  57%        9/23                   100%
  Pixa        52%    33–71%  100%       14/23                  100%

- Named first (tracked): answers that name that brand before any other brand in your config, out of the answers that name at least one of them. Brands your config does not list are not seen, so first among the brands you track may not be first in the answer. Two brands first named at the same place, one name inside the other, are neither first.
- Sentence share: in the answers that name a brand, the mean share of their sentences that name it, every sentence counted the same. A sentence ends at a line break, at 。!?, or at . ! ? before a space.
- Both read the answer as saved, which keeps its first 20,000 characters; a name that first appears after that is not seen.

Sources the engines cite most (not yours)
  domain        answers  share  owner
  pixa.example  12       52%    Pixa
  reddit.com    11       48%

Questions where a competitor is cited and you are not (1)
  id   question                    cited instead
  q03  cheapest text to video app  Pixa

Who is named for each question
  id   question                         answers  Lumo (you)             Pixa               no tracked brand named  searched yes/no/unknown  most cited
  q01  best free ai video generator     4        cited 3/4 · named 3/4  cited 2 · named 4  0/4                     2/0/2                    Lumo (you)
  q02  ai video tool with no watermark  4        cited 1/4 · named 1/4  cited 2 · named 4  0/4                     2/0/2                    Pixa
  q03  cheapest text to video app       4        cited 0/4 · named 0/4  cited 2 · named 4  0/4                     2/0/2                    Pixa
  q04  lumo vs pixa                     4        cited 4/4 · named 4/4  cited 2 · named 4  0/4                     2/0/2                    Lumo (you)
  q05  pixa alternatives                4        cited 2/4 · named 2/4  cited 2 · named 4  0/4                     2/0/2                    —
  q06  鹿末视频免费吗                   3        cited 3/3 · named 3/3  cited 2 · named 3  0/3                     2/0/1                    —

- An answer given without a web search cannot cite anything.
- "No tracked brand named" counts answers that name none of the brands in your config; they may name others.
- Perplexity and OpenRouter search on every call or do not say, so their answers count as unknown under searched.

By question type
  type         cited     95% CI   mentioned
  alternative  2/4 50%   15–85%   50%
  list         4/8 50%   22–78%   50%
  pricing      3/7 43%   0–100%   43%
  vs           4/4 100%  51–100%  100%

What the engines searched for (from 12 answers that show it)
  times  search
  2      best free ai video generator
  2      ai video tool with no watermark
  2      cheapest text to video app
  2      lumo vs pixa
  2      pixa alternatives
  2      鹿末视频免费吗

- Of 12 searches: 0 contain a year, 6 contain a ranking or comparison word.

Ledger
24 questions asked · 23 API requests · 14,620 in / 4,860 out tokens · 23 searches · $0.07 + 12 answers with no price (add prices to geo-score-watch.json)
1 failed after 24 HTTP requests in all; a request that timed out may still be billed.
Caps: at most 100 questions.

Read this before quoting the numbers
- API channel. Answers come from each provider's search-enabled API, which is not the consumer app. Compare runs with runs; never pool them with answers sampled by hand in the apps.
- The same question gets different answers from one ask to the next, and answers to one question move together. Rates carry a 95% interval: Wilson when each question was answered once, a bootstrap over questions when a question has several answers. diff pairs the questions both runs answered and calls a change a change only when an exact paired test (McNemar, or a sign-flip test when a question has several answers), Holm-corrected across engines, says so (p < 0.05).
- A question that names the brand invites an answer that cites it. Those questions are kept out of the headline rate and reported on a line of their own.
- Engines without a key, calls that failed and calls skipped by a cap count as not measured, never as zero.
- This measures citations. It does not predict traffic, rankings or revenue.
- This run was saved before questions were flagged at run time. Questions that name the brand were found when this report was made, from the saved question text and the run's brand name, aliases and domains.
レベル 3 のレポート内容、わからないこと、対象エンジン、上限、費用

レベル 3 では質問リストを固定し、各回答を .geo-score/watch/runs/ (スキーマ)に保存して、次の内容を報告します。

意味
cited回答に、所有する URL(domains のエントリー(サブドメインを含む)、または Amazon ストアや GitHub 組織などの url_prefixes エントリー)へのリンクが含まれています
rank回答が引用する異なるドメインの中での順位です。ランク 1 は、最初に引用された情報源であることを意味します
mentioned回答で、あなた、aliases のいずれか、またはドメイン名が言及されています。中国語、日本語、韓国語の名前はどこにあっても一致し、それ以外の名前は単語全体でのみ一致します
share of voice同じ回答を対象にした、競合他社ごとの同じ 2 つの割合です
sources最も頻繁に引用されるサードパーティのドメインです。各エンジンがあなたのカテゴリで信頼しているページを示します
answer shareページが各回答をどの程度裏付けているか(supported_share)を示します。プロバイダーが示す引用位置に基づき、文字数、文数、位置で重み付けした文字数で読み取ります。cited の割合の横に表示され、合算はされません。引用に位置情報がない回答は測定対象外です
sources listed and usedPerplexity と Gemini(generate_content)は回答の横に情報源を返し、本文で使用したものを示します。回答ごとの掲載情報源と使用情報源、掲載情報源に対する使用情報源の割合、あなたの URL を掲載し使用した回答を示します。情報源の一覧を 1 つだけ返す API は測定対象外です
repeat consistency1 回の実行でエンジンに同じ質問を複数回尋ねた場合、引用されたドメインが各回答間でどの程度一致するか(Jaccard 係数。エンジンごとの質問に対する中央値)と、最も一貫性の低い質問を示します。説明用の指標であり、watch diff では使用しません
gapsいずれかの回答で競合他社が引用され、あなたは引用されていない質問です
searches回答前にエンジンが実際に実行した検索です。API が公開している場合(OpenAI、Gemini、Claude)に表示されます。これは推測ではなく、実際に観測されたクエリの分岐です。レポートでは、年、ランキング、比較を表す語句を含む検索の数を集計します。また、回答の前に検索が行われたものの、エンドポイントからクエリテキストが返されなかった場合は、その旨を示します
ledger質問、API リクエスト、トークン、検索、コストを記録します。各実行にはそれぞれ固有の台帳が作成されます

このツールではわからないこと。

  • ChatGPT アプリではありません。 回答は、ウェブ検索を有効にした各プロバイダーの API から取得されます。一般向けアプリでは、異なるモデル、プロンプト、パーソナライズが使用されます。API の実行結果は API の実行結果と比較してください。アプリで手作業で収集した回答とまとめて集計しないでください。
  • アクセスできない情報もあります。 Google AI Overviews と AI Mode、TikTok、Reddit、Xiaohongshu などのアプリ内にある AI の要約、アシスタントのメモリとアカウント設定、国のヒントより詳細な位置情報、コーディングエージェントが選択するライブラリには、これらの API からアクセスできません。
  • 引用は掲載された事実を示すだけで、評価ではありません。 引用率が示すのは、エンジンがあなたに言及し、リンクしたことだけです。記述が正しいか、ページが引用に値するかは示しません。エンジンは、誤解を招くページや自己宣伝のページも引用します。
  • 1 件の回答は単なる一例です。 各割合には 95% 信頼区間が付与されます。1 つの質問に複数の回答がある場合、それらの回答は連動して変動するため、質問単位のブートストラップを使用します。diff は、両方の実行で回答された質問に対する正確な対応のある検定で変化が示され、エンジン間で Holm 補正を適用した後も有意な場合(p < 0.05)にのみ、変化として扱います。共通する質問が少なすぎる場合(6 件未満、または比較するエンジン数に対して不十分な場合)は、判定不能と報告します。手法については、guide/watch-methodology.md をご覧ください。
  • あなたの名前が含まれる質問は別扱いです。 「acme vs rival」や「is acme worth it」のような質問では、エンジンの検索にあなたの名前が含まれるため、ほとんどの場合に引用されます。watch は実行時にこの種の質問を検出し、主要な割合から除外したうえで、件数とともに別の行に報告します。必要に応じて、queries.csv の branded 列でフラグを手動で修正できます。
  • 未測定はゼロではありません。 キーのないエンジン、失敗した呼び出し、上限に達した呼び出しは、いずれも未測定として報告され、あなたの割合を下げることはありません。
  • 引用はトラフィックではありません。 ここに表示される情報から、訪問数、ランキング、収益を予測することはできません。 エンジン。 設定で使用するモデルを指定し、実行のたびに変更しないでください。モデルが変わった実行は diff で検出できます。OpenRouter なら、1つのキーで数百種類のモデルを利用できます。
エンジン ID(デフォルト)プロバイダーキーデフォルトモデル引用としてカウントされるもの検索結果の表示報告されるコスト
chatgpt-apiOpenAI Responses API + web_searchOPENAI_API_KEYgpt-6-lunaurl_citation アノテーションはいいいえ、価格を設定してください
perplexity-apiPerplexity SonarPERPLEXITY_API_KEYsonar回答で使用された番号付きソースいいえはい
gemini-apiGemini Interactions API + google_searchGEMINI_API_KEY または GOOGLE_API_KEYgemini-3.8-flashurl_citation アノテーションはいいいえ、価格を設定してください
claude-apiAnthropic Messages + web_search ツールANTHROPIC_API_KEYclaude-sonnet-5回答本文の引用はいいいえ、価格を設定してください
任意の IDOpenRouter + web プラグイン(プロバイダー独自の検索ではなく、OpenRouter の検索を使って回答するモデル)OPENROUTER_API_KEYopenai/gpt-6-lunaurl_citation アノテーションいいえはい

上限とコスト。 max_calls は実行中に行う質問数の厳密な上限です。上限を超えるプランは実行開始を拒否されます。budget_usd は、これまでの支出額に加えて、そのエンジンで確認された最も高額な呼び出しの費用を毎回の呼び出し前に確認します。そのため、超過する場合でも、エンジンごとに最大で1回分の呼び出しまでです。予算を設定すると、費用を把握できないエンジンは、--allow-unpriced を指定しない限り除外されます。すべての実行で、リクエスト数、トークン数、検索数、コストの台帳が記録されます。設定、価格、すべてのコマンドについては、cli/README.md をご覧ください。

エージェントから。 レベル 2 と 3 は MCP ツールとしても利用できます。エージェントは上限を厳しくすることはできますが、緩めることはできません。MCP サーバーをご覧ください。

毎週。 引用率の変化は緩やかで、ノイズも多く含まれます。同じ曜日に、同じ質問とモデルで実行し、単独の実行結果ではなく diff を確認してください。 examples/ci/watch-weekly.yml では、リポジトリのシークレットに保存されたキーを使ってスケジュール実行し、毎回の実行結果をコミットするため、履歴が git に残ります。実行ファイルには質問と回答全文が含まれます。機密情報を含む場合は、プライベートリポジトリを使用してください。

自分で実行するか、実行を依頼するか。 ここにあるものはすべて MIT ライセンスで、ツールに有料版はありません。モデルプロバイダーには直接料金を支払い、台帳で各実行の使用状況を確認できます。API ではなく人の手が必要な作業は、Jianrun がサービスとして提供します。

自分で実行(無料)Jianrun に依頼
チャネル検索機能付きのプロバイダー APIAPI とコンシューマー向けアプリを毎週手作業でサンプリング
エンジンOpenAI、Perplexity、Gemini、Anthropic、OpenRouter 上の任意のモデル検索機能付き ChatGPT、Perplexity、Gemini、Google AI Overviews、Copilot、中国市場に販売する場合は中国のエンジン
レポートテキスト、Markdown、CSV、JSONAIV ダッシュボード付きの週次レポート:引用の推移、エンジンごとの率、AI があなたについて誤っている事実、準備状況の履歴
引用が減少したとき対象外修正を実施します
価格API の請求額AEO デリバリーシステム。四半期あたり US$7,790 から(年間払いの場合 US$30,590)、AIV ダッシュボード込み。料金を見る

対象となる方

対象用途使い始めるには
サイト所有者とマーケティングチームAI エンジンがサイトにアクセスして引用できるか、どの不足を補うと最もスコアが上がるかを確認します--brief、続いて--explainを実行します。気になる質問についてはレベル 2 を使用します
代理店とコンサルタント公開済みのバージョン管理された基準でクライアントが再確認できる診断結果を作成します。変更のたびに同じページを再採点します--json、--baseline last.json、diffを使用します。レポートに基準のバージョンを明記します
開発者と CIデプロイによってクローラーがブロックされたり、サーバーサイドレンダリングが失われたり、スコアが低下したりした場合に、ビルドを失敗させますGitHub Action、--fail-on-gate、--assert、SARIF、JUnitを使用します
研究者公開されたすべての数値を再計算し、重み付けを検証し、引用に照らして準備状況をテストしますrubric/v1.1.json、benchmark/、事前登録

geo-scoreは、エンジンがサイトを引用できるか、そして実際に引用するかを測定します。問題を修正することはなく、トラフィック、ランキング、収益を予測することもありません。


対象範囲とガバナンス

項目現状
修正ではなく測定公開知識に関する2つの例を除き、修正テンプレート、書き換え、エンジンごとの戦術はありません:対象範囲
基準の変更公開提案、コメント期間、独立したレビューを実施します。認証の販売はありません:基準のガバナンス
重み付け各チェックで、参照元と確認日を示し、重み付けの根拠を明記します:エビデンステーブル
プライバシーテレメトリーはありません。レベル 1 ではサイト、そのマークアップとrobots.txtが示すリンク先、WikidataおよびWikipediaの検索結果を取得します。レベル 2 と 3 では、キーを設定したプロバイダーのみを呼び出します
安定性レポートのスキーマ、チェック ID、CLI フラグ、終了コード、Action の入力、MCP ツールは公開契約です:安定性ポリシー
スコープ — これがしないこと

これはほとんどのツールが省いている部分なので、明確に記載します。

AIV Score は測定します。修正はしません。

含まれないもの理由
修正テンプレート — robots.txt、JSON-LD ブロック、llms.txt のひな形。公開ナレッジの例 2 件(検索クローラーを許可する robots.txt、Organization JSON-LD オブジェクト)を除きます実際の作業と判断が必要になるのは修正対応です。これは別個のオープンではないプロジェクトです
コンテンツの書き換え — 引用されるための文章の整え方同上
エンジンごとの戦術 — Perplexity と Gemini で異なる対応方法同上
修正対応のロードマップ同上

そのほか、率直にお伝えする制約:

  • 測定するのは入力側の準備状況であり、成果ではありません。 準備状況のスコアが高いということは、エンジンがあなたを引用できるという意味です。実際に引用するかどうかは、競合、クエリの意図、外部監査では確認できない要因に左右されます。引用のパフォーマンスは、スコアには含めず、別のブロックで報告します。100 点満点のスコアに組み込むことはありません。詳しくは2 つのスコアをご覧ください。上記のレベル 2 と 3 で測定してください。これをスコアに含めない理由の一つは、同じ質問を再び尋ねても、得られるソースの大部分が異なるためです。ある市場で 4 つのエンジンをまとめ、4 業界それぞれについて、24 時間以内に同じプロンプトを繰り返し実行した結果、何らかのソースを引用した実行におけるソースの平均重複率(Jaccard)は 0.32~0.43 でした。エンジンごとでは 0.23~0.51 でした(Schulte et al. 2026、§5、表 4 および 6)。また、同じデバイスと場所で実行した Google AI Overviews の 2 回の結果では 0.66 でした(Grossman et al., SIGIR 2026、§4.4、表 4)。
  • ブランドの信頼性と著者名の確認には、人による判断が必要です。 「これは実在し、特定できる人物か」「この言及は独立したものか」は、完全には自動化できません。この約 24 点は、自動判定ではなく支援付きのものとして扱ってください。
  • ティアによって意見の不一致は減りますが、なくなるわけではありません。 各ティアは、サンプルとなる 8 ページ中の件数を示すため、監査担当者 2 人が計算上の結果について一致できます。それでも、特定の段落が単独で答えとして成立するかどうかについては、意見が分かれることがあります。解消済みの曖昧さは、これまでに見つかったものです。今後もさらに見つかるでしょう。
  • クライアント側のレンダリングに大きく依存するサイトは、不当に低いスコアになることがあります。 コンテンツがハイドレーション後にしか表示されない場合、ほとんどのチェックはハイドレーション前の HTML を読み取ります。これはクローラーが見るものともおおむね同じなので、通常は低いスコアが妥当ですが、手作業で確認してください。
  • エンジンの動作は変化します。 まさにこの理由から、ルーブリックにはバージョンが付いています。古いルーブリックバージョンのスコアは、現在のスコアと比較できません。
なぜ単なるツールではなく、ルーブリックなのか

監査できないスコアは、誰かが作っただけの数字です。仕様そのものがプロダクトであり、ツールはその実装です。

  • バージョン管理。 すべてのスコアにルーブリックのバージョンが記載されます。71 (v1.1) は根拠のある主張ですが、71 だけではそうではありません。
  • 件数を伴うティア。 各ティアは「大半」ではなく、8 ページ中の件数を示します。
  • 証拠に基づく。 すべてのチェックに、ほかの人が再現できる観察結果が必要です。
  • 公開ベンチマークに照らして調整済みで、記録を公開しています。しきい値の確認に使った 4 つの外部ソースに加え、実際の監査で明らかになり、v1.1 で解消した仕様上の 8 つの曖昧さも掲載しています。
  • 機械可読。 安定したチェック ID を備えた rubric/v1.1.json と、異なる実装の結果を比較できる schema/report.v2.json を用意しています。

独自のスタックに実装する、重み付けに異議を唱える、ルーブリックの提案を作成するなど、ぜひご参加ください。これが、私たちが最も貢献をお願いしたいことです。提案が新しいバージョンになるまでの流れ、決定者、そして認証を販売せず、標準化団体の席にも費用を払わない理由については、ルーブリックのガバナンスをご覧ください。

重み付けの根拠

この重み付けには独自の判断が含まれていますが、根拠なく決めたものではありません。特に影響を与えた調査結果は次の2つです。

  • Aggarwal et al., GEO: Generative Engine Optimization, KDD 2024 — シミュレーションエンジンで、ソースを1つずつ書き換え、引用を加えたり、統計を追加したり、専門家の発言を引用したりすると、 回答に占めるそのソースの割合が**最大約40%**上昇しました(引用数ではなく、位置調整済み単語数による測定)。 また、この論文では、権威ある口調による有意な改善は見られませんでした。そのため、この評価基準では文体ではなく、構成と出典の明記を評価します。 ただし、こうした効果がそのまま他の状況にも当てはまるわけではありません。すべてのソースを同時に書き換えたところ、最初にランク付けされていたソースの可視性は20〜30%低下しました(§5.2、Table 2)。さらに、引用順位を測定する後続のベンチマークでは、公開済みの手法のほとんどで有意な改善が確認されませんでした (C-SEO Bench, arXiv 2506.11097 §6.2)。詳細はエビデンステーブルの p2.sourced-stats 行を参照してください (rubric/evidence-v1.1.md)。
  • llms.txt proposal, Answer.AI — Understandable の柱でこの評価基準が確認する慣例です(p1.llms-txt)。

各チェック項目には、その重み付けの根拠(公開済みの調査、ベンダー自身のドキュメント、現場での観察、またはエンジンによる確認実績のない慣例)が、参照元と最終確認日とともに記載されています:rubric/evidence-v1.1.md。 エビデンスが限られている項目(p2.answer-passages、p2.question-intent、p1.llms-txt)については、テーブルにその旨を記載しています。重み付けが誤っていることを示すエビデンスをお持ちの場合は、 評価基準の提案を送信してください — これが、皆さんからの貢献として最も期待していることです。

関連ツール

適切に選べるよう、このツールが対象としないものを明示しています。

プロジェクト機能関係
llms-txtllms.txt 仕様そのものAIV はこれへの準拠状況をチェックします
yao-geo-skillsカテゴリー別に整理された21のGEOスキル。実行に重点を置いています補完関係 — こちらは実運用向けで、このツールは測定向けです
GEOFlow企業サイト向けの包括的なGEO運用システム対象範囲ははるかに広く、AGPL です

スコアだけでなく改善策も必要な場合は、これらのプロジェクトが、このリポジトリで意図的に対象外としている領域と重なります。

安定性、プライバシー、セキュリティ

インストール方法はクイックスタートをご覧ください。

  • 安定性: ルーブリックとツールは別々にバージョン管理されており、レポートスキーマ、チェック ID、CLI フラグ、終了コード、Action の入力、MCP ツールは公開された契約です。各リリースで何が変更される可能性があるかについては、安定性ポリシーをご覧ください。
  • テレメトリーはありません。 geo-score は、私たちにも他の誰にも何も送信しません。レベル 1 では、指定したサイト(リダイレクト先を含む)、そのマークアップや robots.txt が示す URL(sameAs のプロフィール、ロゴ、サイトマップ)、および Wikidata と Wikipedia の検索結果を取得します。レベル 2 と 3 では、設定したキーに対応する AI プロバイダーだけを呼び出します。
  • セキュリティ: 監査対象サイトから引用したテキストは、すべてのレポートでデータとして区切られます。MCP サーバーの score_site はパブリックアドレスにのみ接続し、キーがファイルに保存されることはありません。脅威モデルと報告方法については、セキュリティポリシーをご覧ください。

スコアが 4 ポイント変わったのはなぜですか? 実行ごとに最大 8 ページをサンプリングするため、サンプルは変わります。1.8.0 で同じ日に再テストした場合、99% のサイトは ±5 の範囲内に収まりました(REPRODUCIBILITY.md)。変更前後を比較するには、同じページを --baseline last.json で再スコアリングしてください。チェックごとの変更点も表示されます(比較せずに再スコアリングするには --urls-from last.json を使用します)。 チェックに — と表示されるのはなぜですか? 測定されなかったため、スコア 0 として扱われるのではなく、分母から除外されました。その他の回答については、トラブルシューティングをご覧ください。README、レポート、ガイドで使われている用語はすべて用語集で定義されています。すべてのフラグ、終了コード、監視コマンドについては、CLI リファレンスをご覧ください(简体中文)。


開発者向け

リポジトリの構成
パス内容
cli/geo_score.py(レベル 1:単一ファイル、依存関係なし)、geo_watch.py(レベル 2 と 3)、それぞれのテスト、CLI リファレンス
rubric/ルーブリック(v1.1 とその JSON)、各重みの根拠、キャリブレーション、帯域分析、未解決の課題
benchmark/324 サイトのリーダーボード:結果、サイトごとの生レポート、事前登録、再現性と妥当性の記録
docs/リーダーボードの GitHub Pages 版、llms.txt、このページ上部のバッジ
guide/MCP のセットアップ、トラブルシューティング、用語集、監視方法、安定性ポリシー、公開されている 2 つの例、ChatGPT がサイトを読み取れるかどうかを確認する方法
reference/チェックの根拠となる背景情報:既知の AI クローラー、および各プラットフォームが情報を取得するソース
schema/レポート、差分、エラー、監視ファイル用の JSON Schema
examples/サンプルレポート、公開済みの手動監査、CI ワークフロー
action.yml、action/GitHub Action
SKILL.md、.claude-plugin/、gemini-extension.json、mcpb/、server.json、DockerfileClaude Code、Gemini CLI、MCP クライアント、MCP レジストリ、Docker 用のパッケージング。インストーラーがこれらをその場所で探すため、リポジトリのトップレベルに置かれています
scripts/リポジトリのチェック(scripts/check.sh ですべて実行できます)とリリーススクリプト
.github/コントリビューション、サポート、セキュリティ、行動規範、リリースプロセス、Issue フォーム、CI ワークフロー
AGENTS.mdコーディングエージェント向けのリポジトリ案内図(CLAUDE.md はこのファイルを参照します)
テストとゲート
bash scripts/check.sh           # the gate, offline: structure, lint, every test suite, the Action, packaging
bash scripts/check.sh --live    # before a release: also example.com and the MCP Inspector

scripts/check.sh が CI です。合格しない限り、マージされません。適用されるルールと、それぞれのチェックについては、AGENTS.md をご覧ください。このページに記載されている数値の一部もルールに含まれており、引用しているデータと一致しなくなると、ゲートが失敗します。

コントリビューション

最も価値のある貢献は、重み付けに関する根拠です。 コントリビューションガイドをご覧ください。誤ったスコア、異議のあるリーダーボードの行、動作しないツールなど、どの問題フォームを使うべきかについては、サポートをご覧ください。


ライセンス、引用、メンテナー

ライセンス

MIT

引用

研究やレポートで評価基準を参照する場合は、CITATION.cffをご覧ください。

メンテナーについて

深圳の Jianrun Tech(见润科技)が構築・メンテナンスしています。中国国内外の企業を対象に、GEO および AI 導入プログラムを実施しています。対象は、B2B 輸出業者、ソフトウェア企業、専門サービス企業、地元企業、教育事業者、海外展開する企業(越境 EC も含む)です。この評価基準は、クライアントの業務と自社製品の最適化から生まれました。公開することで、当社のクライアントにならない方々も含め、AI での可視性が一貫した基準で測定されることを目指しています。

MIT ライセンスのもと、このリポジトリの商用利用に制限はありません。有料のコンサルティング業務での利用も含まれます。当社の許可は不要で、別途商用ライセンスを取得する必要もありません。


ドキュメント

ドキュメント英語中国語
この READMEREADME.md简体中文
評価基準、v1.1rubric/v1.1.md简体中文
各重みの根拠rubric/evidence-v1.1.md简体中文
評価基準のガバナンスrubric/governance.md简体中文
CLI リファレンスcli/README.md简体中文
各クライアント向け MCP セットアップguide/mcp.md简体中文
トラブルシューティングguide/troubleshooting.md简体中文
用語集guide/glossary.md简体中文
ウォッチの方法guide/watch-methodology.md简体中文
変更履歴CHANGELOG.md简体中文

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。