运维網站时,很多人只盯着 404 頁面,却忽略了一種更隐蔽的情况:URL 能正常打開,服務器也老老實實返回 200,但頁面上其實没什么内容——空列表、空白模板、被清空正文的舊文章。這類頁面在浏览器里看起来没什么異常,在蜘蛛眼里却像一個正常頁面,于是被反复抓取、反复评估,最後什么也没贡献。
软 404 到底是什么
软 404 指的是:HTTP 狀態碼告诉蜘蛛這個地址有效,但頁面本身没有實质内容,或者内容已经不存在。它和真正的 404 的区別只在狀態碼。對用戶来说,打開是一片空白或一句“暂無内容”;對搜尋引擎来说,它先被当成正常頁面收進来,再在後續评估中被判定為低质量,白白消耗抓取资源。
常见的软 404 来源
- 站内搜尋、篩選、排序组合出的结果頁,没有匹配項时仍然返回 200 的空列表。
- 商品下架、文章刪除後,URL 保留但正文被清空,只留下标题和一行提示。
- 模板或插件出错,輸出了一個没有正文的空壳頁面。
- 分頁參數超出實际頁數,翻到後面几頁时返回空列表。
- 依赖前端渲染的列表頁,接口失敗或被拦截时頁面只剩框架。
- 多語言、多地区版本尚未填充内容就先上线了地址。
怎么把它們找出来
光靠浏览器点開很难穷尽,可以借助几個渠道交叉驗證。
- 在搜尋引擎的站点管理後台看頁面索引报告,關注被标记為软 404 或“已抓取但未索引”的地址,尤其是成批出現的。
- 翻抓取日誌,找出狀態碼為 200、但响應体积明顯偏小(比如只有几 KB)的 URL,這類往往是空壳。
- 抽查带參數的地址,把篩選條件设成不可能命中的组合,看返回的是提示頁還是空白頁。
- 用抓取工具批量請求一批 URL,同时记錄狀態碼和正文文本長度,按長度排序,最短的那批優先排查。
處理原則
- 先判断這個地址有没有存在的必要。内容确實不會再有的,就让它返回 404 或 410,干净利落。
- 内容只是暂时缺失、之後會补上的,先补内容;短期無法补齐的,考虑 301 到相關栏目或替代頁面。
- 不要長期用 200 加 noindex 的方式挂着。這样既没有内容價值,又占着一個可被訪問的地址,後續维護也容易混乱。
- 修复篩選和搜尋逻辑:無结果时给出明确提示,並让這類無结果頁返回合适的狀態碼,而不是一律 200。
- 检查模板和渲染流程,避免接口異常时輸出空白頁面,至少给出兜底内容。
把它變成流程
软 404 很少是一次性出現的,它跟着内容上下架、活動頁下线、模板改版不断冒出来。比較省事的做法是把检查放進日常节奏:内容下架时同步處理地址,改版上线後抽查一批舊地址,每周從日誌里掃一遍小体积的 200 响應。
狀態碼是给机器看的,内容是给人的。两者對不上的时候,通常先出問题的是抓取效率。
软 404 不會让網站立刻出大問题,但它會一点点稀释抓取预算,让真正值得被發現的頁面排在後面。把它当成一項常規清理,比攒到某天集中大掃除要轻松得多。