geo-audit · openstatus.dev 2026-09-12 11:59 UTC 0.1.0 UA: geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com) 去噪清单: denoise/2026-09-07.1 schema geo-audit/report/1

判决

这次扫描不可信:31 个核心位置里有 24 个我们没能评估。下面的结论不要当结论用。

54 个位置 6 通过 1 读错 24 无法判断 23 不适用

四格之和恒等于位置数。「无法判断」永不折算进「通过」——「我们看不了」和「你这里没问题」是两件事。

这次没有可上报的发现。零发现不等于干净,所以这份东西叫「AI 可读性证据存档」:下面四块是这个 0 的全部依据,你可以逐行复现。

按根因

本次没有需要归并的根因。

口径:0 条 finding / 0 处根因 / 0 个链接实例 —— 三个数各有各的意思,不许混着说。

未能评估

把「我们没看到」误读成「没问题」的代价,比漏一条 LOW 死链大得多,所以这一区排在发现之前。这些位置既不计死链也不计存活。

① 入口发现 原因码: robots_disallowed discovery:developers.openstatus.dev
位置
https://developers.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 原因码: robots_disallowed discovery:developer.openstatus.dev
位置
https://developer.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 原因码: robots_disallowed discovery:doc.openstatus.dev
位置
https://doc.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 原因码: robots_disallowed discovery:apidoc.openstatus.dev
位置
https://apidoc.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 原因码: robots_disallowed discovery:api-docs.openstatus.dev
位置
https://api-docs.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 原因码: robots_disallowed discovery:apidocs.openstatus.dev
位置
https://apidocs.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 原因码: robots_disallowed discovery:reference.openstatus.dev
位置
https://reference.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 原因码: robots_disallowed discovery:help.openstatus.dev
位置
https://help.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 原因码: robots_disallowed discovery:supportcenter.openstatus.dev
位置
https://supportcenter.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 原因码: robots_disallowed discovery:kb.openstatus.dev
位置
https://kb.openstatus.dev/
实际是
robots.txt 禁止抓取 /,本位置未评估
补救办法
你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
② 索引文件真伪 原因码: accept_negotiated index_file:openstatus.dev/llms.txt
位置
https://openstatus.dev/llms.txt
实际是
这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 483 字节;第二把尺子 Accept: */* -> 200 text/plain 52,530 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
补救办法
这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。
③ 全文通道 原因码: accept_negotiated fulltext:openstatus.dev/llms-full.txt
位置
https://openstatus.dev/llms-full.txt
实际是
这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 488 字节;第二把尺子 Accept: */* -> 200 text/plain 83,471 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://openstatus.dev/llms-full.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
补救办法
这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。
② 索引文件真伪 原因码: accept_negotiated index_file:www.openstatus.dev/llms.txt
位置
https://www.openstatus.dev/llms.txt
实际是
这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 483 字节;第二把尺子 Accept: */* -> 200 text/plain 52,530 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://www.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
补救办法
这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。
③ 全文通道 原因码: accept_negotiated fulltext:www.openstatus.dev/llms-full.txt
位置
https://www.openstatus.dev/llms-full.txt
实际是
这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 488 字节;第二把尺子 Accept: */* -> 200 text/plain 83,471 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://www.openstatus.dev/llms-full.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
补救办法
这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。
② 索引文件真伪 原因码: accept_negotiated index_file:dev.openstatus.dev/llms.txt
位置
https://dev.openstatus.dev/llms.txt
实际是
这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 913 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://dev.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
补救办法
这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。
② 索引文件真伪 原因码: accept_negotiated index_file:platform.openstatus.dev/llms.txt
位置
https://platform.openstatus.dev/llms.txt
实际是
这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 1,063 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://platform.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
补救办法
这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。
② 索引文件真伪 原因码: accept_negotiated index_file:support.openstatus.dev/llms.txt
位置
https://support.openstatus.dev/llms.txt
实际是
这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 940 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://support.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
补救办法
这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。
② 索引文件真伪 原因码: accept_negotiated index_file:learn.openstatus.dev/llms.txt
位置
https://learn.openstatus.dev/llms.txt
实际是
这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 920 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://learn.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
补救办法
这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。
⑤ .md 通道 原因码: not_fetched md_channel:md
位置
https://openstatus.dev/
实际是
待判定
补救办法
超出本次预算上限(--max-requests / --max-links),本位置未验证。用 --max-requests 0 取消上限重跑可以覆盖它。
⑥ 可点击路径 原因码: not_fetched human_path:https://www.openstatus.dev/
位置
https://www.openstatus.dev/
实际是
待抓取
补救办法
超出本次预算上限(--max-requests / --max-links),本位置未验证。用 --max-requests 0 取消上限重跑可以覆盖它。
⑥ 可点击路径 原因码: not_fetched human_path:https://www.openstatus.dev/pricing
位置
https://www.openstatus.dev/pricing
实际是
待抓取
补救办法
超出本次预算上限(--max-requests / --max-links),本位置未验证。用 --max-requests 0 取消上限重跑可以覆盖它。
⑥ 可点击路径 原因码: not_fetched human_path:https://www.openstatus.dev/changelog
位置
https://www.openstatus.dev/changelog
实际是
待抓取
补救办法
超出本次预算上限(--max-requests / --max-links),本位置未验证。用 --max-requests 0 取消上限重跑可以覆盖它。
⑥ 可点击路径 原因码: not_fetched human_path:https://dev.openstatus.dev/
位置
https://dev.openstatus.dev/
实际是
待抓取
补救办法
超出本次预算上限(--max-requests / --max-links),本位置未验证。用 --max-requests 0 取消上限重跑可以覆盖它。
⑥ 可点击路径 原因码: not_fetched human_path:https://support.openstatus.dev/
位置
https://support.openstatus.dev/
实际是
待抓取
补救办法
超出本次预算上限(--max-requests / --max-links),本位置未验证。用 --max-requests 0 取消上限重跑可以覆盖它。

