站点运营

站点运营:404 與软 404 自查,別让错誤頁混在正常頁面里

软 404 指的是頁面内容是错誤提示,HTTP 狀態碼却返回 200。本文梳理软 404 的常见来源、自查步骤、狀態碼選擇思路,以及 404 頁面本身该放哪些入口,帮助站点把無效地址和正常内容分開管理。

站点运营

站点运营:404 與软 404 自查,別让错誤頁混在正常頁面里

404 本身不是問题,問题在于很多站点把“找不到”的頁面用 200 狀態碼發出去,让用戶和搜尋蜘蛛都以為這是一張正常内容頁。這類頁面通常被叫做软 404:看起来是错誤提示,HTTP 狀態却是成功。

软 404 從哪来

多數软 404 不是有意做的,而是框架或栏目配置的副作用。常见的几類:

  • 栏目下内容被清空,模板仍然渲染出一個只有标题的空列表頁;
  • 站内搜尋结果為空时,返回的是“没有找到相關结果”,狀態碼却是 200;
  • 商品或文章下架後,詳情頁保留一個“该内容已下线”的提示頁;
  • 參數被改動、ID 不存在时,程序捕获異常後统一渲染到預設頁;
  • 改版时把舊地址全部指向一個兜底頁,狀態碼仍是 200。

這些頁面的共同点是:對用戶没價值,對搜尋蜘蛛却是一個可抓取的正常地址。

自查怎么做

  1. 先從日誌或爬虫工具里拉一批狀態碼為 200 的地址,抽查内容是否真的是有效正文。
  2. 专门构造几類無效地址:不存在的 ID、超長參數、已下线的分類,看返回碼是什么。
  3. 检查站内搜尋頁、篩選頁、排序參數頁在無结果时的返回碼。
  4. 看模板里是否有把错誤分支渲染成正常頁面的逻辑,尤其是前端路由渲染的站点。
  5. 確認 sitemap 里没有混入已经空掉的栏目或下架内容。

正确狀態碼怎么選

  • 内容永久迁移到新地址:用 301,並指向最相關的新頁面,而不是一律指向首頁。
  • 内容彻底刪除且不再有替代:用 410,短期不确定可以先 404。
  • 只是暂时不可用(维護、下架待恢复):用 503 並给出恢复预期更合适。
  • 參數错誤、ID 不存在:404 或 410,不要返回 200。
  • 空搜尋结果頁:返回 200 但加 noindex 也可以,但要避免它被大量抓取。

404 頁面本身要做什么

把 404 頁面当成一個正常的运营入口,而不是一句“頁面不存在”就完事。至少要有:清晰的說明、站内搜尋框、几個主要栏目或热门内容的入口、返回首頁的連結。這样用戶不會立刻關掉頁面,也减少無意义的跳出。

注意:404 頁面里的連結要指向真實存在的地址,如果指向的又是 404,會形成一條死循环。

和搜尋蜘蛛的關系

软 404 會消耗抓取预算。搜尋蜘蛛把時間花在這些空頁面上,真正需要更新的内容就排到後面。同时,大量 200 狀態的無效地址會让 URL 發現變得混乱:sitemap、内鏈、外鏈里混着這些地址,站点结构看起来比實际大得多。

清理的顺序建议是:先修狀態碼,再清 sitemap 和内鏈,最後回头检查日誌里這一類地址的抓取比例有没有下降。這是一個持續動作,不是一次改完就結束。

监控與回归

最後留一個简單的巡检习惯:每周看一次日誌里 404、410、5xx 的量級和占比變化;每次上线新模板或改版後,手動测一遍無效地址的返回碼。狀態碼這類問题往往不是一次性错誤,而是随内容和模板迭代反复出現的,只有把它放進常規检查里,才不會积累成一片“看起来正常”的空頁面。