网站收录

蜘蛛抓取时断时续:CDN、防火墙与回源日志的核对顺序

抓取时断时续时,收录往往先出现隐蔽信号:新页面长时间停在已发现、老页面改了却不重新抓取。本文按日志确认、拦截定位、范围缩小、放开后观察的顺序,梳理 CDN、防火墙与回源环节的核对方法,帮助站点先把抓取入口理顺。

网站收录

蜘蛛抓取时断时续:CDN、防火墙与回源日志的核对顺序

抓取不稳,收录会先给出哪些信号

抓取是收录的前置环节。蜘蛛来不了、来得少、来了只抓首页,后面的索引和展示都无从谈起。当抓取变得时断时续,通常不会立刻表现为收录量下跌,而是先出现一些更隐蔽的信号:新发布的页面长时间停在“已发现”,老页面改了内容却迟迟不重新抓取,日志里同一批 URL 反复出现但抓取深度明显变浅,或者只在固定时段能见到蜘蛛。

遇到这些现象,先别急着改标题、堆内容,按“蜘蛛有没有被挡”这条线排查,往往更快定位问题。

第一步:确认蜘蛛是否被拦截

服务器日志是最直接的证据。重点看三类信息:

  • 状态码分布:403、429、503 是否集中出现在蜘蛛请求上。偶尔几次属正常,成片出现就要查。
  • 请求频率与间隔:是否每次抓取几屏就被掐断,过一会再来。
  • 边缘与回源是否一致:CDN 日志显示 200,回源日志却查不到对应请求,说明被边缘节点拦下了。

常见的几个拦截位置

  • WAF 的人机校验:部分防护策略会对没有浏览器特征的请求下发 JS 挑战,蜘蛛拿不到完整页面。
  • UA 黑名单:为了挡采集,把含“bot”“spider”字样的请求一律拒绝,容易误伤正规蜘蛛。
  • 地区与 IP 封禁:蜘蛛出口 IP 不在放行范围,直接被挡在门外。
  • 限速过低:单 IP 每秒只允许一两个请求,抓取稍密就返回 429。

第二步:分清全站被挡还是局部被挡

范围不同,处理方式也不同。

  • 全站被挡:所有路径都看不到蜘蛛,或全部返回 4xx/5xx。优先看 CDN、防火墙、机房层面的策略,以及近期是否有改版、换服务商、上防护的动作。
  • 局部被挡:只有某些目录、某些参数或某些时段异常。多半是规则写得过细,比如按路径关键词拦截,或对带参数的 URL 单独限流。
  • 看似被挡其实是抓取配额:蜘蛛正常来访但集中在高权重页面,新页面排不上队。这类问题不在防护,而在站内结构和内链。

第三步:放开之后按顺序观察

解封不代表立刻恢复,抓取和收录都有滞后。建议按下面的顺序看,不要一天内反复调整:

  1. 先确认日志里蜘蛛请求稳定返回 200,且能拿到完整 HTML。
  2. 再看已发现未抓取的队列是否开始消化。
  3. 然后观察重点页面的抓取频次和深度是否回到正常水平。
  4. 最后才是索引和展示层面的变化,这一步通常最慢。

容易踩的几个坑

  • 只放行 UA,不校验来源 IP。UA 可以伪造,真正的蜘蛛有公开的 IP 段可核对。
  • 为了图省事直接关掉整个 WAF,结果采集和攻击一起进来。
  • 放行规则只加在 CDN,忘了回源侧还有一层。
  • 测试时用自己的浏览器打开正常,就认为蜘蛛也正常,忽略了两者的请求特征差异。
提醒:抓取恢复只是把入口打开,页面能否被收录,最终还要看内容本身是否值得收录。防护策略解决的是“能不能进来”,解决不了“进来之后要不要留”。

小结

抓取异常时,排查顺序建议是:日志确认现象、定位拦截层级、缩小影响范围、放开后按抓取与索引的顺序观察。把这几步做扎实,比反复改动页面更有效。