有些 URL 打開是正常的:狀態碼 200,有頁头頁脚,有标题,但頁面主体没有真正的内容。下架的商品、搜尋無结果的頁面、篩選條件拼不出结果的列表、暂时没有文章的栏目,都會長成這样。它們常被叫做软 404 或空壳頁面,因為對用戶和蜘蛛来说,這條地址等于什么也没提供。
它和真正的 404、410 差在哪
真正的 404 是明确的信号:這個地址没有内容,蜘蛛會逐步把它清出索引。软 404 返回的是 200,等于告诉蜘蛛「這里有一頁正常内容」,只是内容恰好是空的。蜘蛛不會因此报错,反而可能把它当普通頁面處理,抓取、渲染、甚至收錄。差別不在内容多少,而在狀態碼给出的信号是否一致。
這類頁面通常從哪冒出来
- 站内搜尋的無结果頁,參數不同就生成一條新地址。
- 已下架或已刪除的内容,頁面還在,只是換成了一句提示。
- 篩選、排序、分頁越界後返回的空列表。
- 會員中心、訂單詳情等需要登入才能看到内容的頁面,未登入时只剩框架。
- 栏目建立後長期没有更新内容,模板照常輸出。
為什么值得花時間清理
一是消耗抓取资源。蜘蛛在空頁面上花的時間,本来可以拿去抓有内容的頁面。二是影响质量判断。站点里長期存在大量只有模板的頁面,會让搜尋引擎對整站的内容密度打折扣。三是用戶在搜尋结果里点到這種頁面會直接退回,這種反馈最终也會体現到頁面的表現上。
怎么判断一個頁面是不是软 404
- 用不带登入態的請求抓一次頁面,看返回的狀態碼和正文長度。
- 把模板文字去掉,看剩下的内容是不是只有「暂無内容」「没有找到」這類提示。
- 在服務器日誌里看這類地址被訪問的频率,以及蜘蛛是否反复来訪。
- 抽样搜尋几條這種地址,確認是否已经進了索引。
處理顺序建议
先分類,再决定動作,不要一刀切全部删掉。
- 有替代内容:比如下架商品還有同類目頁面,做 301 指向最近的可用頁面。
- 彻底没有價值:返回 404 或 410,让信号明确。已经無人引用的頁面用 410 表達更干脆。
- 頁面本身要保留,只是不该被索引:加 noindex,並且确保它没有被 robots.txt 屏蔽——被屏蔽的頁面蜘蛛讀不到 noindex,反而可能長期留在索引里。
- 清理内鏈:把指向這些地址的站内連結換成有效入口,否則蜘蛛還會顺着老連結反复来訪。
判断标准很简單:這條地址如果被用戶直接搜到,他會不會觉得自己被骗了。會,就不要让它以 200 的狀態留在索引里。
几個容易踩的坑
一是用 robots.txt 屏蔽代替處理,结果頁面既不能被讀取也不能被移除。二是只改了頁面内容却不改狀態碼,空壳依舊是 200。三是把正常但内容較少的頁面也当成软 404 删掉,比如联系方式頁、說明頁,這類頁面有明确用途,不属于空壳。四是一次性批量刪除却不做跳轉,用戶從外部連結進来只看到错誤頁。
软 404 不會有报错提醒,只能靠定期巡检發現。把狀態碼、正文長度和站内連結一起看,比單看收錄數量更能說明問题。