AI 检索链路六段

① 入口发现18 个位置✓ 6 通过 · ✕ 1 读错 · ? 10 无法…?② 索引文件真伪18 个位置? 6 无法判断 · – 12 不适用?③ 全文通道12 个位置? 2 无法判断 · – 10 不适用④ 索引内链存活0 个位置未探测?⑤ .md 通道1 个位置待判定?⑥ 可点击路径5 个位置? 5 无法判断

这条链路上任何一段断掉,后面几段的内容 AI 都拿不到。

差异化演示

只探根路径、不做对照探测的实现,在这个站上没读错。差异化演示区因此是空的 —— 这是这个域的性质,不是我们少做了对照。

这一块的作用不是炫技,是让「我拿别的东西查过,没这条」这句话失效:我们先说出那类实现在这里会得出什么、以及它少做了哪一步。

自己复现 → geo-audit openstatus.dev --contact you@you.co --naive-only

这份报告不检查:锚点是否腐烂、sitemap、robots 对 AI 爬虫的放行、图片/CSS 资源、事实是否冲突、内容是否过期。理由见文末。

发现(按根因分组)

本次没有可上报的发现。这不代表你的站没有可改的地方 ——见下面的「证据存档」与「下次会先坏在哪」。

待人工确认

下面这些我们判它死了,但静态 HTML 判不了它是否对访客可见。我们打 needs_review 而不是丢弃,也不进首页分子。

本次没有需要人工确认的条目。

下次会先坏在哪 · 结构性脆弱点

每条都挂一个实测先例,并给一条能直接放进 CI 的命令。这一区不是预测,是「这个形状在语料里已经坏过」。

INFO F6
WAF 会把真文件挡成 403/429
判据
本次全部 host 的对照探测都可用(0 个被挡)
为什么危险
被拦截 ≠ 不存在。纯 HTTP 客户端在这类 host 上会把真文件读成「没有」。
实测先例
gusto.com 403、www.pipedrive.com 429
放进 CI 的一条命令
geo-audit openstatus.dev --contact you@yourco.com --format json
INFO F8
该 host 对未知路径不返回 404
判据
本次全部 host 对随机路径都返回了非 2xx(状态码可判别)
为什么危险
这种 host 上任何只看状态码的工具都会报 0 死链,那个 0 是假的。
实测先例
developers.pipedrive.com(200 + 24,907 B 兜底页)、docs.gusto.com(302→/)、docs.moderntreasury.com(302→/)、www.minimax.io(200 + 384,052 B)、platform.kimi.ai(200 + 414,072 B)
放进 CI 的一条命令
geo-audit openstatus.dev --contact you@yourco.com --format json

