做蜘蛛池和站点运营,很多人每天第一件事就是打开服务器日志,看到几条带 Baiduspider 或 Googlebot 的记录就安心了。但日志里的 UA 是客户端自己写的,谁都能伪造。真正要判断的是:来的到底是不是搜索蜘蛛,以及它有没有真的抓到你希望它抓的那个 URL。
一、只看 UA 很容易被误导
日志里出现的蜘蛛记录,大致有三类:
- 真蜘蛛:来自搜索引擎官方 IP 段,行为有自己的节奏。
- 伪装蜘蛛:采集器、扫描器把 UA 改成蜘蛛名字,实际是来扒内容的。
- 自己的误判:某些监控、预取、CDN 回源请求,UA 里也可能带 spider 字样。
三类混在一起,就会出现“日志里蜘蛛很多,目标 URL 却一直没动静”的错觉。
二、三步确认抓取是否真实
第一步:核对来源 IP,而不是 UA
主流搜索引擎会公布蜘蛛的 IP 段,或者支持通过 DNS 反查验证:把访问 IP 做一次反向解析,看域名是否落在官方域名下,再做一次正向解析确认能对回来。只反查一次不够,正反都能对上才算数。
如果入口页挂在 CDN 或反向代理后面,日志里记录的可能是节点 IP。这时候要去源站日志,或者让 CDN 透传真实客户端 IP,否则你看到的永远是节点地址。
第二步:看请求路径和状态码
确认是官方 IP 之后,再看它到底请求了什么:
- 有没有请求入口页本身并返回 200,还是只取了一次 robots.txt 就走了。
- 有没有顺着入口页里的链接请求目标 URL,状态码是 200、301 还是 404。
- 返回 403、429 的次数多不多,多的话说明被 WAF 或限速挡了。
很多“蜘蛛来过但没抓目标 URL”的情况,实际是入口页返回了 200,但目标 URL 那一行根本没出现,或者出现的那行状态码是 403。
第三步:看抓取节奏和并发
真蜘蛛通常按自己的队列节奏抓,短时间内不会对同一 IP 疯狂并发。如果某个“蜘蛛”在几秒内请求了几百个页面,路径又集中在文章列表、下载页,基本可以判定是采集器。反过来,如果一天只有零星一两次请求,说明入口页对蜘蛛的吸引力有限,需要回头看入口页的可发现性,以及站点自身的抓取预算情况。
三、把日志结论转成可执行动作
- 真蜘蛛抓入口页却不抓目标 URL:检查链接是否可点、是否在首屏 HTML 里、是否被 nofollow 或 JS 渲染挡住。
- 真蜘蛛连入口页都很少来:看入口页本身是否被索引、是否有外部链接指向、是否被 robots 或 noindex 挡住。
- 大量 429 或 403:先调 WAF 白名单和限速规则,再谈抓取量。
- 大量伪装蜘蛛:不影响收录判断,但会消耗带宽,可以按 IP 段做限流。
日志只说明“发生过什么”,不保证“接下来会收录什么”。蜘蛛来过、抓过,只是把 URL 放进了候选队列,最终是否收录还取决于页面本身的质量和站点整体情况。
养成按周对比日志的习惯:真蜘蛛的请求次数、目标 URL 的命中次数、状态码分布,三条曲线放在一起看,比单看某一天的总请求量有用得多。