站点运营

站点运营:404 與软 404 自查,別让失效地址给出错誤信号

栏目合並、内容下线之後,總會留下一批失效地址。真正的問题不是地址失效,而是狀態碼给错了:该报 404 的返回 200,訪客看到空頁面,蜘蛛却当成正常内容。本文梳理 404、410 與软 404 的区別,给出自查清單和處理原則。

站点运营

站点运营:404 與软 404 自查,別让失效地址给出错誤信号

站点做久了,總有些地址會失效:产品下架、栏目合並、文章改名。失效本身很正常,問题在于服務器返回什么狀態碼。如果该说“這里没有了”的地址偏偏返回 200,訪客看到的是空頁面,搜尋蜘蛛却当成正常内容處理,信号就错位了。

404、410 和软 404 的区別

404 表示這個地址目前没有對應内容,但不是永久性结论;410 表示内容已永久移除,意图更明确;软 404 則是頁面 HTTP 狀態碼返回 200,可正文里寫着“抱歉,找不到该内容”,或者干脆是一個空模板。三者里,软 404 最容易被忽略,因為它從狀態碼上看一切正常。

软 404 通常從哪里冒出来

  • CMS 把任何不存在的路径都套進统一模板,渲染出一個空壳頁面;
  • 站内搜尋無结果时,頁面仍以 200 返回,只是列表為空;
  • 列表頁被翻到超出范围的頁碼,仍然顯示一個空列表;
  • 带篩選參數的组合地址没有匹配内容,頁面照常渲染;
  • 内容刪除後,只在正文里加一句“该内容已下线”,狀態碼却没有改動。

自查时该看什么

  1. 抽查一批已知失效地址,用命令行工具或浏览器開發者工具確認返回狀態碼,而不是只看頁面長相。
  2. 從服務器日誌里筛出高频 404 地址,判断它們是外鏈带来的、舊版遗留的,還是站内連結寫错的。
  3. 检查站内搜尋、篩選、分頁這几類動態頁面,在無结果时返回的是 404 還是 200。
  4. 看 404 頁面本身是否可用:有没有返回首頁或相關栏目的入口,狀態碼是否正确返回。
  5. 批量检查内鏈與導航,確認没有指向已经不存在的地址。

處理原則

内容彻底不要了、也没有替代頁面,就让地址老老實實返回 404 或 410;只是換了地址,就做一次到新地址的跳轉,並且尽量一步到位,不要再串第二跳。批量清理时可以先從日誌里出現次數多、外鏈多的地址下手,收益更直接。

另一個常被忽略的点是:404 頁面不要做成自動跳轉回首頁。頁面一打開就跳走,用戶按回退键會被彈回去,体驗很差,也容易让大量失效地址被当成重定向處理。

狀態碼是给机器讀的,頁面文案是给人看的,两者要一致。頁面说“没有”,狀態碼也應该说“没有”。

把它變成常規動作

不必每次上线都全站掃描,但可以在栏目調整、批量下线、改版之後做一次抽查,並在监控里留意 404 數量的異常抬升。發現異常就顺藤摸瓜,多半能找到一批失效内鏈或错誤配置。這類工作不产生新内容,却能减少訪客迷路,也少浪費一些抓取资源。