软 404 是什么
软 404(soft 404)指的是:頁面實际上没有可用内容,但服務器返回的狀態碼是 200。對用戶来说,看到的是一個“没有找到相關内容”的提示;對搜尋引擎来说,它先看到的是一張正常返回的頁面,需要再靠内容特征去判断“這個頁面其實不存在”。判断一旦成立,後台报告里通常會出現软 404 标记,頁面也會逐步從索引里被拿掉。
與之相對的是硬 404:頁面不存在就返回 404 或 410,双方理解一致,代價最小。软 404 的問题不在于“多了一個頁面”,而在于狀態碼和真實情况不一致。
常见的软 404 来源
- 搜尋無结果頁:站内搜尋没命中關鍵詞,头部和導航照常輸出,正文只有一句“没有找到相關内容”,狀態碼仍是 200。
- 空分類、空标簽頁:篩選條件叠加後,没有任何商品或文章,模板照样完整渲染。
- 失效詳情頁兜底成通用頁:内容下架後跳到首頁或通用提示頁,URL 不變,狀態碼也不變。
- 错誤頁配置反了:自定义 404 頁面做得挺好看,却由服務器以 200 返回。
- 依赖接口或 JS 的頁面:接口报错、資料為空,骨架屏渲染完就結束,HTTP 层看不出任何異常。
為什么值得专门處理
软 404 的成本不止“多一個没用的 URL”:
- 消耗抓取額度。蜘蛛會把它当正常頁面抓下来並反复訪問,占用的額度本可以留给真正需要更新的内容。
- 干扰质量判断。同一模板下堆积大量空頁面,會让搜尋引擎對该目錄甚至整站的可用内容比例打折扣。
- 放大重复與收口問题。空頁面之間高度相似,又常带着指向自身的 canonical,收口鏈條在這里就断了。
判断原則很简單:頁面到底有没有内容,服務器應该给出和它一致的回應。内容不存在却返回 200,等于把判断成本推给搜尋引擎,结果往往不如自己说清楚。
自查:怎么把软 404 找出来
- 先看站長後台的软 404 报告,被标记的 URL 是最好的入口,注意区分“确實该删”和“只是暂时為空”。
- 按模板抽查:搜尋頁、标簽頁、篩選頁、下架詳情頁、超出范围的分頁,每類取几個 URL 看狀態碼和正文長度。
- 用命令行或抓取工具批量取狀態碼與正文文本長度,去掉導航、頁脚後几乎没内容的,基本可以判定為空壳。
- 對比正常頁面和異常頁面的 HTML,看差异是集中在正文区域,還是整個模板根本没渲染出来。
處理顺序
- 确實不存在的頁面:返回 404 或 410。已確認永久下线的,410 更直接。
- 临时為空、之後可能恢复的:让狀態碼如實反映,同时加 noindex 观察,不要長期挂着一個 200 的空頁面。
- 能合並的:把空标簽頁 301 到上級分類,把無结果搜尋頁指向有用的入口頁。
- 内容其實靠前端渲染的:先修接口和渲染,再谈收錄,改狀態碼解决不了接口為空這件事。
- 處理完留一張清單,隔一段時間复查,尤其是篩選參數组合出来的 URL。
几個容易踩的坑
- 只改了自定义 404 頁面的样式,忘了让服務器返回 404 狀態碼。
- 把 noindex 当成萬能补丁,空頁面越积越多,抓取額度照样被消耗。
- 無结果搜尋頁的 canonical 指向自己,等于告诉搜尋引擎“這就是标准頁”。
- 把软 404 和硬 404 混為一谈,看到报告里的數字就慌,其實要先分清是内容真没有,還是渲染失敗。
软 404 不是需要紧急抢修的事故,但它會持續消耗抓取资源、拉低整站的可用内容比例。把它当成一次頁面清理:该返回 404 的返回 404,该合並的合並,该修渲染的修渲染,剩下的交给時間。