站点运营

站点运营:404 與软 404 自查,把失效頁面的去處安排清楚

站点里總會有失效頁面,處理得好能减少抓取浪費,處理不好會让蜘蛛反复訪問空壳地址。這篇文章梳理硬 404 與软 404 的区別、常见触發场景、301 與 404 的選擇标准,以及從訪問日誌里排查高频死鏈的自查清單。

站点运营

站点运营:404 與软 404 自查,把失效頁面的去處安排清楚

站点執行時間一長,總會积累一批失效地址:产品下架、文章合並、栏目調整,都會留下打不開的 URL。404 本身不是故障,但怎么處理,會影响到蜘蛛的抓取效率和用戶的落地体驗。這篇從自查角度,说说 404 與软 404 该怎么排查和安排去處。

先分清硬 404 和软 404

硬 404指服務器明确返回 404 狀態碼,告诉客戶端這個地址不存在。這是正常的表達方式,蜘蛛收到 404 後會逐步把该 URL 從索引中移除,不會反复来抓。

软 404則是頁面内容已经不存在,但服務器仍然返回 200 狀態碼。常见表現是頁面顯示“内容不存在”“暂無資料”,或者只剩導航和頁脚的空壳。蜘蛛會把它当成正常頁面,繼續抓取、繼續占用抓取预算,用戶從搜尋结果点進来也只會看到空白。

判断标准很简單:如果一個地址實际没有内容可看,就不要用 200 狀態碼把它包装成“正常頁面”。

常见的软 404 场景

  • 内容被刪除或下架後,詳情頁直接返回 200 的空模板。
  • 站内搜尋结果頁没有匹配结果,仍返回 200 的可抓取頁面。
  • 列表分頁超出實际范围,例如只有 5 頁却存在 page=99 並正常返回。
  • 篩選、排序參數生成了大量無内容的组合頁面。
  • 用戶中心、訂單頁等登入後才有内容的頁面,在未登入狀態下返回 200。

有替代内容就 301,没有就老實 404

處理失效頁面之前,先問一句:站内有没有内容相近、可以承接的頁面?

  • 有明确替代:用 301 永久重定向到最相關的新地址,比如舊产品頁跳轉到同系列新品頁,合並文章跳轉到保留的那一篇。
  • 没有替代:直接返回 404,不要用 302 临时跳轉到首頁,也不要用 JS 跳轉。這两類做法容易让蜘蛛誤解,用戶也會觉得被强行丢到不相關的地方。

重定向要一跳到位。如果 A 跳 B、B 又跳 C,既有跳轉鏈的损耗,也不利于後續维護。

把 404 頁面做成有用的落地頁

404 不等于死路。返回正确狀態碼的前提下,頁面本身可以承担引導作用:

  • 用一句人话說明目前地址已失效,不要只丢一個冷冰冰的错誤碼。
  • 给出首頁、主要栏目、站内搜尋的入口,让用戶能繼續找。
  • 可以列出几篇近期更新的内容或常用入口,但不要做自動跳轉。
  • 移動端同样要保證按钮可点、文字可讀。

定期從日誌里翻 404

自查不能靠猜,服務器訪問日誌和蜘蛛抓取日誌里就有答案。可以按下面几步看:

  1. 統計一段時間内返回 404 的 URL,按訪問次數從高到低排。
  2. 区分来源:是站内連結指错,還是外部老連結,還是蜘蛛仍在訪問的歷史地址。
  3. 站内連結導致的 404,直接改連結;有替代頁面的,补上 301。
  4. 持續被抓的高频 404,检查是否有配置或模板問题在批量生成错誤地址。

一份可以照做的自查清單

  1. 抽查刪除内容後的舊 URL,確認狀態碼是 404 還是 200。
  2. 检查搜尋無结果頁、空列表頁的响應狀態。
  3. 检查分頁參數超出范围时的返回内容。
  4. 確認 404 頁面自身返回 404,而不是 200。
  5. 確認站内没有指向已刪除頁面的死鏈。
  6. 確認重定向為一跳,且目标頁面内容相關。
  7. 把高频 404 整理成清單,定期复看。

404 處理不复杂,關键是把“失效”這件事如實告诉蜘蛛和用戶。狀態碼说真话,頁面给出路,剩下的交给時間。