搜尋抓取

返回 200 的空頁面:软 404 怎么让蜘蛛白跑一趟

頁面返回 200,正文却已经空了,這就是软 404。本文說明软 404 與普通 404 的区別、常见的产生场景(下架商品、無结果的搜尋頁、零结果篩選頁),以及如何结合日誌和模板排查,並给出對應的修复方向,减少蜘蛛在空頁面上的無效抓取。

搜尋抓取

返回 200 的空頁面:软 404 怎么让蜘蛛白跑一趟

有些頁面抓取时返回 200,狀態碼正常,服務器也没报错,但蜘蛛打開之後發現里面没有實质内容:商品下架了、搜尋结果為空、活動結束了、列表筛完一個都没有。這種「地址還在、内容没了」的情况,通常被称為软 404。

软 404 和普通 404 差在哪

普通 404 是明确的信号:這個地址没有對應内容,蜘蛛會记錄下来,逐渐减少甚至停止回訪。软 404 則是把同样的「没有内容」包装成了一個成功的响應,蜘蛛拿到的是 200,只能自己判断這個頁面值不值得留。

哪些頁面最容易變成软 404

  • 下架商品、過期活動頁:URL 保留,模板還在,只是主内容被清空或替換成「已結束」。
  • 站内搜尋结果頁:關鍵詞無结果时,頁面只剩搜尋框和「没有找到相關内容」。
  • 多條件篩選頁:參數组合出大量结果為零的列表,每個组合都是一個可訪問的 URL。
  • 空分類、空标簽、空作者頁:栏目建了但一直没内容。
  • 需要登入或特定權限才能看到正文的頁面:蜘蛛拿到的是空壳。

蜘蛛遇到软 404 之後的几種反應

不同搜尋引擎的處理不完全一样,但常见的结果有這几種:一是判断為低质量頁面,降低同類頁面的抓取频率;二是繼續按正常頁面回訪,持續消耗抓取预算;三是把頁面從索引里移除,但過程比明确的 404 慢很多;四是如果這類頁面占比很高,可能影响蜘蛛對整站内容质量的判断。

软 404 的問题不在于蜘蛛看不懂,而在于它需要花額外時間来判断,而這部分時間本来可以用在有内容的頁面上。

怎么找出站点里的软 404

可以结合服務器日誌和頁面模板一起看,重点盯這几類:

  1. 日誌里長期有抓取、但标题或正文高度重复的 200 頁面。
  2. 站内搜尋、篩選、排序參數生成的 URL,尤其是带多個參數的组合。
  3. 返回 200 但正文長度明顯偏短,或主体内容由前端异步填充、初始為空容器的頁面。
  4. 已下架、已結束、已归档但仍可訪問的歷史 URL。

處理思路

先判断這個 URL 以後還會不會有内容,再决定怎么處理:

  • 确定不會再更新:返回 404 或 410,让蜘蛛知道這是终点,而不是让它一直来。有替代頁面的,用 301 指過去。
  • 暂时無内容但會恢复:保留 200,但避免把「暂無内容」当成正文主体,同时別让它進入 Sitemap。
  • 搜尋结果頁和篩選頁:一般不建议让它們被索引,可以用 robots.txt 收敛抓取范围或加 noindex,但要注意 noindex 需要頁面被抓取到才能生效。
  • 需要登入的内容:考虑對蜘蛛放開可索引的部分,或明确标注受限狀態,別让空壳頁大范围存在。

另外,软 404 常常不是單個頁面的問题,而是模板层面的問题。一個下架模板套在几萬個 URL 上,就等于向蜘蛛批量輸出空頁面。改模板,比一頁一頁删要有效得多。

最後提醒一句:狀態碼是给机器看的,但「有没有内容」是机器自己要判断的。把空頁面伪装成正常頁面,短期看似乎保住了 URL,長期看是在消耗蜘蛛對站点的信任。