我们替你验了什么 · 证据存档

逐位置一行,行数恒等于位置数。每行都带一条可粘贴的 curl。

共 54 行 == 54 个位置。

URL状态码content-type字节对照路径对照返回结论
① 入口发现 https://openstatus.dev/ 通过 对照探测 https://openstatus.dev/geo-audit-probe-b776c9b0705bdf0464b37636 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容
① 入口发现 https://www.openstatus.dev/ 通过 对照探测 https://www.openstatus.dev/geo-audit-probe-4efedfc192553e6554f91b6e 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容
① 入口发现 https://docs.openstatus.dev/ 读错 请求 /,最终落在通用落地页 /docs(链路:308 https://www.openstatus.dev/docs/ -> 308 https://www.openstatus.dev/docs);跳转到通用落地页等同于「这个路径不存在」
① 入口发现 https://developers.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
① 入口发现 https://developer.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
① 入口发现 https://dev.openstatus.dev/ 通过 对照探测 https://dev.openstatus.dev/geo-audit-probe-c20e9391250d7e9b831758e7 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容
① 入口发现 https://doc.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
① 入口发现 https://apidoc.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
① 入口发现 https://api-docs.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
① 入口发现 https://apidocs.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
① 入口发现 https://api.openstatus.dev/ 不适用 HTTP 404(状态码正确,正文形态不参与判定)
① 入口发现 https://reference.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
① 入口发现 https://platform.openstatus.dev/ 通过 对照探测 https://platform.openstatus.dev/geo-audit-probe-fc0f76c6678838899586acc0 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容
① 入口发现 https://support.openstatus.dev/ 通过 对照探测 https://support.openstatus.dev/geo-audit-probe-20129ca85a96853fa22da830 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容
① 入口发现 https://help.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
① 入口发现 https://supportcenter.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
① 入口发现 https://learn.openstatus.dev/ 通过 对照探测 https://learn.openstatus.dev/geo-audit-probe-d4a4f1b1797bce9d3d83b0dc 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容
① 入口发现 https://kb.openstatus.dev/ 无法判断 robots.txt 禁止抓取 /,本位置未评估
② 索引文件真伪 https://openstatus.dev/llms.txt 404 text/markdown 483 https://openstatus.dev/geo-audit-probe-b776c9b0705bdf0464b37636 404 无法判断 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 483 字节;第二把尺子 Accept: */* -> 200 text/plain 52,530 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://openstatus.dev/llms.txt'
③ 全文通道 https://openstatus.dev/llms-full.txt 404 text/markdown 488 https://openstatus.dev/geo-audit-probe-b776c9b0705bdf0464b37636 404 无法判断 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 488 字节;第二把尺子 Accept: */* -> 200 text/plain 83,471 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://openstatus.dev/llms-full.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://openstatus.dev/llms-full.txt'
② 索引文件真伪 https://www.openstatus.dev/llms.txt 404 text/markdown 483 https://www.openstatus.dev/geo-audit-probe-4efedfc192553e6554f91b6e 404 无法判断 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 483 字节;第二把尺子 Accept: */* -> 200 text/plain 52,530 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://www.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://www.openstatus.dev/llms.txt'
③ 全文通道 https://www.openstatus.dev/llms-full.txt 404 text/markdown 488 https://www.openstatus.dev/geo-audit-probe-4efedfc192553e6554f91b6e 404 无法判断 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 488 字节;第二把尺子 Accept: */* -> 200 text/plain 83,471 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://www.openstatus.dev/llms-full.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://www.openstatus.dev/llms-full.txt'
② 索引文件真伪 https://dev.openstatus.dev/llms.txt 404 text/plain 9 https://dev.openstatus.dev/geo-audit-probe-c20e9391250d7e9b831758e7 404 无法判断 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 913 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://dev.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://dev.openstatus.dev/llms.txt'
③ 全文通道 https://dev.openstatus.dev/llms-full.txt 404 text/plain 9 https://dev.openstatus.dev/geo-audit-probe-c20e9391250d7e9b831758e7 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://dev.openstatus.dev/llms-full.txt'
② 索引文件真伪 https://platform.openstatus.dev/llms.txt 404 text/plain 9 https://platform.openstatus.dev/geo-audit-probe-fc0f76c6678838899586acc0 404 无法判断 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 1,063 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://platform.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://platform.openstatus.dev/llms.txt'
③ 全文通道 https://platform.openstatus.dev/llms-full.txt 404 text/plain 9 https://platform.openstatus.dev/geo-audit-probe-fc0f76c6678838899586acc0 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://platform.openstatus.dev/llms-full.txt'
② 索引文件真伪 https://support.openstatus.dev/llms.txt 404 text/plain 9 https://support.openstatus.dev/geo-audit-probe-20129ca85a96853fa22da830 404 无法判断 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 940 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://support.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://support.openstatus.dev/llms.txt'
③ 全文通道 https://support.openstatus.dev/llms-full.txt 404 text/plain 9 https://support.openstatus.dev/geo-audit-probe-20129ca85a96853fa22da830 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://support.openstatus.dev/llms-full.txt'
② 索引文件真伪 https://learn.openstatus.dev/llms.txt 404 text/plain 9 https://learn.openstatus.dev/geo-audit-probe-d4a4f1b1797bce9d3d83b0dc 404 无法判断 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 920 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://learn.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定))
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://learn.openstatus.dev/llms.txt'
③ 全文通道 https://learn.openstatus.dev/llms-full.txt 404 text/plain 9 https://learn.openstatus.dev/geo-audit-probe-d4a4f1b1797bce9d3d83b0dc 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://learn.openstatus.dev/llms-full.txt'
② 索引文件真伪 https://openstatus.dev/docs/llms.txt 404 text/markdown 488 https://openstatus.dev/geo-audit-probe-b776c9b0705bdf0464b37636 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://openstatus.dev/docs/llms.txt'
③ 全文通道 https://openstatus.dev/docs/llms-full.txt 404 text/markdown 493 https://openstatus.dev/geo-audit-probe-b776c9b0705bdf0464b37636 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://openstatus.dev/docs/llms-full.txt'
② 索引文件真伪 https://www.openstatus.dev/docs/llms.txt 404 text/markdown 488 https://www.openstatus.dev/geo-audit-probe-4efedfc192553e6554f91b6e 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://www.openstatus.dev/docs/llms.txt'
③ 全文通道 https://www.openstatus.dev/docs/llms-full.txt 404 text/markdown 493 https://www.openstatus.dev/geo-audit-probe-4efedfc192553e6554f91b6e 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://www.openstatus.dev/docs/llms-full.txt'
② 索引文件真伪 https://dev.openstatus.dev/docs/llms.txt 404 text/plain 9 https://dev.openstatus.dev/geo-audit-probe-c20e9391250d7e9b831758e7 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://dev.openstatus.dev/docs/llms.txt'
③ 全文通道 https://dev.openstatus.dev/docs/llms-full.txt 404 text/plain 9 https://dev.openstatus.dev/geo-audit-probe-c20e9391250d7e9b831758e7 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://dev.openstatus.dev/docs/llms-full.txt'
② 索引文件真伪 https://platform.openstatus.dev/docs/llms.txt 404 text/plain 9 https://platform.openstatus.dev/geo-audit-probe-fc0f76c6678838899586acc0 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://platform.openstatus.dev/docs/llms.txt'
③ 全文通道 https://platform.openstatus.dev/docs/llms-full.txt 404 text/plain 9 https://platform.openstatus.dev/geo-audit-probe-fc0f76c6678838899586acc0 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://platform.openstatus.dev/docs/llms-full.txt'
② 索引文件真伪 https://support.openstatus.dev/docs/llms.txt 404 text/plain 9 https://support.openstatus.dev/geo-audit-probe-20129ca85a96853fa22da830 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://support.openstatus.dev/docs/llms.txt'
③ 全文通道 https://support.openstatus.dev/docs/llms-full.txt 404 text/plain 9 https://support.openstatus.dev/geo-audit-probe-20129ca85a96853fa22da830 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://support.openstatus.dev/docs/llms-full.txt'
② 索引文件真伪 https://learn.openstatus.dev/docs/llms.txt 404 text/plain 9 https://learn.openstatus.dev/geo-audit-probe-d4a4f1b1797bce9d3d83b0dc 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://learn.openstatus.dev/docs/llms.txt'
③ 全文通道 https://learn.openstatus.dev/docs/llms-full.txt 404 text/plain 9 https://learn.openstatus.dev/geo-audit-probe-d4a4f1b1797bce9d3d83b0dc 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://learn.openstatus.dev/docs/llms-full.txt'
② 索引文件真伪 https://openstatus.dev/.well-known/llms.txt 404 text/markdown 495 https://openstatus.dev/geo-audit-probe-b776c9b0705bdf0464b37636 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://openstatus.dev/.well-known/llms.txt'
② 索引文件真伪 https://www.openstatus.dev/.well-known/llms.txt 404 text/markdown 495 https://www.openstatus.dev/geo-audit-probe-4efedfc192553e6554f91b6e 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://www.openstatus.dev/.well-known/llms.txt'
② 索引文件真伪 https://dev.openstatus.dev/.well-known/llms.txt 404 text/plain 9 https://dev.openstatus.dev/geo-audit-probe-c20e9391250d7e9b831758e7 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://dev.openstatus.dev/.well-known/llms.txt'
② 索引文件真伪 https://platform.openstatus.dev/.well-known/llms.txt 404 text/plain 9 https://platform.openstatus.dev/geo-audit-probe-fc0f76c6678838899586acc0 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://platform.openstatus.dev/.well-known/llms.txt'
② 索引文件真伪 https://support.openstatus.dev/.well-known/llms.txt 404 text/plain 9 https://support.openstatus.dev/geo-audit-probe-20129ca85a96853fa22da830 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://support.openstatus.dev/.well-known/llms.txt'
② 索引文件真伪 https://learn.openstatus.dev/.well-known/llms.txt 404 text/plain 9 https://learn.openstatus.dev/geo-audit-probe-d4a4f1b1797bce9d3d83b0dc 404 不适用 HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致
curl
curl -sSL -A 'geo-audit/0.1.0 (+https://github.com/wangtoone/geo-audit; contact: 152046194+wangtoone@users.noreply.github.com)' 'https://learn.openstatus.dev/.well-known/llms.txt'
⑤ .md 通道 https://openstatus.dev/ 无法判断 待判定
⑥ 可点击路径 https://www.openstatus.dev/ 无法判断 待抓取
⑥ 可点击路径 https://www.openstatus.dev/pricing 无法判断 待抓取
⑥ 可点击路径 https://www.openstatus.dev/changelog 无法判断 待抓取
⑥ 可点击路径 https://dev.openstatus.dev/ 无法判断 待抓取
⑥ 可点击路径 https://support.openstatus.dev/ 无法判断 待抓取

