網站收錄

蜘蛛抓取时断时續: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,忘了回源侧還有一层。
  • 測試时用自己的浏览器打開正常,就認為蜘蛛也正常,忽略了两者的請求特征差异。
提醒:抓取恢复只是把入口打開,頁面能否被收錄,最终還要看内容本身是否值得收錄。防護策略解决的是“能不能進来”,解决不了“進来之後要不要留”。

小结

抓取異常时,排查顺序建议是:日誌確認現象、定位拦截层級、缩小影响范围、放開後按抓取與索引的顺序观察。把這几步做扎實,比反复改動頁面更有效。