抓取不稳,收录会先给出哪些信号
抓取是收录的前置环节。蜘蛛来不了、来得少、来了只抓首页,后面的索引和展示都无从谈起。当抓取变得时断时续,通常不会立刻表现为收录量下跌,而是先出现一些更隐蔽的信号:新发布的页面长时间停在“已发现”,老页面改了内容却迟迟不重新抓取,日志里同一批 URL 反复出现但抓取深度明显变浅,或者只在固定时段能见到蜘蛛。
遇到这些现象,先别急着改标题、堆内容,按“蜘蛛有没有被挡”这条线排查,往往更快定位问题。
第一步:确认蜘蛛是否被拦截
服务器日志是最直接的证据。重点看三类信息:
- 状态码分布:403、429、503 是否集中出现在蜘蛛请求上。偶尔几次属正常,成片出现就要查。
- 请求频率与间隔:是否每次抓取几屏就被掐断,过一会再来。
- 边缘与回源是否一致:CDN 日志显示 200,回源日志却查不到对应请求,说明被边缘节点拦下了。
常见的几个拦截位置
- WAF 的人机校验:部分防护策略会对没有浏览器特征的请求下发 JS 挑战,蜘蛛拿不到完整页面。
- UA 黑名单:为了挡采集,把含“bot”“spider”字样的请求一律拒绝,容易误伤正规蜘蛛。
- 地区与 IP 封禁:蜘蛛出口 IP 不在放行范围,直接被挡在门外。
- 限速过低:单 IP 每秒只允许一两个请求,抓取稍密就返回 429。
第二步:分清全站被挡还是局部被挡
范围不同,处理方式也不同。
- 全站被挡:所有路径都看不到蜘蛛,或全部返回 4xx/5xx。优先看 CDN、防火墙、机房层面的策略,以及近期是否有改版、换服务商、上防护的动作。
- 局部被挡:只有某些目录、某些参数或某些时段异常。多半是规则写得过细,比如按路径关键词拦截,或对带参数的 URL 单独限流。
- 看似被挡其实是抓取配额:蜘蛛正常来访但集中在高权重页面,新页面排不上队。这类问题不在防护,而在站内结构和内链。
第三步:放开之后按顺序观察
解封不代表立刻恢复,抓取和收录都有滞后。建议按下面的顺序看,不要一天内反复调整:
- 先确认日志里蜘蛛请求稳定返回 200,且能拿到完整 HTML。
- 再看已发现未抓取的队列是否开始消化。
- 然后观察重点页面的抓取频次和深度是否回到正常水平。
- 最后才是索引和展示层面的变化,这一步通常最慢。
容易踩的几个坑
- 只放行 UA,不校验来源 IP。UA 可以伪造,真正的蜘蛛有公开的 IP 段可核对。
- 为了图省事直接关掉整个 WAF,结果采集和攻击一起进来。
- 放行规则只加在 CDN,忘了回源侧还有一层。
- 测试时用自己的浏览器打开正常,就认为蜘蛛也正常,忽略了两者的请求特征差异。
提醒:抓取恢复只是把入口打开,页面能否被收录,最终还要看内容本身是否值得收录。防护策略解决的是“能不能进来”,解决不了“进来之后要不要留”。
小结
抓取异常时,排查顺序建议是:日志确认现象、定位拦截层级、缩小影响范围、放开后按抓取与索引的顺序观察。把这几步做扎实,比反复改动页面更有效。