站点运营

站点运营:软 404 自查,別让不存在的頁面返回 200

软 404 指的是頁面已無内容,服務器却仍返回 200 狀態碼。這種情况让用戶点進来看到空壳頁面,也让抓取程序把無效地址当成正常頁面反复訪問。本文梳理常见的触發场景、可执行的自查步骤,以及 404、410、301 與 noindex 各自的适用区別,並提醒缓存和單頁應用里容易忽略的坑。

站点运营

站点运营:软 404 自查,別让不存在的頁面返回 200

什么是软 404

软 404 指的是頁面實际已经不存在、或者内容已经被清空,但服務器仍然返回 200 狀態碼。訪問者看到的是一句“暂無内容”或者大片空白,而抓取程序讀到的是“這個地址正常,可以繼續来看”。两種信号對不上,問题就出在這里。

它和硬 404 的区別不在“頁面看起来空不空”,而在狀態碼和頁面實际可用性是否一致。

常见的几種触發场景

  • 商品下架、文章刪除之後,模板仍然渲染出空壳頁面,标题還在、正文為空。
  • 站内搜尋结果頁、篩選頁在没有命中结果时返回 200,只顯示一句“暂無相關内容”。
  • 栏目頁因為内容被移走而變空,但栏目地址本身没有做任何處理。
  • 後端把 404 统一處理成跳轉首頁,或者跳到一個提示頁,狀態碼却是 200 或 302。
  • URL 拼错後,路由兜底到一個通用模板,任何不存在的路径都返回 200。

為什么它比硬 404 更麻烦

硬 404 是一個明确的信号:地址不存在,可以不再来了。软 404 给出的却是相反的暗示,抓取资源被持續花在永遠不會有内容的地址上。同时,用戶從搜尋或外鏈点進来,看到空白頁,体驗落差明顯;站点統計里這些地址還會被算作有效訪問,干扰後續判断。

判断软 404 的關键,不是頁面看起来空不空,而是狀態碼與頁面實际可用性是否一致。

自查步骤

  1. 整理一批已经刪除、下架、改名過的地址,做成清單。
  2. 用命令行工具逐個查看返回狀態碼,重点看响應里的第一行狀態碼字段。
  3. 同时把頁面打開,確認正文是否為空壳、是否只有模板框架。
  4. 做對比:狀態碼為 200、内容却為空的地址,就是软 404 候選。
  5. 額外抽查站内搜尋结果頁、空分類頁、空标簽頁這几類頁面。
  6. 翻一下服務器日誌,看這些地址被抓取的频次,判断影响范围有多大。

處理思路

确實不存在的地址

返回 404 或 410 都可以,410 表示永久刪除。選哪個看站点习惯,關键是不要再返回 200。

有替代地址的

用 301 指向最相關的現存頁面,而不是全部统一跳首頁。跳首頁對用戶帮助有限,也不利于理解站内结构。

暂时没有内容的頁面

如果只是暂时缺内容、之後會补上,可以考虑保留頁面,或者先用 noindex 挡住,等内容补齐再放開。要注意 noindex 和 404 是两種不同處理,不要混用。

搜尋與篩選结果頁

無结果时直接返回 404 未必合适。更常见的做法是仍返回 200 但加上 noindex,同时把頁面做得有出口,比如给出推荐内容或返回入口。

容易踩的坑

  • 只在頁面上顯示“404”字样,狀態碼却依然是 200。
  • 前端路由的單頁應用,所有路径都返回 200,由前端渲染出 404 頁面,服務端應配合返回對應狀態碼。
  • CDN 或反向代理把错誤頁缓存下来,對外统一返回 200。
  • 批量刪除内容时只清理了資料库,没有同步處理 URL 與跳轉規則。

日常怎么维持

把狀態碼检查放進常規動作里,比如每季度抽查一次刪除清單,或者在日誌中關注那些長期被抓到、却始终没有實际内容的地址。内容會持續下架,栏目會持續調整,软 404 属于會反复出現的類型,指望一次清理就永久干净並不現實。