jianruntech/geo-score
Can AI engines cite your site, and do they? Free 0–100 readiness score on an open GEO rubric, plus ask and weekly citation tracking via OpenAI, Perplexity, Gemini, Anthropic and OpenRouter with your own keys. Zero dependencies; CLI, GitHub Action and MCP server.
Geo‑Score – サイトのAI引用対応度を監査する
このプロジェクトの目的
geo‑score は、軽量でPython 3.8+のみを使用するコマンドラインツールであり、大規模言語モデルの回答エンジン(‑‑ ChatGPT / Perplexity / Gemini / Claude / OpenRouter)が、特定のウェブサイトのコンテンツをどの程度容易に発見・解析・引用できるかを評価します。このツールは、オープンでバージョン管理されたルーブリック(21項目のチェック、100点+ボーナス)を実装しており、以下を測定します:
- 到達可能性 – クローラーがページを取得できるか(robots.txt、サーバーサイドレンダリングHTML、AIユーザーエージェント)
- 理解可能性 – サイトが構造化データ(JSON‑LD、
llms.txt、schema.org、サイトマップ、パンくずリスト)を公開しているか - コンテンツの引用可能性 – 自己完結型の回答パッセージ、関連する見出し、新鮮なデータ、出典付き統計、検証可能な著者が存在するか
- ブランドの信頼性 – ナレッジグラフエンティティ、第三者リスト、
sameAsリンク、動画/マルチモーダルアセット - 回答適合性 – コンテンツがLLMによる抽出に適した形になっているか
このツールは0〜100のスコア(レベル1)を返し、オプションで以下を提供します:
- 質問 – 選択したAIプロバイダーに単一の質問を送信し(レベル2)、生成された回答でサイトが実際に引用されているかを確認します。
- 監視 – 毎週の質問セットを監視し、実行結果を保存して差分レポートを生成します(レベル3)。縦断的モニタリング用です。
すべてのチェックは決定的で、公開URLに対して実行され、ルーブリックのバージョンはレポートに組み込まれます。
仕組み(概要)
- 取得 – Python標準ライブラリのみを使用して、対象URL(またはページのサンプル)を取得します。
- 検査 – robots.txt、HTTPヘッダー、HTMLソース、JSON‑LDブロックを検査します。
- 適用 – ルーブリックを適用します:各チェックには段階的なしきい値があります(例:「サンプリングした5ページのうち3ページにサイトマップがある」)。
- スコアリング – 各ピラーをスコアリングし、合計を算出して、合計をバンド(未開始→リーディング)にマッピングします。
- (レベル2/3)呼び出し – ユーザー提供のキーを使用して外部LLM APIを呼び出し、提供された質問を送信し、回答内の引用を解析します。
- レポート – 人間が読めるテーブル、JSONスキーマ、または埋め込み可能なSVGバッジを生成します。
CLIは単一のスクリプト(cli/geo_score.py)で、サードパーティ依存関係はありません。オプションの監視機能はcli/geo_watch.pyにあります。MCP互換サーバー(geo-score-mcp)は同じロジックをラップし、IDE統合エージェント(Claude、Cursor、VS Code、LM Studioなど)向けです。
誰が使うか
| 対象 | 重要性 |
|---|---|
| ウェブサイト所有者 / プロダクトチーム | コンテンツがAI回答エンジンに引用されるかどうか、またどの技術的修正(robots.txt、スキーマ、新鮮な見出し)がスコアを上げるかを把握できます。 |
| SEO / コンテンツ戦略担当者 | ランキングではなく引用に焦点を当てることで従来のSEOを補完し、「AI対応」の改善を優先順位付けするのに役立ちます。 |
| LLM搭載検索プラットフォーム | ソースの検索・引用への適合性を再現可能に監査でき、ソースランキングアルゴリズムに役立ちます。 |
| AIエージェント開発者 | MCPサーバーにより、エージェントがスコアの要求、質問、毎週の監視をプログラム的に実行できます。 |
強みと制限
強み
- ゼロインストールのコア – 単一のPythonファイルがPython 3.8+の任意のシステムで動作します。
- 透明なルーブリック – 完全にバージョン管理され、公開されており、各チェックの経験的根拠を説明する証拠テーブルがあります。
- オープンソースで再現可能 – 公開リーダーボードを生成したのと同じコマンドをローカルで実行でき、結果は安定しています(実行間で約96%が±5ポイント以内)。
- MCPによる拡張性 – エージェントが3つのレベルをプログラム的に呼び出せ、セキュリティ重視の環境では読み取り専用モードを尊重します。
制限
- ヒューリスティックな言語処理 – 非英語ページ(特に中国語)はより保守的にスコアリングされ、人間の監査者が見つける引用を見逃す可能性があります。
- 引用チェックは間接的 – レベル2はエンジンごとに単一の質問のみを送信し、すべての可能なクエリのカバレッジを保証するものではありません。
- 公開APIに依存 – レベル2/3は有効なAPIキーが必要でコストがかかります。ツール自体は無料の引用サービスを提供しません。
- ウェブコンテンツに焦点 – 公開クローラーが取得できる範囲を超えた他のメディア(PDF、認証付きPDF、プライベートドキュメント)は評価しません。
クイックスタート例
# レベル1 – 無料スコア(キー不要)
curl -sL https://raw.githubusercontent.com/jianruntech/geo-score/v1.8.0/cli/geo_score.py \
| python3 - stripe.com --brief
# → "72 / 100 Solid"
# レベル2 – 質問を送信(例:OpenAIキーが必要)
export OPENAI_API_KEY=sk-…
python3 cli/geo_score.py stripe.com \
--ask "best payments API for marketplaces"
# レベル3 – 毎週の監視を開始(質問リストを含む設定ファイルが必要)
python3 cli/geo_watch.py run --dry_run # コストをかけずに予定API呼び出しを表示
詳細情報
- ルーブリック –
rubric/v1.1.md(完全な仕様)およびrubric/evidence-v1.1.md(経験的裏付け)。 - リーダーボード – 324サイトのライブスコア:https://www.jianruntech.com/leaderboard。
- インストール –
uvx geo-score@1.8.0、pipx install geo-score==1.8.0、またはワンライナーcurl | python3。 - MCP統合 –
guide/mcp.mdおよびREADMEの自動生成ツールテーブルを参照。 - 貢献 – PR歓迎。リポジトリにはベンチマーク、再現性ドキュメント、テストスイートが含まれています。
Geo‑Score は、ウェブサイトが生成AI回答エンジンに引用される準備ができているかを測定するための本格的なオープンソースユーティリティであり、従来のSEOと新興分野であるジェネレーティブエンジン最適化(GEO)の間のギャップを埋めます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト