站点运营里有一類頁面很难被察觉:狀態碼明明是 200,服務器也正常响應,但頁面本身已经没有實质内容。下架的商品、空了的产品分類、搜尋结果為零的列表頁,都属于這一類。對用戶来说這是一個死胡同,對蜘蛛来说則是一個看起来有效、實际上没什么價值的地址。
软 404 通常出現在哪些頁面
- 商品或内容下架,詳情頁模板仍在,正文区域留空或只剩推荐位
- 篩選參數组合出没有结果的列表頁
- 某個分類下的内容被全部刪除,分類頁只剩标题和導航
- 分頁翻過末尾,超出實际頁數的頁碼仍然返回 200
- 依赖前端渲染的頁面,脚本执行後内容区域是空的
蜘蛛看到的是什么
蜘蛛判断一個地址有没有價值,主要依據响應狀態、正文内容量,以及這個頁面和站内其他頁面的重合程度。当某個 URL 返回 200,但正文几乎是同一套模板,和站内几十個頁面高度相似时,這個地址就很难被当作有獨立價值的頁面。它可能被反复抓取,也可能被标记為软 404 並逐步從索引中淡出。具体行為由各搜尋引擎自己决定,這里只能说方向。
一個返回 200 的空頁面,消耗的抓取资源和一次正常抓取是一样的,但产出的價值接近于零。
為什么值得處理
- 抓取配額被無效 URL 占用,真正需要更新的頁面可能排得更靠後
- 内鏈指向空頁面,蜘蛛走過去之後無路可走,路径在這里中断
- Sitemap 里如果混入這類地址,會给抓取調度提供错誤信号
- 用戶從搜尋结果点進来看到空白,体驗同样受影响
分场景的處理方式
确實不该再存在的頁面
内容已经永久刪除,且没有等價替代頁面的,返回 404 或 410 是清晰的表達。410 表示永久移除,语义更明确;用 404 也可以,關键在于不要让模板繼續輸出 200。
暂时缺货或临时下架
如果内容過一段時間會回来,保留 URL 並返回 200 是合理的,但頁面應当给出明确說明,比如预計恢复時間、同類替代推荐,让頁面本身有内容可讀,而不是留一片空白。
篩選參數组合出的空结果
這類地址往往由參數無限组合产生。可以让無结果的组合返回 404,也可以用 robots.txt 屏蔽參數模式,或者對這類頁面加 noindex。几種做法選一種並保持一致,比混用更容易维護。
需要把空结果頁合並到上級分類的,用 301 指向有内容的頁面,同时更新内鏈,不要让舊的空連結繼續挂在導航或列表里。
與 Sitemap、内鏈的配合
Sitemap 是站点主動提交的地址清單,應当只放有内容的規范 URL。如果 Sitemap 里長期存在返回 200 的空頁面,等于持續把蜘蛛引向無效地址。内鏈同理,列表和導航里的連結應当指向真實存在的目标,頁面下线後要及时清理對應入口。
怎么發現這些頁面
- 在服務器日誌里篩選响應碼為 200、但响應体积明顯偏小的 URL
- 抽样訪問分類頁、翻頁和參數组合,確認内容区域是否有實质信息
- 查看搜尋引擎後台的覆盖率或索引报告,關注被标记為软 404 的地址
- 结合内鏈清單,定期核對連結指向的頁面是否還有内容
這類問题通常不是清理一次就結束。内容下架、參數變化、模板調整都會不断产生新的空頁面,把它纳入常規的站点健康检查,比等到抓取出問题再回头排查要省力得多。
软 404 的核心矛盾在于狀態碼和内容不一致。让狀態碼如實反映頁面狀態,让 Sitemap 和内鏈只指向确實存在的頁面,是减少無效抓取最直接的一步。