← 返回文章列表
实战方法7 分钟读完透镜GEO 研究组

AI爬虫怎么识别和分析 2026:日志里九成结论是错的

不做 IP 验真,你日志里关于 AI 爬虫的结论九成是错的。在自有站点 2026 年 8 月 18–25 日 nginx 日志中,声称 GPTBot 的请求 91% 是伪造,单日 261 次里有 260 次来自自身检测脚本。读完后你会拿到一套可复用的验真与分类流程:用 OpenAI、Perplexity 官方 IP 段或双向 PTR 反解验证 UA,排除自有 IP 后按资源类型拆分统计。实测显示 Bytespider 1341 次请求中只有 12% 是 HTML,Applebot 抓了 192 次 JS,ChatGPT-User 99% 只取 HTML;ChatGPT-User 违反 robots.txt 6 次而 Bytespid

本文要点

  • 不做 IP 验真,你日志里关于 AI 爬虫的结论九成是错的。
  • 在自有站点 2026 年 8 月 18–25 日 nginx 日志中,声称 GPTBot 的请求 91% 是伪造,单日 261 次里有 260 次来自自身检测脚本。
  • 读完后你会拿到一套可复用的验真与分类流程:用 OpenAI、Perplexity 官方 IP 段或双向 PTR 反解验证 UA,排除自有 IP 后按资源类型拆分统计。

先说结论:不做 IP 验真,你日志里关于 AI 爬虫的结论九成是错的。 我们站上历史数据里,声称自己是 GPTBot 的请求 91% 是伪造的;而今天单日 261 次「GPTBot」里,有 260 次来自我们自己的服务器——是自家检测脚本在污染统计。

这篇讲怎么把 AI 爬虫从日志里正确地分离出来、各家的行为差异实测是什么样、以及哪些流行判断经不起验证。全部数据来自我们自己站点 2026 年 8 月 18–25 日的 nginx 日志。

一、第一步永远是验真,UA 一个字都不能信

任何以 User-Agent 为准的 AI 爬虫统计都是不可用的。 伪造成本为零,而收益很直接——冒充 GPTBot 能绕过大量按 UA 放行的反爬规则。

三类验真方式

爬虫

验真方式

可靠性

GPTBot / OAI-SearchBot / ChatGPT-User

OpenAI 官方 IP 段 JSON

高,可判真也可判假

PerplexityBot

Perplexity 官方 JSON

Googlebot / bingbot / Baiduspider / PetalBot / Amazonbot / Sogou

PTR 反解,校验域名后缀

ClaudeBot / Bytespider

只能靠 PTR 后缀

中——无 PTR 时无法证真也无法证伪

官方 IP 列表的地址是公开的:openai.com/gptbot.jsonopenai.com/searchbot.jsonopenai.com/chatgpt-user.jsonperplexity.ai/perplexitybot.json。前两个各有二三十条网段,chatgpt-user.json 有两百多条。

PTR 验真要做双向:先反解 IP 拿域名,再正解域名看是否回到同一个 IP。只做反解会被伪造 PTR 骗过。

实测结果

2026-08-25 单日,按上述方式逐条验:

声称的 Bot

请求

验真结果

GPTBot

261

真 1,自有流量 260

bingbot

73

真 73

PetalBot

49

真 49

Bytespider

46

真 33,无 PTR 存疑 13

Baiduspider

43

真 43

Googlebot

22

真 22

ClaudeBot

10

全部无 PTR,存疑

ChatGPT-User

6

真 6

facebookexternalhit

4

真 1,伪造 3

那 3 个伪造的 facebookexternalhit,反解出来一个是河北电信的家用宽带 60.10.219.146

自有流量是最容易被忽略的污染源。 我们的检测脚本用 GPTBot 的 UA 请求自己的站点,如果不按 IP 排除服务器自身和内网段,会得出「GPTBot 抓取量暴涨」的荒谬结论。

二、各家 AI 爬虫的行为差异极大,不能用同一套假设

「AI 爬虫」不是一个统一的东西。 8 天累计 2306 次验真通过的请求,按抓取内容拆开:

爬虫

总请求

HTML

图片

JS

HTML占比

ChatGPT-User

305

301

4

0

99%

OAI-SearchBot

266

199

9

5

75%

GPTBot

64

40

9

1

62%

PerplexityBot

14

7

1

0

50%

Applebot

