排查收錄問题时,很多人第一反應是“頁面质量不行”。但在质量之前,還有一道更基础的關卡:蜘蛛能不能稳定地把頁面抓下来。抓取失敗和“抓到了但不收錄”是两件事,前者属于服務端和網絡层的問题,後者才轮到内容和结构。
抓取失敗不等于不收錄,但失敗太多就没得谈
一次抓取失敗,通常不會立刻让頁面掉出索引。搜尋引擎手里往往還有上一次抓到的版本,頁面照舊能參與展示,只是信息可能偏舊。真正麻烦的是持續失敗:蜘蛛每次来都拿不到内容,久而久之它會降低来你站的频率,新頁面發現得慢,老頁面更新也同步不上。
所以判断标准不是“有没有失敗”,而是“失敗的比例和是否集中在同一批 URL 上”。
常见的几類失敗,成因完全不同
连接超时與连接被重置
表現為蜘蛛發起請求後迟迟没有响應,或者连接刚建立就被中断。常见原因包括服務器负载過高、資料库慢查询拖住响應、防火墙或 WAF 主動断開、CDN 回源超时。這類問题在流量高峰时段往往更明顯,日誌里會呈現為同一時間段大批 URL 一起失敗。
5xx 服務端错誤
500、502、503、504 都属于站点侧的問题。502、504 多與反向代理、後端進程挂掉或超时有關;503 則是明确告诉蜘蛛“現在不可用”,如果带上 Retry-After,反而是一種相對友好的表達。需要注意的是,短時間大量 5xx 會被视為站点不稳定,即使後来恢复了,抓取频率的回升也需要一段時間。
429 與频率限制
429 表示請求過多。它多半来自你自己配置的限流規則,或者某些安全插件把蜘蛛当成了異常流量。如果蜘蛛被限流,抓取量會明顯下降,表現是“日誌里蜘蛛變少了”而不是“报错變多了”。
403、401 與其他 4xx
403 通常是權限被拒,可能来自 IP 黑名單、UA 拦截、需要登入的頁面被誤開放了入口。401 則說明頁面需要認證。這两種狀態對蜘蛛来说都是“這個地址我進不去”,長期如此,该 URL 會逐步從抓取队列里淡出。
同样是抓取失敗,5xx 是“暂时不行”,403 是“你不行”,429 是“慢一点”。蜘蛛對這三者的理解不一样,你的處理方式也不该一样。
偶發失敗可以观察,持續失敗必须處理
如果日誌里只有零星的超时,且分散在不同時間、不同 URL 上,一般属于正常波動,先记錄、观察一周再说。但出現下面几種情况,就值得立刻動手:
- 同一批 URL 连續多天都是失敗狀態;
- 失敗集中在某個目錄、某個栏目或某個後端服務上;
- 失敗集中在固定時間段,比如每天凌晨的备份窗口;
- 蜘蛛整体訪問量明顯下降,但站点没有其他改動。
從日誌判断时,先看三件事
- 狀態碼分布:2xx、3xx、4xx、5xx 各占多少,5xx 是否超過一個很小的比例。
- 响應時間:把耗时超過几秒的請求單獨拉出来,看是哪些 URL、是否集中在動態接口或搜尋结果頁。
- 失敗 URL 的類型:是内容頁、列表頁,還是站内搜尋、參數頁這類本就低價值的地址。後者失敗未必需要抢救。
修复顺序:先让服務器稳住,再谈抓取
抓取問题的修复顺序大致是固定的:先解决服務端稳定性和响應速度,再確認安全策略没有誤伤蜘蛛,然後才是提交和观察。
- 检查後端慢查询、缓存命中率和進程數量,優先把响應時間压下来;
- 確認 WAF、防火墙、限流規則對已知蜘蛛 UA 和 IP 段没有拦截;
- 把暂时不可用的頁面返回 503 而不是 404,避免被当成已刪除;
- 修好之後,用日誌观察一到两周,確認失敗率下降、抓取量回升,再判断收錄變化。
最後提醒一句:抓取恢复正常只是让頁面重新有了被收錄的机會,最终是否進索引,仍然取决于内容本身和站点整体质量。抓取是门槛,不是结果。