抓取日志里连续几天出现超时、5xx,或者抓取次数干脆掉了一半,很多人的第一反应是“是不是被降权了”。更常见的情况是:蜘蛛来的时候你的服务器没能正常响应,它只能把手里有限的额度挪到别处。收录变慢通常只是这个结果的外在表现。
处理这类问题,顺序比技巧重要。先分清错误类型和发生时间,再决定是从服务器动手,还是从抓取策略动手。
一、先看时间分布,判断是偶发还是持续
把日志按小时或按天拉出来,看错误是集中在某个时段,还是全天零散出现。
- 只出现在某几个小时:先想那个时间段做了什么——数据备份、批量生成、定时任务、压测。
- 全天零散出现:可能是某台机器或某个接口慢,也可能是 CDN 回源不稳定。
- 从某一天突然开始:对比那天前后的发布、改版、防火墙规则调整。
偶发错误不必紧张,搜索引擎自己会重试。持续几天以上的错误,才需要当成问题去处理。
二、按错误类型分开看,不要混在一起
5xx 服务端错误
这是最需要优先处理的。蜘蛛看到 5xx,等价于“这个页面现在不能用”,抓取会退避,反复几次后抓取频次就会降下来。常见来源包括数据库连接池打满、PHP-FPM 排队、缓存穿透,以及某个插件在蜘蛛来访时触发了重查询。
超时与连接重置
日志里表现为抓取耗时很长,或者请求中途中断。要区分是页面本身慢,还是整条网络链路有问题。可以拿一个静态文件做对照:如果静态文件也慢,问题多半在出口带宽、CDN 或防火墙,而不是页面代码。
403、429 与频控拦截
不少站点上了 WAF 或安全插件,默认规则会把高频访问直接挡掉。蜘蛛的访问特征比较集中,很容易误伤。检查方式很直接:在防火墙日志里搜搜索引擎的 UA 和 IP 段,看有没有被规则命中。
同一段时间里,服务器看到的“异常访问”和蜘蛛看到的“被拒绝”,很可能是同一件事。
三、服务器侧常被忽略的几个点
- 首页和列表页的查询太重。它们被抓取最频繁,一旦慢,整站抓取都会受影响。
- 日志本身在拖后腿。全量写日志、实时分析,在高频抓取下会明显增加负担。
- 图片和静态资源没走 CDN,蜘蛛抓页面时顺带拉资源,占用了同一份带宽。
- Sitemap 每次现算或体积过大,蜘蛛一来就触发一次重查询。
四、服务器稳定之后,再谈抓取额度
抓取恢复正常后,如果站点页面数量多,还是要把额度用在关键页面上。
- 把参数页、筛选页、搜索结果页通过 robots.txt 或 noindex 收敛掉,别让它们持续消耗抓取。
- Sitemap 只放希望被收录的 URL,不要把全站所有变体都塞进去。
- 内链优先指向核心页面,让蜘蛛顺着链接走进来,而不是靠穷举发现。
- 确定不要的页面返回 404 或 410,比一直返回 200 更省抓取。
五、恢复之后先看什么
不要只盯收录量这一个指标。先看抓取成功率是否回到正常水平,再看抓取频次有没有回升,最后才是索引量的变化。这三个指标通常按这个顺序恢复,急着看最后一个容易误判。
如果服务器已经稳定、抓取成功率也正常,收录仍然长时间不动,那问题多半不在抓取环节,需要回到页面质量和重复内容上重新排查。