别人的工具会怎么误判你

三种可自动检出的误判形态。这一块是零发现报告真正的付费点:你拿到的 0 与别处拿到的 0,来源不一样。

  1. 你的真文件会被读成「没有」:WAF / 限流会把纯 HTTP 客户端拦掉(实测 gusto.com 403、www.pipedrive.com 429);真文件在子域或 /docs 下而根路径 404 或软 404(实测 minimax、moonshot、siliconflow、onfleet、canvasmedical、ecwid 六家)。
  2. 你的 0 死链会被读成「有死链」:站上有 Cloudflare 的 /cdn-cgi/l/email-protection 诱饵 href、有 example.com 占位、有 Alpine/Vue 的 :href、有 {templateID} 这类模板占位。实测:这类噪声能让死链数从 25 虚报成 42(+68%)。
  3. 你的 0 死链其实是假的 0:你的站对未知路径返回 200 或 302 而不是 404(实测 developers.pipedrive.com 的 24,907 B 兜底页、docs.gusto.com 与 docs.moderntreasury.com 的 302→首页、platform.kimi.ai 的 414,072 B Quickstart 页)。这种站上任何只看状态码的死链工具都会报 0 死链,那个 0 是假的。我们是用正文/骨架比对得出的 0,所以我们的 0 是真的。