316

93

0

192

29%

Bytespider

1341

156

815

273

12%

三种行为模式对应三种技术原理:

ChatGPT-User 99% 只取 HTML,因为它根本不是爬虫——它是用户在对话里让 AI 打开某个链接时的实时取页,取回正文就够了,不需要样式和图片。

Applebot 抓了 192 次 JS,这是正常的。Apple 官方文档说明 Applebot 会执行 JavaScript 渲染页面,不拉 JS 反而说明它没在正确渲染。如果你的站是前端渲染的,Applebot 的 JS 抓取量是它能否读懂你页面的直接指标。

Bytespider 只有 12% 是 HTML,815 次图片抓取集中在 26 个文件、平均每个 31 次,其中 600 次是 206 Range 分块请求——对几 KB 的 SVG 做分块下载没有意义,是下载器实现粗糙。字节做多模态,采集图片有业务动机,但实现方式很浪费。

但不要因此去封它

八天累计 12.92 MB,日均 1.61 MB。这个量级不构成任何负担。

而且「抓取预算」是 Google SEO 的概念,指爬虫对单站的配额。没有证据表明 AI 爬虫的图片抓取会挤占 HTML 抓取——把这个概念平移过来是想当然。真按直觉禁掉图片,对多模态引擎可能反而有害。

三、社区结论不能照搬,必须用自己的日志验

Bytespider 在社区里被广泛批评为最激进的 AI 爬虫,核心指控三条:高频、多 IP 分散、不遵守 robots.txt。有站点报告单日 140 万次请求。

第三条在我们站上不成立。

爬虫

请求

IP数

读 robots.txt

违反 robots.txt

Bytespider

1341

284

83 次

0

Applebot

316

108

22 次

0

OAI-SearchBot

266

49

52 次

0

ChatGPT-User

305

190

0 次

6 次

我们的 robots.txt 禁了 /dashboard//login/trial/api/。Bytespider 读了 83 次、一次都没越界;反倒是 ChatGPT-User 抓了 6 次被禁路径

多 IP 分散这一条倒是印证了:284 个 IP 分摊 1341 次请求,人均 4.7 次。

为什么会和社区结论不同:社区样本多是大流量新闻站,那里的抓取压力和我们这个体量完全不同。任何关于爬虫行为的判断,都必须在自己的日志里重新验一遍。

四、日志分析本身的四个陷阱

这几条不是理论,是我们实际踩过并纠正的。

① 请求数不等于访问量。 一次页面加载会产生十几个静态资源请求,SPA 还会每隔几分钟轮询版本文件。我们统计微信流量时,原始请求 379 次,拆开只有 36 次真页面——静态资源 273 次、版本轮询 65 次,放大了 9.8 倍。

② 客户端路由在日志里几乎不可见。 前端框架的客户端跳转不产生完整的页面请求。Next.js App Router 会发带 _rsc= 参数的请求(还能识别),而纯 SPA 的路由切换一条日志都没有——你会以为用户只看了一页。

③ 脚本会伪装成浏览器 UA。 判断真人最可靠的单一信号是:有没有拉取过 JS 和 CSS。脚本几乎不会去取样式和前端 chunk,真浏览器必然会取。我们用这一条把 496 个会话筛到 161 个真人会话,跳出率从 83.7% 修正到 47.8%。被剔掉的里面有 Dalvik/2.1.0(Android 原生 HTTP 客户端)、空 UA,还有 LumiAI-BrandRelevance/1.0——另一家 AI 品牌监测服务的爬虫

④ 日志会轮转,历史会永久丢失。 nginx 默认保留两三周。我们要回溯 7 月某次流量异动时,日志已经没了。凡是要看长期趋势的指标,必须每天跑一次并把结果追加进自己的文件。

五、抓取量会随发布节奏衰减,这条可以量化

验真后的每日真实 AI 爬虫请求,对照当日发文量:8/18 为 177 次、发文 4 篇;8/19 为 459 次、发文 28 篇;8/20 为 216 次、发文 4 篇;8/21 为 688 次(峰值,前几日余波)、发文 1 篇;8/22 为 239 次、发文 0;8/23 为 283 次、发文 0;8/24 为 207 次、发文 0;8/25 为 50 次(截至 14:52)、新发 4 篇。

