AB
AiBoss
project

geo-score - 用 0–100 分评估网站能否被 AI 引擎引用的开源检查工具

geo-score 是 jianruntech 维护的 MIT 许可开源项目,用一套公开、带版本的评分规则,检查网站能否被 ChatGPT、Perplexity、Google AI Overviews 等生成式引擎抓取、解析、信任并引用。项目自述其第一层评分无需 API key、无需安装,Python 3.8+ 标准库即可运行,约二十秒输出 0–100 分与逐项证据。

geo-score 是一个用来回答一个具体问题的开源工具:AI 引擎能不能引用你的网站?它把这个问题拆成一套可复算的检查项,对给定网址输出 0–100 的分数,并逐项列出证据与差距。据项目自述,这里的 GEO 指 Generative Engine Optimization(生成式引擎优化),即争取被 ChatGPT、Perplexity、Google AI Overviews、Gemini、Copilot 等答案引擎引用,与地理、地图无关。它适合两类人:一是负责站点技术细节与内容结构的开发者、SEO/GEO 从业者,想快速知道自己的页面在「被引用」这件事上缺什么;二是需要把结论讲清楚、能拿出可复现依据的团队。项目自述强调,决定能否被引用的多数因素是机械且修复成本很低的——一行 robots.txt、一个 JSON-LD 块、模板里的一个日期、一段能独立成立的段落——难的是知道缺了哪一项、每项值多少分。

维护者与状态

项目由 jianruntech 维护,仓库创建于 2026-09-08,最后提交时间为 2026-09-27。最新 release 为 v1.3.0,发布于 2026-09-27。截至 2026-09-27,仓库星标数为 540。项目另有官网页面,地址见下方「使用入口」。

主要能力

以下能力均来自项目自述(README 与官网说明),未做独立验证。

三层用法,一个工具

据项目说明,geo-score 按三个层级组织功能,层级越高需要的条件越多:

  • Level 1 · Score(评分):回答「AI 引擎能否到达、解析、信任并引用这个站点」,按公开规则给出 0–100 分。项目自述这一层不需要 API key、不需要安装。
  • Level 2 · Ask(提问):针对某个你关心的问题,检查此刻引擎是否引用了该站点。需要 OpenAI、Perplexity、Gemini、Anthropic、OpenRouter 中任意一家的 API key,由使用者自带。
  • Level 3 · Watch(观察):用固定的问题清单,按周观察被引用频率,以及对手与来源的变化。需要使用者自己的 API key 与固定问题列表。

项目自述特别说明:Level 2 与 Level 3 衡量的是「结果」,而评分规则刻意不把结果计入分数,因此两者是并列展示、绝不相加的两个数字。一个站点可能拿到 90 分却在每个回答里输给第三方覆盖更多的对手,反过来也可能发生,所以两个数字都需要看。此外,Level 2 与 Level 3 需要 cli/geo_watch.py 与 cli/geo_score.py 放在一起,即克隆仓库或同时下载两个文件;README 中给出的单行 curl | python3 命令只运行 Level 1。

检查项与评分规则

据项目说明,评分规则包含 21 个分档检查项,合计 100 分,另有 4 个加分项,最多 +6 分且不计入分母。检查项按五个支柱组织:

  • Reachable(可达性,15 分):检索爬虫能否拿到页面,涉及 robots.txt、跨 10 个 AI user-agent 的实时可达性、内容是否服务端渲染。
  • Understandable(可理解性,22 分):能否判断页面与公司是什么,涉及 Organization 与 WebSite 结构化数据、llms.txt、sitemap、面包屑、页面类型 schema。
  • Content Citability(内容可引用性,35 分):是否有值得引用的内容,涉及能独立成立的答案段落、与人们提问方式匹配的标题、带来源的统计数字、真实署名、时效信号。
  • Brand Credibility(品牌可信度,18 分):引擎为何要信任它,涉及知识图谱实体、第三方收录、可解析的 sameAs、视频存在情况。
  • Answer Fit(答案契合度,10 分):内容是否被组织成便于摘取进答案的形态。

项目自述称,Content Citability 权重最高是刻意的,因为答案引擎检索的是「段落」而不是「域名」。每个计分检查项都分 2 到 4 档,每档对应 8 个抽样页面中的命中数量,以便两个人给同一站点打分时算法一致。其中三项是「闸门」:爬虫访问、实时可达性、服务端渲染三项中任何一项为零分,总分上限被压到 40,因为爬虫拿不到内容时,其他改动都没有意义。分数区间被命名为 Not started(0–30)、Early(31–50)、Growing(51–65)、Solid(66–82)、Leading(83–100);项目自述强调这些名称描述的是阶段而非结论,并称外部基准显示多数商业站点落在 30–55 区间,四十多分属于常见而非警报。

公开基准与可复现性

据项目说明,仓库中包含一次对 314 个知名站点的公开评分:其中四分之一对 AI 爬虫不可读,80 个站点有闸门检查为零,19 个在 robots.txt 中按名称屏蔽 AI 爬虫(项目将其作为编辑选择如实报告),45 个站点的页面正文只在 JavaScript 运行后才存在,另有 16 个直接向爬虫返回错误。项目自述该样本中位数为 56,范围 12 到 98。项目还称,面向中国市场的站点比其他站点低 19 分,且这一差距在五次独立抽样中保持在 16 到 23 分之间。关于稳定性,项目自述把整个基准跑两遍逐站对比,96% 的站点落在 ±5 分以内,45% 完全一致,因此建议把单站分数读作 ±5 而非精确值,中位数则相对稳定;不稳定主要出现在闸门检查上。项目同时说明,官网托管页面目前展示的是较早的 229 站点版本,314 站点的数据在仓库的 benchmark/results.json 中。

使用入口

仓库地址:https://github.com/jianruntech/geo-score;官网页面:https://jianruntech.github.io/geo-score/。

据项目说明,Level 1 可以用一行命令运行,无需安装,Python 3.8+ 且只用标准库:

curl -sL https://raw.githubusercontent.com/jianruntech/geo-score/v1.3.0/cli/geo_score.py | python3 - stripe.com --brief

项目自述该命令约二十秒完成,输出分数、每一项检查及其证据,以及距离下一档还差什么。Level 2 的调用方式为在命令后追加 --ask 与具体问题,例如 geo_score.py stripe.com --ask "best payments API for marketplaces";Level 3 使用 geo_score.py watch run,两者都需要使用者自备 API key,并把 cli/geo_watch.py 与 cli/geo_score.py 放在一起。

许可与限制

项目许可证为 MIT。据项目说明,已知限制与适用边界包括:Level 1 只读取公开 URL,不涉及登录态内容;Level 2 与 Level 3 依赖使用者自备的第三方 API key,项目本身不提供 key;Level 2、Level 3 需要额外下载 cli/geo_watch.py,单行 curl 命令不覆盖这两层;评分存在约 ±5 分的波动,闸门检查尤其容易因站点的机器人防护策略而出现跨次运行不一致;官网托管页面展示的基准版本落后于仓库中的数据。项目自述还提到,评分规则中有一部分检查需要人工判断,包括第三方收录、独立提及、问题覆盖与中文引擎就绪度等项。