蜘蛛判断一個 URL 是否值得反复抓取,主要依據响應狀態碼和頁面内容。当站点把“已下架”“無结果”“參數错誤”這類頁面统一用 HTTP 200 返回时,蜘蛛會把它当成正常内容頁,繼續投入抓取配額,而這類頁面几乎不會带来有效入口。這種情况通常被称為软 404。
软 404 對抓取的直接影响
软 404 不會让蜘蛛立刻放弃某個目錄,但它會稀释入口质量:日誌里 200 狀態碼占比很高,實际有内容的頁面比例却很低;蜘蛛在同一批模板化空頁之間来回抓取,新頁面被發現的時間被拉長。判断时不要只看狀態碼分布,還要把响應体积和正文特征一起看。
從抓取日誌识別软 404 的信号
- 狀態碼為 200,但响應体积集中在一個很小的区間,且模板高度一致;
- 大量 URL 的正文差异极小,主要差別只在标题或篩選條件上;
- 同一路径下的 URL 被反复抓取,却没有新的内鏈或外鏈指向它們。
常见的软 404 来源
- 篩選、排序、分頁參數超出有效范围後仍返回 200 的列表頁;
- 站内搜尋無结果頁;
- 已下架商品、已刪除文章但没有做跳轉或狀態碼處理的詳情頁;
- 栏目為空时仍可正常訪問的聚合頁。
按頁面類型選擇返回方式
處理原則是让狀態碼與頁面的真實含义一致,而不是一律 200 或一律 404。
- 内容永久移除且没有替代頁:返回 404 或 410,並清理站内指向它的連結;
- 内容迁移到新地址:使用 301 指向新 URL,同时避免跳轉鏈過長;
- 參數组合無效但仍需保留形式的頁面:返回 404 或 410,或規范到有效 URL;
- 站内搜尋無结果頁:可返回 404,或保留頁面但避免被大量内鏈暴露;
- 临时维護:返回 503 並配合 Retry-After,不要用 200 加“稍後再试”文案。
排查顺序建议
- 先從日誌中筛出狀態碼 200、响應体积偏小的 URL 段;
- 抽样查看這些頁面的正文,確認是否為模板化空頁;
- 回到代碼或 CMS,確認這些頁面的狀態碼由哪一层决定;
- 調整後观察该 URL 段的抓取频次與狀態碼分布變化;
- 同步清理站内指向無效頁的連結,避免入口繼續扩散。
把無效頁返回正确的狀態碼,通常比新增一批内鏈更能改善抓取效率,但它不會立刻改變已经抓取的 URL 的處理结果,需要持續观察日誌。
软 404 的本质是狀態碼與内容语义不一致。定期抽样核對 200 頁面的正文质量,並让無效頁返回符合實际的狀態碼,有助于让蜘蛛把抓取配額更多放在有效頁面上。