很多站点在做狀態碼监控时只盯着“有没有报错”,只要没出現 404、500 就認為一切正常。但有一類頁面,狀態碼是 200,内容却几乎為空——這類頁面通常被称為软 404。它不會触發服務器告警,却會實實在在影响搜尋引擎對整站质量的判断。
软 404 和真 404 差在哪
真 404 是服務器明确告诉蜘蛛:這個地址没有對應内容。软 404 則是地址可以正常訪問、返回 200,但頁面主体没有實质内容,可能只剩導航、頁脚和一句“暂無資料”,也可能是被模板撑起来的空壳。
對蜘蛛来说,這两者的處理逻辑完全不同。返回 404 的 URL 會被逐步清理出索引;返回 200 的空頁面則會被当成一個正常可訪問的地址對待,需要繼續抓取、繼續评估。
常见的软 404 形態
- 商品或内容已下架,頁面只剩一句“该内容不存在”,狀態碼仍是 200。
- 篩選组合没有结果,頁面返回空列表,而不是提示無匹配資料。
- 分頁超出實际范围,第 999 頁照常返回 200 和一個空白列表。
- 登入或權限狀態失效後,统一跳到一個通用提示頁,狀態碼没有變化。
- URL 里的 ID 被改動後,程序做了容错處理,返回一個通用模板頁而不是报错。
為什么它會影响收錄
一個站点每天能被抓取的次數是有限的。当大量空壳 URL 返回 200,它們就會被视為“有效頁面”反复進入抓取队列,真正有内容的頁面能分到的抓取机會相應减少。這就是抓取资源被稀释的典型场景。
另一個影响是頁面质量判断。搜尋引擎在评估站点时,會看整体頁面的内容厚度和獨特性。如果站内相当比例的 URL 都是同一套模板加一句提示语,這些頁面彼此高度相似,又不提供任何信息,整站的质量信号就會被拉低。
還有一层是索引层面。空壳頁即使被收錄,用戶在搜尋结果里点進去也看不到東西,這類頁面往往拿不到展現,長期来看對站点没有正向作用。
怎么排查這些頁面
- 抽样检查狀態碼分布。不要只看首頁和栏目頁,重点抽查带參數的列表頁、詳情頁尾部、分頁末頁。
- 對比正文文本。抓取頁面後提取正文,統計字數。同样是 200 的頁面,正文只有几十個字且内容雷同的,基本可以判定為软 404。
- 看抓取日誌。如果某些 URL 结构被蜘蛛频繁訪問,但這類頁面始终没有带来任何搜尋流量,值得單獨拉出来核對。
- 核對參數组合。把篩選、排序、分頁參數穷举一遍,看看哪些组合會产出空结果,這些就是软 404 的高發区。
不同情况下的處理原則
- 内容永久不存在:直接返回 404 或 410,让蜘蛛明确知道该地址已废弃。這比一直返回 200 更清晰。
- 有明确的替代内容:用 301 指向最相關的新頁面,而不是统一跳轉到首頁。批量跳首頁容易被判定為软 404 的變体。
- 内容暂时缺失但會恢复:保留 URL,但頁面上要有說明和推荐内容,避免只剩一句空白提示。
- 空结果頁無法避免:至少让頁面承载一些有效信息,比如篩選條件說明、相關推荐,或者對這類组合頁统一加上 noindex。
- 分頁/篩選參數:超出范围的分頁可以考虑返回 404,或者用參數层面的規則在 robots.txt 中限制抓取,减少無意义的訪問。
软 404 的麻烦之處在于它不吵不闹。服務器日誌里全是一片 200,监控面板上一片绿色,問题却藏在内容里。定期做一次正文层面的抽样,比只看狀態碼更能發現問题。
判断一個頁面该不该存在,标准不是“它能不能打開”,而是“它打開之後有没有值得用戶看的内容”。