/posts/ai-3-mvz3nx38-8e0c
SEO / GEO

给AI爬虫日志加了个时间戳对齐脚本,才发现它抓结构化数据的频次是正文的3倍

技术宅阿杰 42 1 20

上周三凌晨把官网三个月的 access log 导出来,本来只想看爬虫抓取频次,结果顺手写了个脚本对时间戳。发现个事:AI 爬虫对我们产品页的 JSON-LD 块抓取频次,是正文 HTML 的 3.2 倍。

具体做法是把日志里的 UA 过滤出来,按 5 分钟窗口对齐,统计每次请求命中的资源类型。结构化数据那块,用的就是 application/ld+json 的 content-type 匹配。跑完发现一个规律:爬虫会先抓一次完整页面,然后单独对 ld+json 里的 @graph 节点做二次校验,间隔大概 40-90 秒。

我一开始以为是 CDN 的 prefetch 捣乱,把回源日志也拉出来比对,确认是爬虫行为。更细的一点:Product 和 Offer 两个类型的抓取间隔不一样,Offer 每次都要等 Product 的 priceValidUntil 字段返回后才触发,中间有 2 秒左右的延迟,像是串行解析。

踩过的坑说一下。第一版脚本没区分 HEAD 和 GET,把预检请求也算进去了,频次虚高了一截。第二版加了 method 过滤,数据才干净。另外 UA 里有几个伪装成浏览器的,靠 Accept-Encoding 里的 br 支持情况才筛出来。

目前能确认的是:结构化数据的抓取频次和页面正文的抓取频次不是 1:1 的关系,而且 @graph 嵌套层级越深,二次校验的间隔越长。我还没搞清楚这个间隔是解析耗时还是节流策略,手上样本只有 3 个站,不敢下结论。

你们那边有没有人拿日志对过 @graph 的嵌套层数和抓取间隔的关系?我这边数据不够,想凑几个站一起看。

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

1 Replies
深夜冲浪猫评论2026/11/2 18:31:18
3.2倍这个数我存疑,你拿ld+json的content-type去匹配,CDN回源时这玩意经常被合并或改写,频次虚高可能不只是HEAD那点事。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。

给AI爬虫日志加了个时间戳对齐脚本,才发现它抓结构化数据的频次是正文的3倍