站点运营

站点运营:404 自查,別让不存在的頁面假装還在

頁面下架、商品刪除、栏目改名都會产生失效地址,但服務器给出的回答常常含糊:有的返回 200 的空壳頁,有的一律跳到首頁。這篇從狀態碼、软 404、404 頁面设計和固定的巡查動作几個角度,梳理一遍该怎么查、怎么改。

站点运营

站点运营:404 自查,別让不存在的頁面假装還在

頁面被删掉、商品下架、栏目标题改了,這些都很常见。麻烦的地方在于,服務器不一定老老實實告诉蜘蛛“這個地址没了”。有时候它返回一個看起来正常的頁面,有时候把人一脚踢到首頁,蜘蛛拿到的信号就變了味道。404 自查要做的,就是把這類含糊的地方理清楚。

先分清:404、410、软 404、跳轉

同样是“頁面不存在”,服務器可以给出好几種回答,含义並不一样。

  • 404:地址不存在。适合临时下架、誤删、外鏈指向了拼错的地址。
  • 410:地址曾经存在,現在永久移除,且不打算恢复。语义比 404 更明确。
  • 软 404:HTTP 狀態碼返回 200,但頁面正文寫的是“没有找到”“暂無内容”。這是最容易被忽略的一種。
  • 301 / 302 统一跳首頁:把大量失效地址都丢到首頁。首頁本身没問题,但這些地址對應的内容确實不在了,長期這么做,等于让失效地址一直“活着”。

软 404 通常出現在哪儿

  • 站内搜尋没有结果时,頁面照样返回 200,只是正文寫着“没有找到相關内容”。
  • 篩選、排序、分頁參數越界,模板渲染出空列表,狀態碼依然是 200。
  • 單頁應用把所有路由都交给前端,服務器對任何路径都返回同一個 200 外壳。
  • 标簽頁、专题頁在内容被撤下後,只剩一個标题和空白列表。

這些頁面本身不一定有害,但如果數量成百上千,就會让抓取预算花在空壳上。判断方法很简單:把頁面里的導航、頁脚、侧邊栏都去掉,看剩下的正文是不是空的。

怎么查一遍

不需要复杂工具,几步就能覆盖大部分情况。

  1. 用命令行工具請求一下,或者直接在浏览器的開發者工具 Network 面板里看狀態碼,不要只看頁面長什么样。
  2. 挑一批已经下线的地址(舊文章、舊商品、舊活動頁),逐個請求,记錄返回的狀態碼和正文長度。
  3. 翻服務器訪問日誌,找出返回 200 但响應体特別小的頁面,這類往往是软 404 的嫌疑對象。
  4. 看站点地图和站内連結里有没有指向已刪除内容的地址,發現一個改一個。

站内搜尋頁、參數頁這類動態生成的地址,抽样即可,重点是確認“没有结果”时返回的是不是 404,或者至少是一個不進入索引的空頁面。

404 頁面本身也要能看

狀態碼對了,頁面也不能是一片白屏或者預設的服務器报错。用戶看到它的时候,通常已经有点着急了。

  • 一句话说清楚發生了什么,別用“错誤 404”這五個字当全部内容。
  • 给出返回首頁、主要栏目、站内搜尋的入口。
  • 如果是内容迁移導致的,可以放一個相近内容或相關推荐的連結。
  • 不要做三秒後自動跳轉首頁,用戶来不及看清,体驗也差。
内容真的没了,就让它明确地返回 404 或 410;内容只是換了地址,就用 301 指到新地址。最怕的是两头都不做,用一個 200 的空頁面糊弄過去。

可以固定下来的動作

  • 内容下架时,顺手確認一次舊地址返回什么狀態碼。
  • 栏目改版或 URL 調整时,把舊地址整理成一份跳轉清單。
  • 每季度抽查一次站内搜尋頁和參數頁的空结果表現。
  • 留意日誌里 404 數量異常上升的時間点,往往對應着一次改版或誤删。

404 不是什么需要藏起来的東西,它只是網站正常运轉的一部分。把狀態碼和頁面内容對齐,蜘蛛和用戶都能少走弯路。