打開一個 URL,浏览器里顯示“没有找到相關内容”,或者只剩下導航和頁脚,但服務器返回的狀態碼是 200。這類頁面就是通常说的软 404。它比真正的 404 更麻烦:真正的 404 是明确的“這里没有東西”,软 404 却在告诉搜尋引擎“這是一個正常頁面”。
软 404 常见的几種来源
- 商品或文章下架,頁面模板還在,正文位置空了。
- 篩選條件组合後没有结果,列表頁只剩下一個空容器。
- 分頁參數超出范围,比如第 200 頁實际上並不存在。
- 站内搜尋结果頁,關鍵詞没有匹配到任何條目。
- URL 被手工改動或參數失效,頁面兜底到一套通用模板。
這些頁面的共同点是:HTTP 狀態碼是 200,模板、導航、頁脚都在,唯獨缺少這個 URL 本该提供的正文内容。
為什么它會干扰收錄
搜尋引擎判断一個 URL 是否值得進索引,先看能不能抓到,再看抓到的是什么。软 404 在這两步都“過關”了:抓得到,狀態碼正常。于是它可能被当成普通頁面處理,進入索引或者長期留在抓取队列里。
由此产生的直接影响有這几個:
- 占用抓取額度:蜘蛛把時間花在空頁面上,真正需要更新的頁面被往後排。
- 索引里出現空壳:這類 URL 即使被收錄,也很难带来訪問,還會拉低整站頁面的平均质量观感。
- 相似内容堆积:大量空结果頁往往共用同一套模板,正文几乎一模一样,是典型的重复内容来源。
相比之下,返回 404 的頁面會被明确标记為不存在,通常更快登出索引。软 404 因為缺少這個信号,處理周期往往更長。
怎么判断一個頁面是不是软 404
不能只看浏览器里顯示的文案,建议结合抓取工具和服務器日誌一起看:
- 看 HTTP 狀態碼,是不是 200。
- 看正文長度,去掉導航、頁脚、推荐位之後還剩多少。
- 看頁面标题和 H1,是不是和真實内容對得上,還是只剩一個模板标题。
- 在站内搜同一個關鍵詞,比較有结果和無结果的頁面,差別是否只在正文区域。
處理顺序:先让狀態碼和事實一致
核心原則可以概括成一句话:這個 URL 到底有没有内容,狀態碼就應当說明什么。
- 确實不存在的頁面:返回 404;如果是永久下架且不會重新上线,410 也是可用的信号。
- 下架但已有替代品:用 301 指向最接近的同類頁面,注意不要把所有下架頁一律指到首頁。
- 篩選、排序、分頁參數越界:越界时返回 404,正常范围内保留,並對參數组合做收敛。
- 站内搜尋结果頁:一般不建议让它們進入索引,可以用 robots 限制抓取或加 noindex。
- 有意义的空狀態頁:比如“该分類暂时没有商品”,如果确實有導航價值和後續内容,可以保留,但要补充相關推荐、分類入口等真實内容。
不要把 noindex 当成萬能补丁。noindex 需要蜘蛛能抓到頁面才讀得到;如果同时用 robots.txt 屏蔽了抓取,蜘蛛讀不到 noindex,頁面反而可能以別的形式留在索引里。
處理之後要观察什么
改完狀態碼不等于索引马上更新。可以固定一份抽样清單,把曾经返回 200 的空頁面列進去,隔一段時間复核:狀態碼是否已经變化、是否還在被抓取、搜尋结果中是否仍能查到。如果數量很大,優先處理被抓取频率最高的那一批,收益更直接。
软 404 的排查本质上不是“删頁面”,而是让 URL 的狀態如實反映内容狀態。這件事做干净了,抓取和索引才有机會把资源用在真正有價值的頁面上。