網站收錄

服務器响應慢、超时多:抓取和收錄會被拖成什么样

頁面收錄不涨,先別急着改内容。蜘蛛抓取受超时和並發限制,服務器响應慢、5xx 或超时偏多會直接压缩抓取量。本文拆解 TTFB 的影响刻度、不同狀態碼的记帳方式、常见慢因的排查顺序,以及怎么用訪問日誌判断是不是稳定性拖累了抓取與收錄。

網站收錄

服務器响應慢、超时多:抓取和收錄會被拖成什么样

很多人盯着收錄數找原因,最後發現問题不在頁面本身,而在服務器给蜘蛛的那几百毫秒里。抓取是一個有预算、有超时、有並發上限的動作,頁面响應慢,蜘蛛能带走的頁面就少,能進入索引的頁面自然也會少。

蜘蛛抓一個頁面的時間帳

蜘蛛訪問一個 URL,大致要经歷:建立连接、等待首字节(TTFB)、下载响應体、再决定要不要抓頁面里的其他资源。其中對抓取效率影响最大的通常是连接和 TTFB 這两項。TTFB 從 200ms 涨到 1.5s,單次抓取占用的時間可能多出好几倍,而蜘蛛在同一個站点上的並發數和總时長都是有限的。

结果就是:同样的抓取配額,能覆盖的 URL 數量變少。表現往往是重要頁面更新後迟迟不重抓,新頁面要排很久的队才被第一次發現。

多慢算慢:几個可以參考的刻度

  • TTFB 稳定在 500ms 以内:通常不會成為抓取瓶颈。
  • TTFB 長期在 1s 以上:抓取量容易被压住,頁面量大的站点更明顯。
  • 單頁完整响應经常超過 5 到 10 秒:容易踩到蜘蛛的超时阈值,這次抓取基本白跑。
  • 大量請求超时或返回 5xx:除了浪費額度,還可能让蜘蛛主動降低對這個站点的抓取频率。

這些只是经驗刻度,不是标准答案。真正的判断依據,應该是你自己日誌里的响應時間分布和抓取频次變化。

超时和 5xx 會被怎么记帳

超时不等于 404。404 是明确的“這個地址没有内容”,蜘蛛一般會把這條记錄划掉;超时和 5xx 是“這次没拿到,下次再看”,蜘蛛會保留這個 URL 並稍後重试。区別在于,重试同样要消耗抓取額度。

不同狀態碼的差別

  • 503 加 Retry-After:用于計划内维護,明确告诉蜘蛛什么时候再来,相對友好。
  • 500 / 502 / 504:通常是故障信号。持續大量出現时,蜘蛛會判断站点不稳定並放缓抓取。
  • 429:明确的限流响應,蜘蛛一般會退让,但返回 429 的頁面本身也没有真正被抓到。

如果站点确實承受不住抓取压力,用 robots.txt 的 crawl-delay,或在服務端按 UA 限速,都比让請求一個個超时要可控得多。

先排查什么

  • 資料库慢查询:列表頁、詳情頁、搜尋结果頁的查询耗时分開統計,不要只看平均值。
  • 外部依赖:接口調用、CDN 回源、第三方脚本阻塞了首字节輸出。
  • 缓存命中率:缓存穿透或频繁失效,會让每個請求都回到源头重新計算。
  • 抓取高峰是否撞上业務高峰,日誌里的耗时是否同步變長。
  • 是否有頁面在抓取时触發大量關联查询,比如一次拉取几百條推荐内容。

從日誌里怎么確認

把蜘蛛訪問日誌按狀態碼分组,統計一段時間的分布:2xx、3xx、4xx、5xx 各占多少,平均响應時間和 P95 响應時間分別是多少,然後對比同期抓取频次的變化。如果 5xx 或超时比例上升的同时抓取频次下降,基本可以確認是稳定性拖累了抓取。

抓取量下降不一定就是服務器慢,也可能是站内 URL 膨胀、參數泛滥或内鏈结构變化。但服務器指标是最容易量化的一個,值得先排除掉。

別把收錄數当成唯一指标

响應速度改善後,抓取频次往往先回升,收錄數随後才有變化,中間還隔着頁面质量判断和重复内容篩選。把服務器指标、抓取日誌、索引覆盖率放在一起看,比盯着一個數字反复猜要靠谱得多。