裸域 / www 双向探测

openstatus.dev
ok · ok_control_discriminates
www.openstatus.dev
ok · ok_control_discriminates
结论
both_ok single_case

证据强度 single_case:全语料只有一例(brevo 的裸域返回 Vercel 的纯文本 DEPLOYMENT_NOT_FOUND,而 www 与 developers 子域都正常)。n=1 不够格进首页计数,所以这一区单列。

被去噪排除的链接

逐条留痕,带 rule_id。实测教训:五个批次排除了 /cdn-cgi/l/email-protection、另几个批次没排 —— 同一个东西两套口径,所以这里必须逐条列。

本次没有被去噪排除的链接。

朴素对照全表

同一批已抓响应上的两个读数:左边只用「跟完跳转的最终状态码」推,右边是我们的判定。朴素侧不额外发一个请求 —— 它是换算器,不是第二次扫描。

只有 ① 入口发现 / ② 索引文件真伪 / ③ 全文通道 三段的位置进这张表;④⑤⑥ 的差异化走下面那行死链口径对比。

有分歧 0 条。

探测位置朴素方法那种实现会说实际是有分歧多打的请求方向
https://openstatus.dev/ 不在朴素探测集内 它往这个 host 打过请求(只打了两条根路径) 对照探测 https://openstatus.dev/geo-audit-probe-b776c9b0705bdf0464b37636 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容 n 1 一致
https://www.openstatus.dev/ 不在朴素探测集内 它往这个 host 打过请求(只打了两条根路径) 对照探测 https://www.openstatus.dev/geo-audit-probe-4efedfc192553e6554f91b6e 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容 n 1 一致
https://docs.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 请求 /,最终落在通用落地页 /docs(链路:308 https://www.openstatus.dev/docs/ -> 308 https://www.openstatus.dev/docs);跳转到通用落地页等同于「这个路径不存在」 n 2 一致
https://developers.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://developer.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://dev.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 对照探测 https://dev.openstatus.dev/geo-audit-probe-c20e9391250d7e9b831758e7 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容 n 2 一致
https://doc.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://apidoc.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://api-docs.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://apidocs.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://api.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 HTTP 404(状态码正确,正文形态不参与判定) n 2 一致
https://reference.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://platform.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 对照探测 https://platform.openstatus.dev/geo-audit-probe-fc0f76c6678838899586acc0 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容 n 2 一致
https://support.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 对照探测 https://support.openstatus.dev/geo-audit-probe-20129ca85a96853fa22da830 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容 n 2 一致
https://help.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://supportcenter.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://learn.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 对照探测 https://learn.openstatus.dev/geo-audit-probe-d4a4f1b1797bce9d3d83b0dc 返回 HTTP 404 / text/html,与本响应可区分,判为真实内容 n 2 一致
https://kb.openstatus.dev/ 不在朴素探测集内 它从没往这个 host 打过请求 robots.txt 禁止抓取 /,本位置未评估 n 2 一致
https://openstatus.dev/llms.txt GET https://openstatus.dev/llms.txt,跟随跳转,只看最终状态码 未采纳(404) 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 483 字节;第二把尺子 Accept: */* -> 200 text/plain 52,530 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定)) n 1 一致
https://openstatus.dev/llms-full.txt GET https://openstatus.dev/llms-full.txt,跟随跳转,只看最终状态码 未采纳(404) 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 488 字节;第二把尺子 Accept: */* -> 200 text/plain 83,471 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://openstatus.dev/llms-full.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定)) n 1 一致
https://www.openstatus.dev/llms.txt GET https://www.openstatus.dev/llms.txt,跟随跳转,只看最终状态码 未采纳(404) 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 483 字节;第二把尺子 Accept: */* -> 200 text/plain 52,530 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://www.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定)) n 1 一致
https://www.openstatus.dev/llms-full.txt GET https://www.openstatus.dev/llms-full.txt,跟随跳转,只看最终状态码 未采纳(404) 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/markdown 488 字节;第二把尺子 Accept: */* -> 200 text/plain 83,471 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://www.openstatus.dev/llms-full.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定)) n 1 一致
https://dev.openstatus.dev/llms.txt 不在朴素探测集内 未采纳(没探这个位置) 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 913 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://dev.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定)) n 2 一致
https://dev.openstatus.dev/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://platform.openstatus.dev/llms.txt 不在朴素探测集内 未采纳(没探这个位置) 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 1,063 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://platform.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定)) n 2 一致
https://platform.openstatus.dev/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://support.openstatus.dev/llms.txt 不在朴素探测集内 未采纳(没探这个位置) 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 940 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://support.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定)) n 2 一致
https://support.openstatus.dev/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://learn.openstatus.dev/llms.txt 不在朴素探测集内 未采纳(没探这个位置) 这个位置的答案取决于请求头:状态码 404 vs 200;主尺子 Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1 -> 404 text/plain 9 字节;第二把尺子 Accept: */* -> 200 text/plain 920 字节;复现:curl -sSL -H 'Accept: text/plain, text/markdown, text/*;q=0.9, */*;q=0.1' -o /dev/null -w '%{http_code} %{content_type} %{size_download}' https://learn.openstatus.dev/llms.txt,再把 Accept 换成 */* 跑一遍;(主尺子那一侧的判读:HTTP 404(状态码正确,正文形态不参与判定)) n 2 一致
https://learn.openstatus.dev/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://openstatus.dev/docs/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://openstatus.dev/docs/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://www.openstatus.dev/docs/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://www.openstatus.dev/docs/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://dev.openstatus.dev/docs/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://dev.openstatus.dev/docs/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://platform.openstatus.dev/docs/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://platform.openstatus.dev/docs/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://support.openstatus.dev/docs/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://support.openstatus.dev/docs/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://learn.openstatus.dev/docs/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://learn.openstatus.dev/docs/llms-full.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://openstatus.dev/.well-known/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://www.openstatus.dev/.well-known/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 2 一致
https://dev.openstatus.dev/.well-known/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://platform.openstatus.dev/.well-known/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://support.openstatus.dev/.well-known/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致
https://learn.openstatus.dev/.well-known/llms.txt 不在朴素探测集内 未采纳(没探这个位置) HTTP 404(状态码正确,正文形态不参与判定);用 Accept: */* 再量一次,状态码、正文类型都一致 n 3 一致

