“软 404”究竟是什么意思
真正的 404 会通过 HTTP 状态码告知浏览器和搜索引擎该页面不存在。软 404则是一个返回 200 OK(意为“这是您请求的页面”)的页面,但其实际内容看起来像一个错误页面,或是内容为空到 Google 判定它不是一个值得收录的真实页面。Google 是在从内容本身推断意图,而不是单纯信任状态码。
为什么 Google 要专门标记这一点
如果您的服务器声称每一个网址都是有效的 200 响应,Google 就无法通过状态码来区分真实页面和已损坏的页面,只能转而从内容中进行猜测——而这种猜测会消耗 Google 在您站内每一个网址上的爬取和收录精力。软 404 也常常是配置错误的副产物,会悄悄把真正损坏的页面隐藏起来,因为您自己的可用性检测和错误面板很可能也同样信任了这个 200 状态码。
常见原因
- 一个万能路由或 CMS 模板渲染出通用的“页面未找到”提示,却始终没有真正返回 404/410 状态码。
- 无结果的站内搜索结果页面,被渲染为一个带有空结果列表的普通页面。
- 缺货或已下架的产品页面依然在线,几乎没有剩余内容。
- 单页应用中初始 HTML 响应始终返回 200,随后由客户端路由决定是否展示“未找到”状态——Google 对原始 HTML 的第一波爬取,可能会将其视为一个内容单薄、几乎为空的页面。参见 JavaScript SEO 与收录。
如何检测这些页面
Search Console 的“索引 → 网页”报告会在“未编入索引”下列出软 404这一原因,并附带受影响的网址。如果您还不熟悉,可参见如何解读完整的覆盖率报告。您也可以直接使用“网址检查”工具对任意网址进行抽查,它会显示 Google 实际记录到的 HTTP 状态码。
针对每种情况的修复方法
- 内容确实已不存在的:让您的服务器或框架的未找到处理程序返回真正的
404或410状态码——不要只是修改可见文字。 - 确实单薄但真实存在的页面(空的搜索状态、计划补货的临时缺货商品):保留 200 状态码,但添加足够多的真实内容——相关商品、补货提示、分类链接——让页面看起来是有意呈现的,而非损坏的。
- 完全不希望被收录,但也不想返回 404 的页面(用户可以合法到达的有效空状态):添加noindex 标签,而不是让 Google 对其含义感到模棱两可。