搜尋抓取

蜘蛛抓取量下滑时的排查顺序:從服務器到頁面逐层確認

蜘蛛来訪量突然下降,不一定是被惩罚。本文按服務器可達性、robots.txt、响應碼與重定向、URL 發現入口、頁面級信号、内容更新节奏六個层面给出排查顺序,並說明该记錄哪些對照資料,帮你把模糊的抓取波動定位到具体环节。

搜尋抓取

蜘蛛抓取量下滑时的排查顺序:從服務器到頁面逐层確認

先分清是整体下滑還是局部下滑

抓取量下降时,第一件事不是改 robots.txt,也不是马上調整 URL 结构,而是把最近一段時間的訪問資料按目錄、按頁面模板拆開看。是整站所有 URL 都不再被訪問,還是只有某個栏目、某類模板生成的頁面没動静?前者通常指向服務器或站点級配置,後者更可能是模板、内鏈或頁面級指令的問题。方向不同,排查顺序完全不同。

第一层:服務器與網絡是否可達

蜘蛛訪問不到,後面所有环节都無從谈起。這一层要確認的是:

  • DNS 是否正常解析,有没有換過解析记錄後未生效;
  • TLS 證书是否過期,過期後抓取會直接中断;
  • 防火墙或安全策略是否誤封了大量請求,尤其是来自同一網段的訪問;
  • 源站或 CDN 是否在特定時間段集中返回 5xx。

這一层的問题往往表現為整站突然安静,而不是某個栏目消失。

第二层:robots.txt 與全站級响應头

robots.txt 被誤改、被缓存,或本身返回 5xx,都會让抓取节奏出現異常。检查时重点看三件事:Disallow 規則是否被動過;是否誤用了通配符把整站挡掉;文件本身是否稳定返回 200。此外,別忘了检查通過响應头下發的 X-Robots-Tag,一個配置错誤的模板可能让整批頁面带上 noindex 類指令。

第三层:响應碼與重定向

服務器不稳定时,同一批 URL 可能在 200 和 503 之間反复。遇到持續失敗,蜘蛛會主動降低来訪频率,這是自我保護,不必理解成惩罚。需要關注:

  • 5xx 與超时的比例是否在上升;
  • 重定向鏈是否越拉越長,一次跳轉變成了三跳;
  • 是否出現了大批软 404 —— 頁面返回 200,内容却是“没有找到”。

第四层:URL 發現入口是否還通

抓取量的變化,很多时候不是抓取被挡住,而是新 URL 不再被發現。按入口逐個確認:

  • Sitemap 能否正常訪問,里面是否是目前有效的 URL,lastmod 有没有跟着更新;
  • 列表頁、栏目頁的内鏈是否還指向有效地址,有没有因為改版被替換成 JS 生成的空連結;
  • 分頁是否被截断,翻到第二頁之後就没有下一跳;
  • 如果有主動推送或更新订阅,接口是否還在正常返回。

第五层:頁面級信号

到了單頁层,問题通常更集中:canonical 指向了別的地址、頁面被 noindex、模板报错輸出空白 HTML、JS 渲染失敗導致正文和連結都為空。這几類問题不會让整站抓取量骤降,但會让某個栏目長期處于有訪問、無進展的狀態。

第六层:内容與更新节奏

如果全站几個月没有新增内容,現有頁面的内容也没有變化,重訪频率自然回落,這属于正常現象,不必当成故障處理。反之,如果内容在稳定更新但蜘蛛迟迟不来,就要回到前五层繼續核對。

排查时值得记錄的几項資料

  1. 改動前後同一時間窗口的抓取次數,作為對照基线;
  2. 各响應碼的占比變化;
  3. Sitemap 中 URL 數量與實际被抓取 URL 數量的差距;
  4. 每次配置改動的時間点,方便回溯是哪一步引入了變化。
抓取量波動本身不是問题,無法解释的波動才是。把每次改動和對應資料记錄下来,比事後猜测配置出了什么問题要可靠得多。

整体思路是:從外到内、從站点級到頁面級逐层確認,每確認一层再往下走。顺序對了,绝大多數抓取異常都能定位到一個具体环节,而不是停留在“蜘蛛不来了”這種無從下手的判断上。