死链口径对比:只看首跳状态码(>= 400 即判死)会数出 0 条;我们经去噪与正文比对后是 0 条链接实例。

覆盖披露

位置数 54 · 抓到的页面 0 个 · HTTP 请求 121 / 上限 120(其中不同 URL 67 个;差额是跳转每一跳、robots.txt 与重试)

链接账本:抽取 0 = 排除 0 + 待人工 0 + 已验证 0 + 无法判断 0 + 被封顶截掉 0

本次未触发抽样。

robots.txt 的 Disallow 我们遵守了:命中的路径零请求,判「无法判断(robots_disallowed)」。「我们没被允许看」是真话。

LLM 调用 0 次(这个工具零 LLM、零 API key,所以它恒为 0)。

查了什么

不查什么(摘要,理由见「方法」)

这些地方我们想看但没看到

位置 原因码 实际是 补救办法
① 入口发现 · https://developers.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 · https://developer.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 · https://doc.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 · https://apidoc.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 · https://api-docs.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 · https://apidocs.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 · https://reference.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 · https://help.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 · https://supportcenter.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
① 入口发现 · https://kb.openstatus.dev/ robots_disallowed 这个 host 解析通了、根路径也请求了,但判不了(robots_disallowed),于是它的 AI 路径(llms.txt / llms-full.txt / .md 通道)一条都没探,robots.txt 与 sitemap.xml 也没读。这不是「这个 host 没问题」,是「我们没能看」。 你的 robots.txt 禁止抓这个路径,我们遵守了。要检查请加 --ignore-robots。「我们没被允许看」是真话,「这里没问题」是假话。
④ 索引内链存活 · https://openstatus.dev/llms.txt accept_negotiated 这份索引解析出 5 条内链,但我们没能判定它本身是不是真文件(accept_negotiated),所以这 5 条一条都没查。 这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。
④ 索引内链存活 · https://www.openstatus.dev/llms.txt accept_negotiated 这份索引解析出 5 条内链,但我们没能判定它本身是不是真文件(accept_negotiated),所以这 5 条一条都没查。 这个位置的答案取决于请求头:换一个 Accept 头就换一个结果,所以「它是什么」没有单一答案,得看是谁在读。证据里两把尺子的读数都在,各自带 curl 复现命令。要让所有抓取器看到同一份东西,就别对这个路径做内容协商(常见成因:文档平台把「要 markdown」的请求 rewrite 到另一个 handler)。实测参照:www.openstatus.dev 与 dev.wix.com 的 llms.txt 对带 text/markdown 的请求返回 404、对 */* 返回 200 真文件;api-docs.ecwid.com、developers.attio.com、developers.pipedrive.com、developers.printify.com、docs.moderntreasury.com 反过来 —— 对带 text/markdown 的请求给 markdown 正文、对 */* 给 HTML 页面。

