站点里最容易被忽略的一類頁面,是“看起来還能打開,但里面什么都没有”的頁面。它們返回 200,蜘蛛會当成正常内容抓走,可用戶和搜尋引擎都拿不到有用信息。這類頁面常被称為软 404。
软 404 長什么样
软 404 不是一種 HTTP 狀態碼,而是一種结果:服務器告诉蜘蛛“這里一切正常”,但頁面實际已经失效、為空或只剩模板。常见来源包括:
- 搜尋结果頁:查询词没有匹配结果,頁面仍然返回 200,只有一句“暂無内容”。
- 商品或内容下架:URL 保留、模板還在,但主体信息被清空。
- 分頁超出范围:站点其實只有 10 頁,第 50 頁却返回一個空白列表。
- 篩選组合無结果:颜色、尺寸、價格條件叠加後没有任何商品。
- 需要登入或權限:未登入用戶看到的只是一段提示。
為什么它會干扰抓取路径
蜘蛛判断一個 URL 值不值得繼續走,很大程度上依赖它在頁面上看到什么。软 404 给出的信号是矛盾的:狀態碼说“正常”,内容却近于空白。
结果通常是三件事同时發生。第一,蜘蛛會把這些 URL 放進抓取队列,占用本来可以给真實頁面的抓取次數。第二,頁面上的導航、推荐位、相關連結仍然存在,蜘蛛會顺着它們繼續走,形成大量内容重复的路径。第三,這些空頁面可能進入索引,稀释整站质量信号。
软 404 最大的問题不是“多抓了一個頁面”,而是它會持續制造新的、值得抓但没價值的地址。
怎么找出站点里的软 404
它通常不會出現在 404 报表里,需要主動查:
- 從服務器日誌里筛出返回 200、但响應体明顯偏小的 URL,和同類正常頁面做對比。
- 抽查 Sitemap 中的地址,看是否還有實质内容,尤其是已下架、已归档的條目。
- 检查站内搜尋结果頁、篩選頁、排序頁是否被内鏈或 Sitemap 暴露。
- 看頁面标题與正文:如果大量頁面共用同一套标题和段落,很可能就是软 404 或近似空頁。
處理方式:让狀態碼和内容一致
确定不會再有的頁面
返回 404 或 410,並把指向它的内鏈和 Sitemap 條目一並清理。410 表達“已永久移除”,對蜘蛛来说更明确,但 404 同样有效,不必纠结用哪一個。
暂时缺内容的頁面
如果只是临时無库存、暂时下架,保留 URL 並返回 200 可以接受,但要给出替代内容,例如同類推荐、說明文字,而不是留一個空壳。频繁在 200 和 404 之間来回切換反而更乱。
參數與篩選頁面
對無结果的篩選组合,可以在服務端直接返回 404,或用 robots 規則、參數規范化限制蜘蛛進入。前提是先確認這些 URL 本来就不该被收錄。
需要注意:canonical 或 noindex 不能替代狀態碼。它們影响的是收錄判断,而蜘蛛仍然會抓取這個 URL。
修复时的顺序
- 先切断入口:内鏈、Sitemap、導航中的空頁面地址。
- 再改狀態碼,让服務器如實表達頁面是否存在。
- 然後观察日誌,確認這些 URL 的抓取频次是否下降、是否還有新的空頁面被生成。
不必一次性改完所有頁面,但改動要成批、可回溯。软 404 属于结构性小問题,處理之後通常能看到抓取分布更集中,但具体表現取决于站点規模和内容更新节奏,不适合用“多久恢复”来判断。