测量了什么,什么时候测的?
测量对象是本站首页 /:next build 为它写出的那份 HTML,也就是爬虫实际收到的东西,再加上站点的 robots.txt、llms.txt 和 sitemap.xml。分析器就是公开的 /api/scan 端点运行的那一个;这一页没有任何一部分是手工打分的。 测量完成于 ,结果写入 lib/self-audit.json——这一页和首页读的是同一个文件。
一个 URL,不是一个站点。免费扫描只读取一个页面,所以这个数字描述的是首页,对首页链出去的页面——指南、规则参考、 研究——什么也没说。首页也是一个站点里最难拿高分的页面:它短、以导航为主,承载的证据比 一篇文章少。这正是应该把这个数字读成一次测量、而不是读成整站总结的理由。
测量结果是什么?
记录显示 100 / 100,等级 A(就绪度优秀:页面具备被引用所需的要素)。在适用的检查中,40 / 40 项通过,占适用集合的 100%;0 条规则被排除,0 项检查失败。逐字段如下:
| 字段 | 2026-11-09 的值 |
|---|---|
| 被测页面 | 位于 / 的首页,域名 llmention-geo.com(英文) |
| 测量日期 | |
| 分数 | 100 / 100 |
| 等级 | A——就绪度优秀:页面具备被引用所需的要素 |
| 执行的检查 | 40 |
| 通过的检查 | 40 / 40 项适用(40 / 40 项执行) |
| 不适用 | 0——无 |
| 失败 | 0——无 |
表格由记录生成,所以它不是第二份可能与第一份不一致的数字。记录本身以 lib/self-audit.json 的形式发布在仓库里,结构就是上面这样。
哪些规则被标为「不适用」?
本次测量没有不适用规则:目录里的每一条规则都能判断这一页,所以分母就是完整目录,没有任何规则被排除。
过去在这里被排除的规则是 hreflang:它现在通过了,因为首页和定价页已经以英文之外的 5 种语言发布,并声明了完整的语言矩阵。改了什么、 什么时候改的,都在 方法变更记录里。
哪些检查失败了?
在 2026-11-09 的这次测量中没有失败项:记录里的失败列表为空,所以 40 项适用检查中有 0 项失败。这里保留这个空列表,而不是把整节删掉,因为一份会删掉空章节的报告,和一份从来没有这些章节的报告无法区分。
失败是关于页面在被测量那一刻的判断,不是永久结论。实时报告(英文)显示某项检查现在是否仍然失败,并附上分析器看到的证据;这一页保留带日期的 记录,因为一条没有日期的失败判断只是记忆,不是测量。
已经有实时报告了,为什么还要有这个页面?
首页把自己的分数当作证据展示,并把细节链接到实时报告——而对爬虫来说,那个链接是 死路。位于 /report/ 的报告是工具,不是文档。它针对传入的任意 ?domain= 现场生成结果,包含 12 个维度的 分数和每项检查背后的证据。这恰恰是它不能成为索引中证据的原因:它的输出是用户 特定的,URL 空间没有边界,而且它被刻意排除在爬虫使用的两个系统之外。该路由自己 的布局把它标为 noindex,public/robots.txt 又禁止了 /report/——而被禁止抓取的 URL 永远不会被请求,所以连 noindex 标签都不会被读到。API 也是一样:/api/ 同样被禁止。
这就是这一页存在的原因。它是同一次测量的稳定、可索引陈述:一个 URL,日期,结果, 排除项,失败项,方法,以及边界。它不复现报告——报告展示今天的证据,这一页发布一次 测量的记录——但爬虫,以及不想运行工具的读者,现在不用信任一个自己无权打开的页面, 就能看到首页提出的主张。
这个数字是怎么产生的?
一步一步,全部在仓库里,而不是在表格里:
- 构建写出首页。
next build把本站渲染成静态 HTML;首页是.next/server/app/index.html那个文件。 - 记录是测量出来的,不是敲进去的。
scripts/self-audit.mts(npm run self-audit)读取 那份 HTML 以及站点的robots.txt、llms.txt和sitemap.xml,运行公开端点所用的同一个analyze(),然后写出lib/self-audit.json。 - 一道门禁让页面和记录保持同步。
scripts/check-built-pages.mts(npm run check:built)会给构建出的首页打分,当分数、等级、检查计数或 id 列表与记录不一致时构建 失败。测量日期刻意不比较:它记录的是测量的时间,不是页面的属性。因此,一次改变 分数的页面编辑会让构建失败,直到记录被重新测量。 - 一个定时工作流负责刷新。
.github/workflows/self-audit.yml每周重新构建、重新测量,并且 只在记录发生变化时提交它;一次失败的测量会保留上一份好记录,而不是发布一个从 坏页面得来的数字。部署再从包含刷新记录的提交重新触发,所以这里打印的日期是最后 一次测量的日期,而不是最后一次编辑的日期。
首页通过 lib/home-content.ts 导入同一份记录,所以两个页面不可能 引用不同的数字;位于 /markdown/(英文)的机器可读版本读的也是同一批值。
我怎么重新跑一次测量?
你不需要相信这个数字。下面两种方式都会在你提问的那一刻重新测量页面,而且都免费:
- 在浏览器里: /zh/report/?domain=llmention-geo.com(英文)显示 12 个维度的分数和每项检查背后的证据。
- 作为 JSON: 公开端点返回头部数字——分数、等级、执行与通过的检查数、页面类型,以及有多少项 检查不适用——省略
brief=1时还会附上完整的维度与问题列表。它不需要 密钥,也不需要任何浏览器替它干活。
curl "https://llmention-geo.com/api/scan?brief=1&domain=llmention-geo.com"
重跑是一次新的测量,不是查这份记录。自 2026-11-09 以来,页面、它的 robots.txt 和规则都可能已经变了,所以一个不同的数字会是一个发现, 而不是矛盾——这也是日期要印在分数旁边的理由。端点按地址限流,brief 形式的存在,是为了让覆盖大量域名的研究不必从每个域名拉取完整报告;针对大量首页的公开研究就是这种用法的例子。
满分到底意味着什么?
100 / 100 不是通过检查的比例。每项检查在所属维度内值固定 分数,一个维度的得分是它自己那部分分数的获得比例,12 个维度再按权重合并——仅 AI 爬虫访问一个维度就占总分的 16%。 结果是「这一页实际可评估部分」的百分比,这就是上面分母是 40 而不是 40 的原因。
等级 A 从量表的 90% 开始,这份记录越过 了它。但满分只说明一件事:适用于这一页的规则没有一项失败。它不说明目录里的每条 规则都通过了——有 0 条规则被排除——也不是在声称方法已经完成。 它只是说:这一页,在这版规则下,在这个日期,没有分析器能看到的适用缺口。这比 「分数达到了最大值」更窄,也更有用。
这个数字不能告诉你什么?
边界是测量的一部分,不是它的脚注。
- 它只读一个首页。 一个内页可能在首页通过的检查上失败,而这个数字不会动。指南、规则页和研究都在 这个数字之外。
- 它不会向任何 AI 引擎询问这个站点。 这里没有任何东西测量 ChatGPT、Claude、Perplexity 或 Google 的 AI 界面是否 提到 LLMention,或是否引用这些页面。它测量的是就绪度——页面是否处于「有可能被 引用」的状态。提及追踪是另一种测量,数据源也不同,写在与提及追踪的对比里。
- 它是一个快照。 标记、robots.txt 规则和内容都会变;记录因此带日期,而每周工作流的存在,是因为 一份没人刷新的测量会变成关于测量的记忆。
- 方法会动。 发现测量错误时规则会改,每一次可能移动分数的改动都连同日期记录在方法变更记录里。一个分数只有在与同一版规则下产生的另一个分数比较时才有意义。
- 它是自我测量。 规则和页面由同一个团队撰写,这是数字本身无法解决的冲突。回答它的不是更强的主张, 而是公开的方法、记录文件、构建门禁和公开端点——读者可以逐项对照这一页检查。 如果这里的数字看起来不对,那是一个缺陷报告,不是辩论题:联系页面(英文)是提交它的地方,关于页面(英文)说明谁对这份记录负责。