方法,与不检查什么

这个工具零 LLM、零 API key。判定全部来自 HTTP 观测 + 同域随机路径对照探测 + 正文/骨架归一化比对。下面两张表是范围本身,不是免责声明。

首页大字只用位置数,条目数单列 —— 位置数回答「链路哪几段走不通」,条目数回答「有几条要改」,两个数不能互相顶替。

「未能评估」与「没问题」在这份报告里严格分开:Status.UNKNOWN 永不折算成通过。实测依据:help.spoton.com 与 docs.lawmatics.com 的文档站是纯 JS SPA,它们的「零发现」是抓取能力问题,不是站点干净。

报告里凡提到「那类实现会读错」,措辞一律是「只探根路径、不做对照探测的实现」——我们没有拿任何一款现成产品跑过对照,所以不会替它们下结论。

做什么

实测理由
C3 · AI 检索链路体检llms.txt / llms-full.txt 是真文件还是软 404、全文通道是不是索引的字节副本、索引里列的链接活着几条、「任意页面加 .md」这个约定兑现了没有。每一条都配同域随机路径对照探测。
C1 · 人和爬虫共用的可点击路径seed 页上抽取的 <a href>,点了就 404 的那些。带 23 条去噪规则与两级根因归并。

明确不做,以及为什么(引实测,不重新论证)

