爬虫到访观测是领航鲸按期发布的实测数据报告,统计 AI 引擎与搜索引擎的爬虫实际到访了哪些页面。 本期数据来自领航鲸官网自身的服务器日志,窗口 2026-08-01 至 08-22,共 21 天、231400 行请求,其中爬虫请求 1099 条。
为什么这件事值得单独盯:AI 引擎必须先抓到你的内容,才可能在回答里引用你。 抓取是提及率之前最早的先行指标——发出去的稿件有没有被 AI 看见,它比提及率早两周给信号;抓取一直是 0,说明问题在可抓取性,而不在内容质量。
所有数字直接从 nginx 访问日志统计,不经人工编辑。口径固定,可跨期对比。
一、这一期谁来了
站点 sitemap 共 26 条 URL。「覆盖」列是该爬虫在窗口内抓到了其中几条。
| 爬虫 | 类别 | 到访 | sitemap 覆盖 | IP 校验 |
|---|---|---|---|---|
| bingbot | 搜索引擎 | 273 | 26/26 | 部分验证 |
| Googlebot | 搜索引擎 | 247 | 20/26 | 部分验证 |
| GoogleOther | AI 引擎 | 153 | 26/26 | 已验证 |
| GPTBot | AI 引擎 | 108 | 26/26 | 已验证 |
| Baiduspider-render | 搜索引擎 | 91 | 0/26 | 部分验证 |
| meta-externalagent | AI 引擎 | 64 | 26/26 | 存疑 |
| YisouSpider | 搜索引擎 | 36 | 3/26 | 存疑 |
| OAI-SearchBot | AI 引擎 | 33 | 0/26 | 已验证 |
| Baiduspider | 搜索引擎 | 24 | 4/26 | 部分验证 |
| ClaudeBot | AI 引擎 | 12 | 1/26 | 存疑 |
| Bytespider | AI 引擎 | 12 | 1/26 | 存疑 |
| 360Spider | 搜索引擎 | 6 | 0/26 | 存疑 |
| DuckDuckBot | 搜索引擎 | 2 | 1/26 | 存疑 |
到访次数最高的三个里有两个是搜索引擎。但真正值得看的不是这一列,是后面两列。
二、三个反直觉的发现
1. 来得最勤的那个,一个内容页都没抓
OAI-SearchBot 在 21 天里每天都来,一天没断,33 次请求全部是 /robots.txt。 它读完规则就走,一篇文章都没碰过,sitemap 覆盖 0/26。
这不是故障。OAI-SearchBot 是 ChatGPT 检索侧的索引爬虫,它靠外部链接与既有搜索索引发现 URL,不把 sitemap 当作抓取入口。手上没有本站的任何 URL,它能做的就只有定期确认一下规则有没有变。
对照组是同一家的 GPTBot:抓了 /sitemap.xml 11 次,sitemap 覆盖 26/26。同一个厂商的两个爬虫,一个吃 sitemap,一个不吃——「我提交了站点地图」不等于「所有引擎都能发现我」。
2. 一天扫完全站,然后九天挂零
GoogleOther 在 08-13 单日抓了 146 次,把 sitemap 里 26 条 URL 全部覆盖了一遍,此后九天一次没来。 它 21 天的 153 次到访里,有 96% 挤在那一天。
GoogleOther 是 Google 搜索之外的团队使用的通用爬虫。它常被和 Google-Extended 弄混,但这两个是完全不同的东西:
- Google-Extended 只是 robots.txt 里的一个产品令牌,不是真实 UA,永远不会出现在访问日志里。 在 robots.txt 里给它写
Allow是有效的,但指望在日志里数到它,一次也数不到; - GoogleOther 是会真的来敲门、日志里能数到的那个。
这条差别有实际代价。我们自己的爬虫日报名录里一开始就没有 GoogleOther,于是它那 146 次抓取在报表上完全不存在——本站第三大爬虫,报表显示为零。这一期是补上它之后的数字。
3. 国内爬虫的第一印象,可能只是一个 JS 文件
看「禁抓路径被撞」这一段——robots.txt 里明确 Disallow 的路径,仍然被抓:
| 爬虫 | 撞到的路径 |
|---|---|
| Baiduspider-render | /api/collect ×28、/geo.js ×16 |
| YisouSpider | /api/collect ×19、/geo.js ×12 |
| Bytespider | /geo.js ×11 |
| 360Spider | /geo.js ×3、/api/collect ×3 |
/geo.js 是访客统计脚本,/api/collect 是它的上报接口。这四个爬虫在窗口内抓到的内容页加起来只有 4 次,其余全部落在这两个地址上。
成因是一条容易被忽略的链路:脚本正文里含有 /api/collect 这个字符串,爬虫把它当链接顺着抓,于是连 Disallow: /api/ 都被绕过去了。 页面上挂了统计脚本、脚本又允许被抓,爬虫就会沿着 <script src> 找到你的域名——然后在这里打转,一个 HTML 都读不到。
把埋点脚本一并 Disallow 之后,这条链路断了。但代价已经产生:这几个爬虫在那之前抓了几十次,看到的全是没有正文的东西。
三、谁没来
窗口内一次都没到访的主力引擎:PerplexityBot。
日志里确实有一条自称 PerplexityBot 的请求,但 IP 不在官方公布的网段内,按伪装剔除了。
另外,Claude-SearchBot、Claude-User、Applebot、Amazonbot、cohere-ai、Sogou、PetalBot、YandexBot 在本期同样零到访。这些不列入缺席名单,是因为它们本来就不是每个站都会去的爬虫,长期不来不构成异常信号。
四、有人在冒充爬虫
按官方公布的出口网段与反向 DNS 双向确认之后,本期剔除了 38 次伪装流量:自称 GPTBot、ChatGPT-User 或 PerplexityBot,但 IP 不在对方公布的网段里。
其中大部分来自我们自己的可抓取性校验脚本——它需要用爬虫 UA 请求页面,看看返回的是不是和给真人看的同一份内容。这类自查流量不该混进到访统计,所以单列剔除。
如果你不做 IP 校验,本期这份表的 AI 爬虫数字会虚高三分之一。 伪装 UA 的成本是零,任何人都能在请求头里写 GPTBot;判断它真假的唯一办法是核对 IP。
五、入口文件被谁取过
| 文件 | 取过的爬虫 |
|---|---|
/robots.txt | Googlebot×44、OAI-SearchBot×33、bingbot×13、ClaudeBot×2、Baiduspider×2、YisouSpider×1 |
/sitemap.xml | GPTBot×11、bingbot×10、Googlebot×5、Baiduspider×1、YisouSpider×1、meta-externalagent×1 |
/llms.txt | 没人取过 |
/llms-full.txt | 没人取过 |
llms.txt 这一行值得单独说。这个文件在 GEO 圈里被提得很多,本站两个版本都放了,21 天里没有任何一个真实爬虫取过它。
这不代表它写错了,只代表现阶段没有引擎按它办事。把它当作「做了会加分」的可选项没问题,把它当作收录方案的主力,方向就偏了。
六、内容页和静态资源的比例
同样是到访,抓的东西差别很大:
| 爬虫 | 内容页 | 静态资源 |
|---|---|---|
| meta-externalagent | 55 | 2 |
| bingbot | 104 | 137 |
| Googlebot | 43 | 154 |
| GPTBot | 32 | 61 |
| Baiduspider | 21 | 0 |
Googlebot 有 78% 的抓取花在 JS 与 CSS 上。 这不是浪费,渲染型爬虫需要这些资源才能看到页面真实的样子,Google 官方文档也明确要求不要屏蔽它们。但它意味着:你看到「Googlebot 今天来了 200 次」时,真正读到内容的可能只有四十几次。
不执行 JS 的 AI 爬虫则相反——给它们屏蔽掉构建产物,抓取预算就全部落在正文上。meta-externalagent 那一行 55:2 的比例,就是这么来的。
怎么读这几张表
- 到访次数:一次 HTTP 请求算一次,含静态资源;
- sitemap 覆盖:站点地图里的 URL 被该爬虫抓到过几条,这一列比次数更能说明「它读懂了多少」;
- IP 校验:
已验证= 落在官方公布的网段内或反向 DNS 双向确认通过;部分验证= 同一爬虫名下有部分请求通过;存疑= 该厂商没有公开校验途径,无法证实也无法证伪; - 伪装剔除:自称某爬虫但 IP 校验不符的,不计入任何统计;
- 内容页:不含静态资源与 robots/sitemap 这类入口文件。
本报告只统计领航鲸自有站点的日志。客户站点的日志属于客户,不会进入任何公开物料。
七、你自己怎么查
不需要任何工具,服务器日志里就有答案。最小可用的一条命令是把访问日志里的 UA 抽出来数一遍:
awk '{ if (match($0, /"[^"]*"$/)) print substr($0, RSTART+1, RLENGTH-2) }' access.log \
| grep -Ei 'GPTBot|OAI-SearchBot|ClaudeBot|PerplexityBot|Bytespider|GoogleOther|Googlebot|bingbot|Baiduspider' \
| sort | uniq -c | sort -rn
看到数字之后,按这个顺序判断:
- 完全没有 AI 爬虫 → 先查 robots.txt 有没有挡住它们,再查站点有没有外链可供发现;
- 有到访但只落在 robots.txt → 发现链路的问题,不是内容的问题,见AI 爬虫是怎么发现你的网站的;
- 有到访也抓了内容,但引擎不引用你 → 这才轮到内容本身,见怎样写出 AI 愿意引用的内容;
- 数字很好看 → 先做一次 IP 校验再高兴。
常见疑问
问:爬虫来得多,是不是就说明 AI 会推荐我?
不是。抓取是必要条件,不是充分条件。抓取解决的是「AI 有没有可能知道你」,推不推荐取决于内容本身是否可引用、以及同题竞品的信源质量。但反过来成立:抓取长期为 0,推荐一定不会发生。
问:为什么我提交了 sitemap,有的 AI 爬虫还是不来?
因为不是所有爬虫都把 sitemap 当入口。本期数据里,GPTBot 抓了 sitemap 且覆盖全站 26/26,同一家的 OAI-SearchBot 一次都没抓 sitemap、内容页覆盖 0/26。前者吃站点地图,后者靠外链和既有搜索索引发现 URL。
问:Google-Extended 一次都没出现在我的日志里,是被挡了吗?
不是。Google-Extended 只是 robots.txt 里的一个产品令牌,不是真实的爬虫 UA,任何站点的访问日志里都不会出现它。日志里能数到的是 GoogleOther 与 Googlebot。
问:日志里的 GPTBot 一定是真的 OpenAI 吗?
不一定。UA 可以随便写。OpenAI 公布了 GPTBot 的出口网段,核对 IP 是唯一可靠的判断方式。本期按此剔除了 38 次伪装流量,占自称 AI 爬虫请求的三分之一。
问:爬虫把抓取次数花在 JS 和 CSS 上,要不要屏蔽?
分开处理。会执行 JS 的渲染型爬虫(Googlebot、bingbot、Baiduspider-render)不能屏蔽,屏蔽了它们看到的是没有样式和内容的空壳;不执行 JS 的 AI 爬虫可以屏蔽构建产物,它们从 JS 文件里一个字也读不到。
问:多久该看一次?
每周一次足够。真正需要立刻知道的是「原本天天来的爬虫突然不来了」,这种变化用周度对比就能发现。
---
想知道 AI 爬虫有没有抓到你的官网?免费诊断一次,我们会读你站点的可抓取性并给出清单。
延伸阅读:AI 爬虫是怎么发现你的网站的、主动推送与 IndexNow 能做什么,不能做什么、AI 爬虫 robots.txt 配置清单、AI 引擎信源观测 2026-08 期。
参考资料:Google《Google 抓取工具与提取工具一览》、Google《AI features and your website》、OpenAI《OpenAI Crawlers》。