站点运营

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

頁面已经下线,狀態碼却還是 200,這類软 404 在站点运营中很常见。文章從下线栏目、篩選頁、舊地址三個入口入手,說明如何用狀態碼和响應体大小做抽查,並给出 301、404、410 的選擇建议與错誤頁的寫法。

站点运营

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

站点运营里有一類問题不太顯眼:頁面已经不存在了,服務器却仍然返回 200。訪客看到的是一屏空白或一句“暂無内容”,而對外發出的信号却是“這個地址正常”。這就是常说的软 404。它不會让站点立刻报错,却會長期消耗抓取资源,也让真正的错誤地址無法被识別出来。

硬 404 與软 404 的区別

硬 404 指服務器明确返回 HTTP 404 狀態碼,告诉訪問者這個地址没有内容。软 404 則是地址确實没有可看的内容,狀態碼却仍是 200,或者返回的内容與請求的地址毫無關系。

  • 文章已刪除,但模板還在,返回 200 加一屏空白;
  • 搜尋、篩選參數生成了無结果的列表頁,仍返回 200;
  • 栏目被合並,舊栏目地址被统一跳轉到首頁;
  • 内容狀態改為草稿或下线,前台地址仍可訪問,只是正文為空。

自查從哪些入口開始

與其全站掃描,不如先圈出最容易出問题的位置:

  1. 列出近期下线的栏目、专题、商品或文章,逐條回訪地址;
  2. 用站内搜尋和篩選參數拼几個無结果组合,看返回什么;
  3. 整理改版前的舊地址清單,抽查是否還有响應;
  4. 翻訪問日誌,找狀態碼為 200 但响應体明顯偏小的請求。

單條地址怎么快速判断

用命令行工具請求地址头信息是最直接的办法,例如請求 https://example.com/old-page 时,重点看返回的第一行狀態碼,以及响應体長度。狀態碼 200 加上很短的响應体,通常就值得点開確認。如果站点啟用了跳轉,還要留意跳轉目标本身是否可訪問,避免鏈條越接越長。

批量抽查的做法

把舊地址整理成一個文本文件,逐條請求並记錄狀態碼、跳轉目标和响應体大小,重点挑出“200 但内容很短”的地址。得到一批结果後,再决定是恢复内容、做跳轉,還是让它正常返回错誤碼。批量處理前建议先小范围试跑,確認規則符合预期再全量执行。

常见的處理方式

  1. 内容只是換了地址:做 301 跳轉到新地址,並確認目标頁可以正常打開。
  2. 内容确實下线:返回 404,已经明确不再提供的内容可以用 410。
  3. 栏目整体撤掉:把仍有價值的舊地址指向最相關的上級栏目,而不是一律跳首頁。
  4. 篩選與搜尋無结果:考虑返回错誤碼,或至少避免让這類组合被大量生成。
  5. 下线數量較多:先归拢成清單分批處理,保留變更记錄,方便出問题时回退。

错誤頁本身也值得做好

返回 404 不等于把訪客赶走。一個清晰的错誤頁應该說明“该頁面可能已移除或地址輸入有誤”,同时提供站内搜尋框、主要栏目入口和返回首頁的連結。注意错誤頁不要做自動跳轉,也不要在上面堆大量推廣内容,否則訪客會分不清自己到底到了哪里。

提示:狀態碼是给机器看的信号,頁面内容是给人看的。两者保持一致,訪客和爬虫才不會互相誤解。

把它變成例行检查

建议在每次改版、批量下线内容和調整栏目结构之後,都做一轮狀態碼抽查,並把结果简單记錄:哪些地址被跳轉、哪些返回错誤、哪些還没處理。這項工作不复杂,但能避免“地址還在、内容没了”長期堆积。它不保證任何收錄或排名结果,只是让站点對外發出的信息保持诚實和一致。