软 404 是什么,和 404 差在哪
正常的 404 是服務器明确告诉爬虫:這個地址没有對應内容。软 404 則相反——服務器返回 200 OK,URL 可以訪問,但頁面里没有實际内容,或者内容與“頁面不存在”基本無异。對用戶来说可能是一片空白,對搜尋引擎来说則是一個需要自己判断真假的信号。
這個判断的成本不低。搜尋引擎要先抓取、解析、渲染,再比對正文長度、是否與站内其他頁面高度相似、是否還有有效連結,最後才决定把它归入废頁。整個過程比一個干脆的 404 慢,也更容易出現反复。
為什么這件事值得單獨拿出来说
软 404 的直接後果不是“被惩罚”,而是收錄判断被拖延。当同一批 URL 里混着大量空壳頁时,抓取资源會被分摊,真正的内容頁拿到的信号也會變得模糊。站点越大、模板化生成的頁面越多,這個問题越明顯。
另外,软 404 頁面如果還带着完整的導航和頁脚,爬虫可能會顺着繼續走,把一個本该結束的分支当成有效路径,進一步放大無效抓取。
常见的软 404 来源
- 商品下架、文章刪除,模板還在,正文区域被清空
- 篩選、排序、站内搜尋在没有结果时仍返回 200 的空列表頁
- 分頁翻到了没有資料的頁碼,URL 却依然可以訪問
- 需要登入或權限不足,直接返回空白正文而不是提示狀態
- 只寫了一行“敬請期待”或“内容整理中”的占位頁
- 前端渲染出错,返回的是 200,但 HTML 里只剩框架容器
怎么把它們找出来
只看狀態碼没用,因為软 404 的狀態碼本来就是 200。更實用的做法是几路並行:
- 看索引覆盖率报告里的软 404 分類,它通常會直接列出被判定為空壳的 URL 样本
- 抽样检查日誌里被高频抓取、但正文很短或几乎没有内鏈的地址
- 用站内搜尋或模板關鍵詞(如“暂無内容”“敬請期待”)反查可能的空壳頁
- 按模板分组統計正文字數,同一模板里字數明顯偏低的那一批,往往就是問题源头
- 對被刪除的内容做一次 URL 清点,看下架之後地址是否還在返回 200
處理方式:先分類,再動手
- 内容彻底不用了:让地址返回 410 或 404,而不是繼續返回 200 空壳。刪除是明确的信号,比让搜尋引擎自己猜要干净。
- 内容暂时下线,之後可能恢复:可以返回 404,或者用 noindex 暂时挡住,但不要長期挂着一個空壳頁面。等内容回来再放開。
- 頁面本身有價值,只是目前資料為空:比如空篩選结果。更好的做法是從源头控制——無结果时不生成可訪問的 URL,或给出提示頁並設定 noindex。
- 整站模板問题:不要在單個頁面上一處處改。找出生成空壳的模板逻辑统一處理,否則今天补完,明天又冒出来一批。
- 需要保留入口的頁面:如果 URL 本身有外部連結或用戶收藏,可以考虑保留並给出替代内容與跳轉,而不是留白。
几個容易踩的坑
- 把软 404 当成 404 批量刪除,誤伤了調整後本可以恢复的頁面。動手前最好留一份 URL 與内容狀態的對應记錄。
- 只處理了 PC 模板,移動端或獨立版本仍返回空壳。
- 依赖 JS 渲染的頁面,服務端返回的 HTML 里什么都没有,抓取时看到的就是空白。
- 批量改動上线後不复查,覆盖率报告里的软 404 數量没有下降,說明改的可能不是同一批 URL。
软 404 不會立刻让頁面從索引里消失,但它會让搜尋引擎對頁面價值的判断變得困难。與其等它被归入废頁,不如在頁面上线或下线的环节,就把狀態表達清楚。