一个月前,我们把站点 12 天、420 万条访问日志拆开,公布了六个发现(《AI 爬虫实测报告:420 万条服务器日志里的 6 个发现》)。当时最刺眼的一条是:自称 AI 爬虫的请求里,83.9% 的身份无法核验——大量扫描器把 User-Agent 改成 GPTBot、ClaudeBot,既能绕过粗糙的封禁,又能被误统计成「AI 很关注我们」。
那篇发出去之后,我们自己心里有一个没解开的疑问:如果连「谁来了」都说不清,那「AI 到底读没读我们」这件事,靠日志还能不能验?于是这个月同一台服务器、同一套 nginx 日志、同一套判定骨架,只换窗口又跑了一遍。
复测的结论比 9 月更难听,但也更有用:本次窗口里,自称 AI 爬虫的 22,463 条请求中,有 20,304 条(90.4%)是我们自己的审计引擎发出的。骗子不是最大的污染源,我们自己的仪器才是。剔除自访之后,外部真实自称 2,159 条,三层核验通过 1,972 条(91.3%),日均 197 次——比 9 月的 119 次高 65.5%。
一、为什么一个月内要再测一次
复测不是为了凑一篇新文章,而是有三个必须回答的问题:
- 9 月发现的「身份冒充」还在不在?如果冒充持续,那所有用日志做的 AI 可见度汇报都不可信;如果冒充下降,是攻击者收手了,还是换了打法?
- 我们自己的站点变了,AI 的反应有没有变?这一个月里,
/geo/内容库从 51 篇中文文章长到 59 篇、越南语同步 59 篇,产业深度报告 27 份中英越双版齐备,还新增了 9 个行业的基准页。 - 9 月的判定方法本身有没有缺陷?当时只用「反解主机名」一层核验——这个月我们把核验加到三层,就是为了验证第一层会不会漏判。
三个问题的答案都在下面。先给结论:冒充没消失,但不再是最大的误差源;方法确实有缺陷,9 月漏掉了一整家最勤快的 AI 抓取方;而最大的干扰,来自我们自己。
二、样本与方法:三层核验,比 9 月更严
窗口:2026-10-15 → 2026-10-25 02:00(东八区,10 天),数据源为本机 nginx 全量访问日志(9 个轮转归档 + 当日实时日志),共 111,320 条请求。剔除健康检查与内网探针 380 条后,有效请求 110,940 条——这次健康检查只占 0.3%,而 9 月窗口里它是绝对的噪声主体(这也是 9 月与 10 月总量不能直接比较的原因:比的必须是「剔除后的同一种东西」)。
身份判定用三层,任一层通过即算「核验通过」:
| 层级 | 判据 | 本次命中 | 能抓住什么 / 漏掉什么 |
|---|---|---|---|
| A 层 | 反解主机名落在厂商域名下(如 crawl-66-249-66-76.googlebot.com、petalbot-114-119-145-66.petalsearch.com) | 1,274 次 | 最硬,但厂商一旦不给 IP 配 PTR 就整段失效 |
| B 层 | ARIN RDAP 网段归属厂商本人(本次现场查证:216.73.216.0/22 登记为 Anthropic, PBC) | 554 次 | 抓住「无 PTR 但网段是自己的」,这是 9 月漏掉的那部分 |
| C 层 | 厂商公开 IP 清单(OpenAI 的 gptbot.json / searchbot.json / chatgpt-user.json,本次现取:18 / 39 / 234 条网段) | 144 次 | 最权威,但只覆盖愿意公布网段的厂商 |
三层都没命中的 187 条记为「无法核验」——注意,无法核验不等于冒充。ChatGPT-User、Claude-User 这类「用户触发的实时抓取」厂商从未公布网段,把它们算进「冒充」和把它们算进「真实」一样是错的口径。
三、发现一:90.4% 的「AI 爬虫」来自我们自己的审计引擎
这是本次复测最重要的发现,也是 9 月完全没看见的一块。
窗口内自称 AI 爬虫的请求共 22,463 条。按来源 IP 拆开,其中 20,304 条来自站点自己的公网 IP——也就是我们每天跑的那套 0–100 分审计引擎。它为了判断「AI 爬虫能不能读到这一页」,会主动用 6 种 AI 爬虫的 User-Agent 各请求一遍,于是它自己的访问全被记进了日志:
| 被冒用(自访)的身份 | 请求数 | 说明 |
|---|---|---|
| GPTBot / OAI-SearchBot / PerplexityBot / Claude-SearchBot / Googlebot / Applebot | 各 3,384 次 | 6 种身份 × 3,384 = 20,304 次,日均 2,030 次,等于每天把 166 个页面用 6 种身份各扫两遍 |
| 自访目标目录分布 | 中文博客 6,714 / 越南语博客 6,576 / 中文产业 2,916 / 越南语产业 2,916 / 站点首页区 1,074 | 探针扫的正是我们最想被 AI 读的那批内容页 |
同一台机器上,另一个数据把这件事钉死:窗口内 /llms.txt 共收到 3,524 次请求,其中 3,401 次来自我们自己的审计引擎(UA 写着 GEO-Optimizer/2.0)、109 次来自内容发布机、10 次来自本机回环,剩下 3 次是零散扫描器。真实的 AI 爬虫一次都没读过它。
为什么这件事值得写出来:它是整个 GEO 行业最容易犯的统计错误,而且犯错的不是骗子,是认真做事的人。只要你上过任何 AI 可见度审计工具、自建过探针、或者把站点接进第三方监测,日志里的「AI 爬虫次数」就会被自己的仪器抬高一个数量级。反过来,如果一家服务商用「本月 AI 爬虫访问增长 300%」作为效果证明,你第一个该问的是:这些请求的源 IP,是不是你自己的工具?
四、发现二:只用反解析,会漏掉最勤快的抓取方
9 月我们只用 A 层(反解主机名)。这个月它当场失效:ClaudeBot 自称 557 次,反解命中 0 次。
如果停在这一步,结论会是「ClaudeBot 全是冒充」——和真相完全相反。我们把它的源 IP 拿去查 ARIN RDAP,216.73.216.0/22 的登记主体是 Anthropic, PBC(网络名 AWS-ANTHROPIC,覆盖 216.73.216.0–216.73.219.255)。这个网段不配 PTR 记录,所以反解永远是空的。补上 B 层之后,ClaudeBot 的 554 次请求被确认为 Anthropic 官方抓取——它是本次窗口里抓内容最多的外部爬虫。
这条经验可以直接迁移:身份核验必须「反解 + 网段归属 + 官方清单」三选一,任何单一手段都会系统性漏判某一厂商。这大概也解释了一个现象——不少第三方监测工具的报告里,Claude 的抓取量长期接近 0,而 OpenAI 的很高;未必是 Claude 不抓,而是它的网段没有 PTR,工具反解不到就把记录丢了。
五、发现三:外部核验通过 1,972 次,真正读内容的是 8 个身份
剔除自访后,外部自称 2,159 条,三层核验通过 1,972 条(91.3%)。按类别拆开:AI 检索与训练类 718 次、搜索引擎 1019 次、SEO 商业工具 235 次。
| 身份 | 核验通过 | 独立路径 | 类别 | 本次观察 |
|---|---|---|---|---|
| ClaudeBot | 554 | 276 | AI 检索 | 抓内容最多的外部爬虫;一半动作在读门(见第六章) |
| PetalBot | 453 | 196 | 越南语索引(Cốc Cốc) | 全部 200,但抓的全是主站资讯,不抓 GEO 内容库(见第七章) |
| Googlebot | 341 | 76 | 搜索引擎 | 同样不抓 GEO 内容页,集中在城市库与主站 |
| SemrushBot | 235 | 190 | SEO 商业工具 | 不是 AI,但会扫 /geo/ 内容页,容易被误算成「AI 来了」 |
| Bingbot | 135 | 83 | 搜索引擎 | 唯一在高频抓 /geo/ 内容页的搜索引擎(36 次) |
| Baiduspider / Sogou | 79 / 11 | 20 / 7 | 中文搜索引擎 | 集中在主站,量小 |
| OAI-SearchBot / GPTBot | 71 / 57 | 10 / 47 | AI 检索 / 训练 | GPTBot 广度优先(47 条路径),OAI-SearchBot 更集中在入口 |
| ChatGPT-User | 16 | 7 | AI 实时抓取 | 命中公开清单,说明确有用户让 ChatGPT 现场读了我们的页 |
| Bytespider | 20 | 4 | AI 训练 | 少量 |
日均核验爬虫 197 次,9 月同口径是 119 次(1,432 ÷ 12 天),一个月涨 65.5%。这个涨幅不能直接归因于「我们的内容变好了」——10 月比 9 月多了 8 篇文章、9 份产业报告和一批基准页,被读的基数本来就在变大。但它至少说明一件事:内容持续更新,爬虫确实会增加回来读的次数。
六、发现四:AI 抓取有固定节律,新文 4 小时内被读走
四篇最近发布的文章,全部在发布当日就被 ClaudeBot 抓走,时延集中在 3.59–4.87 小时之间,中位数 4.06 小时、均值 4.14 小时:
| 文章 | 发布日 | 首次被抓 | 时延 | 抓取者 |
|---|---|---|---|---|
geo-self-audit-166-pages-ledger-2026-10 | 2026-10-18 | 18/Oct 03:44 | 3.74 小时 | ClaudeBot |
ai-search-citation-rules-shift-2026-q4 | 2026-10-20 | 20/Oct 04:22 | 4.38 小时 | ClaudeBot |
vietnam-insurance-ai-readiness-audit-2026-10 | 2026-10-22 | 22/Oct 03:35 | 3.59 小时 | ClaudeBot |
vietnam-ai-readiness-9-sector-benchmark-2026-10 | 2026-10-24 | 24/Oct 04:52 | 4.87 小时 | ClaudeBot |
更值得注意的是时间点的规律性:四次首抓全部落在凌晨 03:35–04:52,而 GPTBot 的跟进抓取全部落在上午 08:54–09:18。9 月那份报告的中位数是 4.1 小时——这个月独立复测得到 4.06 小时,两轮不同窗口的读数几乎重合,说明这不是偶然,而是 AI 检索爬虫的固定节律。
运营上这意味着一个很具体的动作:内容发布时点要对齐抓取窗口。我们在 0 点前后发布,4 点前就被读走;如果同样一篇稿下午 4 点才上线,就要多等一个周期,而 AI 的「新鲜度加权」通常只给一次机会。另外,发布后 6 小时内不要大改页面结构——你改的那几分钟,可能正好是爬虫在读的几分钟。
七、发现五:搜索引擎抓主站,AI 爬虫读内容库
这个分布差异是本次最实用的发现,因为它直接决定资源该投在哪里:
| 抓取者 | 核验总次数 | 其中 /geo/ 内容页 | 主要在抓什么 |
|---|---|---|---|
| Googlebot | 341 | 0 | 城市库(/vietnam/…)、主站资讯、首页 |
| PetalBot(Cốc Cốc) | 453 | 0 | /article/*.html 越南经济资讯、services、cases |
| Bingbot | 135 | 36 | sitemap 25 次 + /geo/ 博客与产业页 |
| ClaudeBot | 554 | 80 | 先读 robots + sitemap,再读 /geo/ 博客与产业报告 |
读法有三层:
- 我们的 GEO 内容库,在传统搜索里基本是「隐形」的。Googlebot 与越南本土的 PetalBot 在 10 天窗口内一次都没抓过 /geo/ 下的内容页,Googlebot 的 341 次里有 316 次在抓城市库与主站。
- 但对 AI 爬虫不是。ClaudeBot 抓了 80 次内容页、Bingbot 抓了 36 次——AI 爬虫比搜索爬虫更早读到了我们最新写的东西。这本身就是 GEO 这门生意最直接的一条实证:新内容在搜索里还没排上号,在 AI 那里已经进了语料。
- 长期看这是隐患。没有搜索引擎收录,品牌词曝光和自然流量都不会来,AI 引用也会缺一个交叉验证源。下一步该做的是把主站 /article 与城市库的权重导进 /geo/:在资讯页脚做相关研报内链、在城市页的产业段挂对应产业报告——这是纯内链工程,不需要新内容。
顺带把 llms.txt 的账也结了:一个月内它被请求 3,524 次,真实 AI 爬虫 0 次。它现在的作用是「给未来留的门」——值得配置、值得写在方法论里,但不能当成「AI 已经在读我们」的证据。谁把 llms.txt 当核心卖点,谁就在卖一个还没发生的事实。
八、发现六:大规模身份轮换消失了,但冒充没消失
9 月最戏剧性的一组数据是「5 个 IP 各用 12–13 种 AI 爬虫身份轮换」。这个月只剩 1 个:34.40.11.197(反解 …googleusercontent.com,即 Google Cloud 上的租户),用它一个 IP 轮换了 8 种身份(Baiduspider、Bytespider、CCBot、ClaudeBot、GPTBot、Googlebot、OAI-SearchBot、meta-externalagent),14 次请求。
但「冒充变少」这个结论不能下,理由有三个:
- 本次窗口 10 天、9 月窗口 12 天,样本不同;
- 冒充者的 IP 池本来就高频更替,抓到一个窗口没抓到,不代表没有;
- 真正稳定的信号是冒充的存在性,而它依然在:40 次「Googlebot」不在 Google 的网段里;74 次「AhrefsBot」、33 次「meta-externalagent」、28 次「Bytespider」三层都没核验通过。
所以对外表述应该是:「冒充仍然存在,只是本次窗口没有出现大规模轮换」——而不是「冒充问题已经解决」。这两种说法在报告里的可信度差一个量级。
九、落到 GEO:三条可以直接用的结论
① 统计口径先剔自访,再谈 KPI。任何「AI 爬虫访问量」指标,第一步必须是按源 IP 白名单剔除自建探针、审计工具、监测节点。本次若不剔除,数字会虚高 10.4 倍(22,463 vs 2,159)。建议改用的三个指标:核验爬虫的独立路径数(衡量覆盖广度)、新文首抓时延中位数(衡量可发现性)、robots/sitemap 命中率(衡量入口健康)。这三个都不容易被污染。
② 入口优先级:sitemap 与 robots 先做,llms.txt 后做。实测 ClaudeBot 一个窗口读了 138 次 robots.txt + 138 次 sitemap.xml,占它全部动作的 49.8%;Bingbot 读 sitemap 25 次;而 llms.txt 真实读取 0 次。把预算花在 sitemap 完整性、robots 里显式放行 AI 爬虫、结构化数据(JSON-LD)上,回报是立刻的。
③ 发布时点对齐抓取节律。凌晨发布、4 小时内被读走是被实测四次复现的规律;配合「发布后 6 小时不改结构」,等于把新内容的第一次被抓做成确定性事件,而不是碰运气。
最后说回这份数据本身:它几乎全是「不好看」的数字——90.4% 的污染来自自己、llms.txt 至今无人读、搜索引擎还没收录我们的内容库。但这三条恰恰是别人报告里看不到的,因为它们需要把自己的仪器也放到台面上审一遍。能被自己推翻的方法,才值得客户拿去用。