连续四天零更新之后,抓取量单调下滑。 这与我们采集到的内容被引持续时间吻合——餐饮类平均 5.3 天、工业类 3.9 天(判定标准是连续 2 天未被引用即视为结束)。

更值得注意的是负循环:8/25 发了 4 篇新文章,全部进了 sitemap,爬虫当天读了 25 次 sitemap,但这 4 篇的抓取次数是 0。 停更让爬虫降低了重访优先级,新内容的发现速度也跟着变慢。

六、和搜索引擎最根本的差异

这一条决定了前面所有技术手段的边界。


搜索引擎

AI 引擎

站长后台

完全没有

主动提交

IndexNow、百度主动推送

无任何接口

收录查询

可查

不可查

申诉渠道

曝光点击数据

官方口径

referer 归因

基本可用

大部分不传

抓到 = 可被检索

基本成立

抓到 ≠ 会被引用

最后一行是核心。SEO 里收录基本等于可被检索到;AI 引擎抓走了你的内容,不代表它在回答里会引用你。 日志能告诉你「它来过」,永远告诉不了你「它用了没有」。

所以日志分析只能解决一半问题,另一半只能靠主动去问 AI。 这不是工具选择,是这套体系的物理边界。

七、一套可复用的最小流程

如果你要从零开始搭 AI 爬虫的日志分析,这是顺序:

  1. 拉官方 IP 列表,缓存到本地,每周更新一次
  2. 按 IP 段或双向 PTR 验真,把伪造的单独归一类——它本身是个安全信号
  3. 排除自有流量:服务器自身 IP、内网段、自己的检测脚本
  4. 按资源类型分类:HTML / 客户端跳转 / 静态资源 / 机器噪音,只有前两类算页面
  5. 分爬虫统计,不要合并——各家行为差异大到合并后没有意义
  6. 每天固化一次快照,对抗日志轮转
  7. 抓取量与发布量并排看,这两条曲线的关系比任何单一数字都有信息量

第 5 步最容易被跳过。把所有 AI 爬虫合并统计,会得出「七成抓取浪费在静态资源上」这种结论——实际上那是 Bytespider 一家的行为,OpenAI 系的爬虫 99% 在抓 HTML。

常见问题

问:ClaudeBot 没有官方 IP 列表,怎么判断真假?

只能靠 PTR 后缀(.anthropic.com / .claude.ai),而且无 PTR 时既不能证真也不能证伪。我们的做法是单独标为「存疑」,不并入真实统计也不并入伪造统计。在数据里保留一个诚实的不确定类别,比强行归类要好。

问:应该封禁 Bytespider 吗?

按我们的实测数据没有必要——日均 1.61 MB,且它遵守 robots.txt。如果你的站点体量大得多、实测确认它造成了负担,那是另一回事。决定应该来自你自己的日志,不是社区帖子。

问:怎么区分「被抓取」和「被引用」?

日志区分不了。被抓取是服务器能看到的,被引用发生在 AI 的回答里,服务器完全看不见。唯一的办法是用固定的问题集去问各个引擎,记录回答里出现了谁、引用了哪些来源,并留存原始回答以便复核。

问:自有检测流量怎么排除最稳妥?

按 IP 排除,不要按 UA。我们的脚本会用各种 UA(包括 GPTBot)请求自己的站点,只有 IP 是稳定的标识。同时要排除内网段和跳板机 IP。

透镜GEO 研究组

基于中立监测底座的 GEO 研究与实践,持续提供可核验、可执行的行业内容。

相关阅读

文章 · 实战方法2026GEO监测工具排行榜哪个性价比高?先划掉不导出引用源文章 · 实战方法2026 GEO优化是不是智商税:供需query分开看资讯 · 平台观察不做广告也能获客?AI搜索流量新引擎,GEO正成为B2B企业新机遇资讯 · 平台观察透镜GEO平台:10分钟测出你在AI搜索中的真实排名和口碑资讯 · 平台观察一家传统工厂的自我进化:学会GEO优化,我靠AI搜索找到新客户文章 · 实战方法2026年GEO工具箱实测,谁更接近真实用户视角?文章 · 实战方法2026GEO监测工具价格:免费版验证,付费买什么不算学费文章 · 实战方法2026年GEO排名查询API怎么选:先问是否返回逐条引用源文章 · 实战方法2026GEO优化到底在优化什么:从诊断到决策

浏览全部深度文章 →浏览全部企业资讯 →