站点运营

站点运营:软 404 自查,別让空頁面顶着 200 的狀態碼被蜘蛛抓走

頁面内容已经空了,狀態碼却還是 200,這類软 404 會持續消耗抓取资源,也让蜘蛛對站点质量的判断變得模糊。本文给出狀態碼確認方法、容易被忽略的几類頁面,以及按内容實际情况選擇 404、410 或 301 的處理原則。

站点运营

站点运营:软 404 自查,別让空頁面顶着 200 的狀態碼被蜘蛛抓走

很多站点在清理内容、調整栏目或下线商品时,只關注“頁面還在不在”,却忽略了服務器返回的狀態碼。结果是頁面已经空了,狀態碼還是 200。蜘蛛拿到的是“正常頁面”,用戶看到的是“什么都没有”,這類頁面通常被称為软 404。

软 404 為什么值得單獨自查

硬 404 至少是诚實的:頁面不存在,服務器直接说 404,蜘蛛會把它從索引里慢慢清掉。软 404 則相反,它對外宣称頁面正常,但内容要么為空、要么只剩一句“抱歉没有找到相關内容”。對蜘蛛来说,這等于把一批低價值頁面主動送進了抓取队列,抓取预算被消耗,站点整体质量判断也可能受到影响。

常见的软 404 集中在几類场景:已下架商品仍返回 200;栏目調整後舊列表頁只剩空壳;搜尋無结果、篩選無结果时直接輸出 200;内容被刪除但模板還在,頁面只剩頁头和頁脚。

自查清單:先把狀態碼看准

1. 用命令行或開發者工具確認狀態碼

最直接的办法是看响應头。對可疑 URL 逐個执行 curl -I,或者打開浏览器開發者工具的 Network 面板,查看第一條請求的 Status。注意区分:200 表示正常返回,404 表示不存在,410 表示已永久刪除。如果頁面顯示“内容不存在”,狀態碼却是 200,基本可以判定為软 404。

2. 检查模板层的兜底逻辑

不少软 404 来自模板:詳情頁找不到資料时,程序没有中断,而是繼續渲染了一個空模板。可以翻一下詳情頁、列表頁、搜尋頁的模板,看“資料為空”分支里到底返回了重定向、狀態碼,還是照常輸出頁面。

3. 重点排查這几類頁面

  • 已下架商品、已刪除文章,模板仍在輸出頁面;
  • 搜尋頁無结果、篩選组合無结果,被当成普通頁面返回;
  • 分類下已無内容的空归档頁;
  • 用戶中心、訂單詳情等需要登入、未登入时只剩空壳的頁面;
  • 參數错誤触發的报错頁,狀態碼却是 200。

4. 结合日誌與抓取統計

在訪問日誌里篩選“返回 200 但响應体积极小”的 HTML 請求,往往能揪出一批软 404。搜尋引擎提供的站点管理工具中,抓取統計與頁面索引狀態,也能反映“已抓取但未索引”是否集中在某個栏目。

處理原則:让狀態碼和内容保持一致

  1. 内容真的没了:返回 404 或 410,並让 404 頁面提供站内搜尋、热门栏目等出口。
  2. 内容換了地址:用 301 指向新地址,不要用 302 或 JS 跳轉長期替代。
  3. 内容暂时為空:新栏目還没内容时,可以先不放出入口,等有内容再開放。
  4. 無结果的搜尋頁與篩選頁:返回 404,或加上 noindex,並避免内鏈指向這類组合 URL。
  5. 需要登入的頁面:用 401、403 或 robots.txt 處理,不要让蜘蛛抓到空白頁。
提示:改完狀態碼不要马上期待索引變化。刪除類頁面從被發現到從索引移除需要時間,先保證狀態碼正确,再观察抓取趋势。

顺手做的两件小事

  • 让 404 頁面返回真正的 404 狀態碼,而不是 200 加一句“頁面不存在”的文案;
  • 把“日誌中 200 狀態下体积異常小的 HTML 响應”列為例行检查項,每月掃一次。

软 404 不會立刻带来明顯問题,但它會持續消耗抓取资源,也让站点呈現给蜘蛛的信号變得模糊。把它纳入站点运营的常規自查,成本不高,收益是長期的。