抓取不稳,收錄會先给出哪些信号
抓取是收錄的前置环节。蜘蛛来不了、来得少、来了只抓首頁,後面的索引和展示都無從谈起。当抓取變得时断时續,通常不會立刻表現為收錄量下跌,而是先出現一些更隐蔽的信号:新發布的頁面長時間停在“已發現”,老頁面改了内容却迟迟不重新抓取,日誌里同一批 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,忘了回源侧還有一层。
- 測試时用自己的浏览器打開正常,就認為蜘蛛也正常,忽略了两者的請求特征差异。
提醒:抓取恢复只是把入口打開,頁面能否被收錄,最终還要看内容本身是否值得收錄。防護策略解决的是“能不能進来”,解决不了“進来之後要不要留”。
小结
抓取異常时,排查顺序建议是:日誌確認現象、定位拦截层級、缩小影响范围、放開後按抓取與索引的顺序观察。把這几步做扎實,比反复改動頁面更有效。