软 404 指的是 URL 返回了 200 狀態碼,但頁面上其實没有實质内容,或者直接告诉訪客“内容已刪除”“商品已下架”。對用戶来说它和 404 没什么区別,對搜尋引擎来说却是另一回事——200 意味着這個地址是有效的。
先分清软 404 和真 404
真正的 404 會让抓取程序明确知道這個 URL 已经不存在,索引里的记錄通常會随之清除。软 404 不给出這個信号,抓取程序只能靠解析頁面内容来判断,判断過程更長,结果也更不确定。
常见的软 404 形態有:
- 商品、文章下架後模板照常渲染,正文区域顯示“该内容已刪除”;
- 篩選參數组合出無结果頁,頁面只剩一句“没有找到相關结果”;
- 空分類、空标簽頁,只有導航和頁脚;
- JS 加载失敗或接口报错,頁面骨架在、正文為空;
- URL 拼错後没有跳轉,落到一個通用模板頁上。
對收錄和索引的實际影响
影响可以分三层看。
抓取层面
這類頁面同样會占用抓取次數。如果站内存在大量由參數、分頁或篩選生成的空结果頁,抓取预算會被摊薄,真正需要更新的頁面反而抓得更慢。
索引层面
200 狀態碼不會触發“刪除”逻辑,所以這類 URL 可能在索引里停留較長時間,即使它已经没有内容。索引里多出一批空頁面,會让收錄數量看起来虚高,但几乎不會带来点击。
站点质量评估层面
大量低價值、無内容的頁面被反复抓取和索引,可能影响搜尋引擎對整站内容质量的判断。這種影响没有公開的量化标准,但從抓取分配和索引選擇上通常能观察到變化。
自查顺序
- 從日誌里筛出被频繁抓取的 URL,按路径和參數归類,看哪些是模板生成的、本身不该有内容;
- 抽样請求這些 URL,记錄狀態碼和正文長度,狀態碼 200 但正文字數极少的先标记出来;
- 用網址检查工具看抓取到的實际内容,確認渲染後的頁面是否真的為空;
- 检查是否有正常頁面被誤伤,比如内容确實少但仍有價值的頁面。
處理方式
按頁面的真實狀態選擇,不要一刀切。
- 内容永久移除:返回 404 或 410。如果舊 URL 有稳定的外鏈,可以 301 到最相關的替代頁面。
- 只是暂时缺货或改版:保留 200,但頁面上给出替代内容或相關推荐,別只放一句提示语。
- 參數生成的無内容頁:在服務端返回 404,或用 robots.txt 阻止抓取這類參數组合;已经在索引里的可以配 noindex。
- 同一内容多個參數版本:用 canonical 指向規范版本,减少重复。
- 數量极大且無检索價值:優先從源头减少生成,而不是事後逐個屏蔽。
處理软 404 的關键不是让頁面消失,而是让狀態碼和内容保持一致:有内容就返回 200,没内容就明确告诉抓取程序没有内容。
不要把内容少的頁面当成软 404
软 404 判断的是頁面是否具备應有的内容,不是内容多不多。一個說明頁只有两百字,但完整回答了問题,它是有效頁面;一個商品頁有大量模板文字,唯獨没有商品信息,它才是软 404。動手之前先確認頁面類型和预期内容,避免把正常頁面改成 404,反而丢掉已有的索引和流量。
處理完一批之後隔一段時間再回看日誌和索引狀態,確認抓取不再集中在空頁面上。狀態碼、頁面内容、索引记錄三者對齐,收錄資料才有參考價值。