- 判据
- 本次全部 host 的对照探测都可用(0 个被挡)
- 为什么危险
- 被拦截 ≠ 不存在。纯 HTTP 客户端在这类 host 上会把真文件读成「没有」。
- 实测先例
- gusto.com 403、www.pipedrive.com 429
geo-audit openstatus.dev --contact you@yourco.com --format json
四格之和恒等于位置数。「无法判断」永不折算进「通过」——「我们看不了」和「你这里没问题」是两件事。
这次没有可上报的发现。零发现不等于干净,所以这份东西叫「AI 可读性证据存档」:下面四块是这个 0 的全部依据,你可以逐行复现。
本次没有需要归并的根因。
口径:0 条 finding / 0 处根因 / 0 个链接实例 —— 三个数各有各的意思,不许混着说。
把「我们没看到」误读成「没问题」的代价,比漏一条 LOW 死链大得多,所以这一区排在发现之前。这些位置既不计死链也不计存活。
这条链路上任何一段断掉,后面几段的内容 AI 都拿不到。
只探根路径、不做对照探测的实现,在这个站上没读错。差异化演示区因此是空的 —— 这是这个域的性质,不是我们少做了对照。
这一块的作用不是炫技,是让「我拿别的东西查过,没这条」这句话失效:我们先说出那类实现在这里会得出什么、以及它少做了哪一步。
自己复现 → geo-audit openstatus.dev --contact you@you.co --naive-only
这份报告不检查:锚点是否腐烂、sitemap、robots 对 AI 爬虫的放行、图片/CSS 资源、事实是否冲突、内容是否过期。理由见文末。
本次没有可上报的发现。这不代表你的站没有可改的地方 ——见下面的「证据存档」与「下次会先坏在哪」。
下面这些我们判它死了,但静态 HTML 判不了它是否对访客可见。我们打 needs_review 而不是丢弃,也不进首页分子。
本次没有需要人工确认的条目。
每条都挂一个实测先例,并给一条能直接放进 CI 的命令。这一区不是预测,是「这个形状在语料里已经坏过」。
geo-audit openstatus.dev --contact you@yourco.com --format json
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(状态码正确,正文形态不参与判定))
curlcurl -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(状态码正确,正文形态不参与判定))
curlcurl -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(状态码正确,正文形态不参与判定))
curlcurl -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(状态码正确,正文形态不参与判定))
curlcurl -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(状态码正确,正文形态不参与判定))
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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(状态码正确,正文形态不参与判定))
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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(状态码正确,正文形态不参与判定))
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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(状态码正确,正文形态不参与判定))
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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: */* 再量一次,状态码、正文类型都一致
curlcurl -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,来源不一样。
证据强度 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 这条合规约束当场失效,且等于开放抓取代理。 |
| 浏览器渲染 / Playwright | uvx 一行可跑是硬需求;Playwright 要另外 playwright install(约 300 MB)。已量化的代价:确认的 JS 盲区只有 help.spoton.com 与 docs.lawmatics.com = 2/72 = 2.8%。这两家判 UNKNOWN,绝不判「干净」。 |
| --serve 本地表单页 | HTTP server 是纯 scope creep + 安全面。非命令行用户走 GitHub Action。 |