什么是软 404
软 404 通常指這样一種情况:頁面實际上已经没有可用内容,可能是商品下架、文章刪除、分類為空、搜尋無结果,但服務器對訪問請求仍然返回 200 狀態碼。對用戶来说看到的是一個空頁面或提示頁,對蜘蛛来说却像是正常返回的頁面。如果站点里這類 URL 數量較多,它們會占用抓取资源,也可能混進索引,影响索引质量。
它和真正的 404 区別在于狀態碼。真正的 404 是服務器明确告诉蜘蛛“這個地址没有内容”,而软 404 是把“没有内容”包装成了一次正常响應。
软 404 為什么會被收錄
蜘蛛判断一個頁面是否值得索引,會综合看狀態碼、正文内容、内鏈、頁面模板等信号。狀態碼是其中比較直接的一环。当 URL 返回 200 时,蜘蛛會按正常頁面進入後續流程,再去判断内容是否足够。如果頁面虽然空,但模板里還有導航、推荐位、版權信息,蜘蛛可能把它当成一個普通頁面處理。
- 已下架的商品頁、已刪除的文章頁,狀態碼没有同步修改。
- 篩選和排序參數组合出的结果頁,组合無结果时仍返回 200。
- 站内搜尋無结果頁,地址可被外部訪問和抓取。
- 分頁越界,例如第 100 頁實际没有資料,却仍返回 200。
- 空分類、空标簽、空作者頁,只有模板框架没有條目。
- 前端路由接管後,找不到内容也统一返回 200。
這些 URL 一旦被内鏈或站点地图暴露,就更容易被蜘蛛發現。發現之後能不能進索引,還要看後續判断,但返回 200 至少让它有了被處理的可能。
识別软 404 的几個入口
狀態碼和頁面内容對照
不要只看狀態碼,也不要不看狀態碼。可以抽取一批可疑 URL,用命令行或抓取工具訪問,记錄返回碼、頁面标题、正文長度、是否包含關鍵詞。如果返回 200,但正文只有提示语和模板内容,就可能是软 404。服務器訪問日誌里也能看到蜘蛛反复抓取同一類空頁面,這时值得回去检查模板逻辑。
索引报告與搜尋表現
索引报告不一定直接标出软 404,但可以看到一些間接信号,比如頁面被收錄却没有摘要,或者标题由模板拼成。也可以在站内搜尋里观察,不過结果受多種因素影响,只能作為參考。更可靠的做法還是回到頁面本身:這個 URL 對用戶是否還有價值。
處理顺序可以這样排
- 先確認頁面是否還有保留價值。如果内容只是暂时下架,後續會恢复,可以先保留頁面,但要给出明确提示,並避免让蜘蛛抓取空狀態。
- 確認無保留價值的,返回 404 或 410。404 表示未找到,410 表示已刪除。两者都能让蜘蛛更快理解頁面已失效,不必再反复抓取。
- 如果頁面需要保留但内容不足,優先补内容。合並到相近主题、补充有效信息,比直接留一個空壳更合适。
- 無法立即刪除的,再考虑 noindex。noindex 可以让頁面登出索引,但頁面仍可能被抓取。要確認 noindex 對蜘蛛可见,不要被 robots.txt 屏蔽掉。
- 清理内鏈和站点地图。把指向软 404 的連結去掉或改為有效地址,站点地图中也不要保留已经失效的 URL。
- 观察抓取和索引變化。處理之後不會立刻生效,需要给蜘蛛一些時間重新抓取,再從日誌和索引报告中確認。
不要把 noindex 和 404 混着用。如果頁面已经决定刪除,返回 404 通常比長期挂着 noindex 更直接;如果頁面還要保留给用戶訪問,就優先修狀態碼和内容,而不是只加 noindex。
几個容易踩的坑
- 用 robots.txt 屏蔽软 404 頁面,结果蜘蛛看不到 noindex,索引狀態反而更难清理。
- 前端路由统一返回 200,服務端無法区分頁面是否存在。
- CDN 或安全防護把源站的 404 改寫成了 200。
- 只處理了頁面模板,没有清理内鏈,蜘蛛仍然不断發現新的空 URL。
- 把篩選頁全部保留,但组合结果為空时仍返回 200。
小结
软 404 的核心問题是狀態碼與實际内容不一致。處理时不必急着追求一次清理干净,可以先從數量集中、内鏈明顯的空頁面入手:確認價值,修正狀態碼,清理入口,再看索引變化。對站点来说,让蜘蛛把抓取用在有内容的頁面上,比單纯追求索引數量更重要。