什么是软 404
软 404 指的是這样一種情况:用戶和蜘蛛訪問某個 URL 时,頁面正文其實已经不存在了,展示的可能是“内容已刪除”“暂無資料”,或者干脆是站点的通用首頁、栏目空模板;但服務器返回的 HTTP 狀態碼仍然是 200。從狀態碼层面看,它和一篇正常文章没有区別。
普通 404 會明确告诉蜘蛛“這個地址没有内容”,而软 404 不會。蜘蛛只能靠正文判断,判断不清楚时,往往會繼續抓取、繼續保留在索引里,甚至反复回来確認。
软 404 常见的几種来源
- 内容被刪除或下架後,系統没有返回 404,而是跳轉到首頁或栏目頁,狀態仍是 200。
- 空栏目、空标簽頁:栏目下暂时没有内容,頁面照样輸出标题和導航。
- 篩選、搜尋、分頁參數组合後没有结果,模板仍然渲染出一個空列表頁。
- 商品或文章過期後保留頁面框架,只把正文替換成“已結束”“已過期”。
- 改版或迁移时,舊模板没有清理,繼續輸出空壳頁面。
這些問题通常不是一次改版造成的,而是随着内容下架、栏目調整慢慢积累出来的,所以很难靠肉眼發現。
為什么它比普通 404 更值得注意
普通 404 的影响是明确的:蜘蛛知道不该再抓。软 404 的問题在于“看起来正常”,于是它可能:
- 持續消耗抓取配額,让真正需要更新的頁面排队更久。
- 進入索引後,用戶搜尋到点開却看不到内容,影响訪問体驗。
- 让日誌里的狀態碼統計失真,你看到的 200 數量並不等于有效頁面數量。
- 如果這類頁面大量存在,站点整体质量會被拉低。
软 404 不一定马上带来明顯問题,但數量一多,抓取效率和索引质量都會受影响。它更像慢性消耗,越早清理越省事。
怎么排查软 404
- 先看服務器日誌里狀態碼為 200 的 URL,按訪問量排序,找出那些不應被频繁訪問的地址。
- 随机抽查這些 URL,观察正文区域是否有實际内容,還是只有标题、導航和一句提示。
- 检查被刪除内容的下架流程:確認刪除後返回的狀態碼,是 404、410 還是仍然 200。
- 检查空栏目頁和篩選结果頁,看無结果时模板輸出什么。
- 用命令行或浏览器開發者工具查看响應头,確認狀態碼不是由前端脚本“假装”出来的。
排查时要注意,有些頁面在浏览器里看起来正常,但响應头里的狀態碼可能已经被 CDN 或缓存改寫,最好以源站返回為准。
處理原則:按頁面價值分流
發現软 404 後,不建议一刀切全部删掉,而是先判断這個地址還有没有保留價值:
- 内容彻底不要了,也没有替代頁:返回 404 或 410,让蜘蛛明确知道頁面已失效。
- 有同類内容可以承接:做 301 跳轉到最相關的新頁面,而不是跳到首頁。
- 篩選、搜尋無结果頁:让無结果狀態返回 404,或者加上 noindex,避免被大量索引。
- 栏目暂时没有内容:先隐藏入口,补充内容後再開放,不要長期挂着空頁面。
需要注意的是,狀態碼要在服務端返回,不要用 JavaScript 跳轉或前端提示来代替。前端跳轉對用戶可见,但對蜘蛛来说,原地址仍然是一個 200 頁面。
日常运营中的小流程
與其等到問题堆积再集中處理,不如把它放進日常流程:
- 内容下架时,顺手確認返回的狀態碼。
- 每月抽一次日誌,重点看訪問量高但内容為空的 URL。
- 栏目改版或合並後,检查舊入口是否還在輸出空壳頁。
- 把软 404 检查寫進上线清單,和死鏈检查一起做。
软 404 不會立刻让站点出問题,但它會让抓取和索引的效率慢慢變差。把失效頁面和正常頁面区分清楚,是對站点结构最基本的维護。