实测理由
过期信号整类(含附录)通用旧年份正则:batch1 扫出 134 条命中、真信号 0;CN 批扫出 296 处、真信号 2。两批独立同结论。而且还高假阴 —— snipcart 的真信号 「© All rights reserved, Snipcart inc. 2023」被自家正则的 inc. 句点截断漏掉。三条收窄规则没有命中率、没有假阳性率、没有回归用例,三样全无。
事实冲突(套餐名枚举 / 同页矛盾 / 档位↔功能映射)8/72、6/72 这些数是人工逐域推出来的,自动化版本从来没跑过,这一整块的假阳性率是空的。且「属性对」这个单位实测伸缩 15 倍(bigcommerce 把一整张套餐枚举记成 1 对,baseten 把同型 GPU 表记成 17 对,together 14 个模型记成 37 对)。
锚点腐烂(#xxx 在目标页不存在)本轮未做系统性检测,只偶得 1 例(gusto #minimum-api-version)。命中率未知。不做的理由是实现成本,不是命中率低。
通用定价页↔文档数值比对15 个域完全没有可比面(必然 0);单位不可定义;20% 的冲突以 llms.txt 为一侧(已否决功能)。
定期扫描 / 健康分订阅中位数落在 1–2 条区间,73.6% 的站报不出 3 条。注意:「两次扫描之间没有新增」是无证据的时序断言(全部数据是单一时间点横截面),准确表述是「我们没有纵向数据,无法承诺订阅价值」。
托管 web 版(输入任意域名就发请求的公开端点)它会让 --contact 这条合规约束当场失效,且等于开放抓取代理。
浏览器渲染 / Playwrightuvx 一行可跑是硬需求;Playwright 要另外 playwright install(约 300 MB)。已量化的代价:确认的 JS 盲区只有 help.spoton.com 与 docs.lawmatics.com = 2/72 = 2.8%。这两家判 UNKNOWN,绝不判「干净」。
--serve 本地表单页HTTP server 是纯 scope creep + 安全面。非命令行用户走 GitHub Action。