網站收錄

服務器超时和 5xx 變多:抓取失敗的连鎖反應與恢复顺序

服務器偶發超时、5xx,短期看不出問题,長期會拖慢新頁面發現和索引更新。本文区分抓取失敗與收錄的關系,给出日誌里该看的几组指标、按层次的排查顺序,以及恢复期哪些動作该做、哪些別做。

網站收錄

服務器超时和 5xx 變多:抓取失敗的连鎖反應與恢复顺序

抓取失敗和收錄是两件事,但會互相牵连

搜尋引擎處理一個 URL,大致分两步:先抓取,再判断是否值得進索引。抓取失敗發生在第一步,單次失敗通常没有後果,爬虫下次還會来。麻烦在于失敗變成常態:某個目錄下的地址反复超时或返回 5xx,爬虫會降低訪問频率,新頁面被發現的間隔被拉長,已经收錄的頁面也可能因為拿不到最新版本而停在舊快照。

抓取是入口,收錄是结果。入口偶尔堵一次,结果不會立刻變;持續堵,结果就會慢慢變差。

抓取失敗拖慢收錄的三種表現

  • 新頁面發現變慢:sitemap 提交了,日誌里也见到爬虫,但請求反复超时或返回 5xx,URL 一直停在「已發現」狀態。
  • 索引更新滞後:内容改過之後,搜尋结果里長期顯示舊标题、舊摘要,因為爬虫没取到新版 HTML。
  • 抓取量被浪費:同一批地址被反复重试,真正需要抓的頁面反而排在後面,配額没變,有效产出變少。

日誌里先確認這几组數字

不要只看「今天蜘蛛来了多少次」。按小时或按天統計下面几項,趋势比單日绝對值更有參考價值:

  1. 狀態碼分布:2xx、3xx、4xx、5xx 各自的占比,5xx 長期偏高就值得看一眼。
  2. 响應時間分位:平均值容易被少數快請求拉低,重点看 90 分位和超时次數。
  3. 失敗集中在哪類 URL:是某個栏目、某種參數组合,還是全站随机出現。
  4. 抓取總量趋势:如果總量在下降、失敗率在上升,說明問题已经影响到爬虫的訪問意愿。

按這個顺序排查

  1. 先確認监控和日誌是否同源。有些「5xx」来自 CDN 或负载均衡层,源站日誌里根本没有這條請求。
  2. 判断是應用层還是資料层。慢查询和连接池耗尽,往往表現為大面积 504,而不是明确的报错。
  3. 看是否只有爬虫触發的路径慢,比如带參數的篩選頁、站内搜尋、需要實时計算的列表頁。
  4. 检查反爬和限流規則是否誤伤,频率限制、UA 判断、IP 封禁都可能让爬虫拿到 403 或空响應。
  5. 最後才考虑服務器規格。多數「扛不住」的情况,真正原因是某個頁面没做缓存或某個查询没加索引。

恢复期做什么、不做什么

問题修好後不必急着加動作,爬虫的訪問频率通常會自己回升,時間從几天到几周不等,取决于站点規模和過去的稳定程度。可以做的:

  • 把确實需要收錄的 URL 重新整理進 sitemap,去掉已经下线的地址。
  • 確認重要頁面現在返回 200,並且服務端返回的 HTML 里就有正文内容。
  • 用抓取工具模拟一次請求,確認狀態碼和响應時間正常。

不建议做的:因為着急收錄而临时放開大量本不该收錄的頁面,或者用 noindex、robots.txt 遮挡来「减轻压力」。這些手段會改變站点的收錄结构,恢复起来比修服務器麻烦得多。

观察窗口要给足

修复後至少观察一到两周再下结论。單日資料波動說明不了什么,要看的是失敗率是否回落、抓取總量是否回升、新頁面是否開始進入索引。三者方向一致,才說明這次調整确實生效了。