網站收錄

返回 200 但頁面是空的:软 404 的判断與收尾處理

返回 200 不等于這個頁面值得收錄。软 404 常见于已下架商品頁、空篩選頁和空分類頁,會占用抓取预算、干扰站点质量信号。本文给出识別软 404 的几個检查点,並按有無替代内容分別說明 301、404、noindex 等處理動作,让狀態碼、頁面内容和收錄意图保持一致。

網站收錄

返回 200 但頁面是空的:软 404 的判断與收尾處理

頁面能打開、狀態碼是 200,不代表它值得被收錄。很多站点的收錄問题,源头不是爬虫不来,而是一批“看起来正常”的 URL 把索引位和抓取预算占掉了——這類頁面通常被叫做软 404。

软 404 是什么

服務器返回 200,但頁面上没有用戶真正想找的内容,或者正文本身就在说“這個東西不存在”。爬虫拿到的是“抓取成功”的信号,于是把它当成一個有效頁面繼續處理,後續的抓取分配和索引判断都會受它影响。

常见的几種形態

  • 已下架的商品頁、過期的活動頁,正文只剩一句“该商品已下架”。
  • 篩選參數组合出空结果,頁面依然是 200,只是列表区域是空的。
  • 分類頁或标簽頁里没有任何條目,模板照常完整渲染。
  • 内鏈寫错導致的空頁,共用模板统一輸出“暂無内容”。
  • 後端異常时仍返回 200,但正文是报错信息或預設框架。

為什么值得處理

單個頁面影响有限,成規模後問题會累积:一是持續消耗抓取预算,让爬虫把時間花在没有内容的 URL 上;二是這些 URL 一旦進入索引,會给站点整体质量判断带来噪音;三是用戶從搜尋结果点進来却得不到答案,体驗上也是實打實的损失。

怎么確認一批 URL 属于软 404

  1. 抽样:從抓取日誌或站点地图里挑出几個可疑模板,人工打開確認正文是否有實质内容。
  2. 對照狀態碼與正文長度:同一模板下,正文明顯偏短的那批優先排查。
  3. 找统一提示语:把“已下架”“暂無内容”“無结果”這類文案当成特征串去批量篩選。
  4. 確認渲染层:如果内容由 JavaScript 加载,要按爬虫视角核對最终 DOM,而不是只看源碼。

處理動作按情况分開

  • 有替代頁面的,例如商品換了型号,301 到最接近的可用頁面。
  • 确實永久没有的,返回 404 或 410,不要用 200 硬撑。
  • 暂时缺内容但以後會补的,可以保留 200,但要確認頁面本身有基础信息,而不是空壳。
  • 參數组合造成的空頁,從入口层面處理:不让内鏈和站点地图收錄,必要时用 robots 規則限制抓取。
  • 站点級的空壳模板,從模板层修改,让空狀態返回正确狀態碼,比事後一條條清更省事。

和 noindex、canonical 的配合

如果頁面有實际用途但不想让它進索引,用 noindex 更明确;如果同一份内容存在多個 URL,先把 canonical 定清楚,再决定空頁的去留。两者不要混用在同一批 URL 上,信号容易互相抵消,最後谁也说不清爬虫听了哪一個。

软 404 的處理重点不是“删掉多少 URL”,而是让狀態碼、頁面内容和你的收錄意图三者保持一致。

收尾检查

  • 處理一段時間後,回看這批 URL 在索引狀態和抓取日誌里的變化。
  • 確認没有把正常頁面誤判成空頁,尤其是内容靠前端异步加载的頁面。
  • 把這類检查固化成模板上线前的一個步骤,成本遠低于事後排查。