当错误页面返回 200 状态码时,收录检查的核心不再是"这个 URL 有没有被收录",而是"被收录的那份内容到底是不是错误页"。核对方法是:先用请求头和正文特征确认响应是否为伪成功,再判断该 URL 是否属于应当保留的软 404,最后按两种条件分别决定是改状态码还是补内容。
错误页面返回 200 通常有两种成因,处理方向完全不同。
区分证据:软 404 的正文里通常出现"不存在""已删除""无结果"等表述,且页面标题与目标关键词明显不匹配;空壳成功页的标题和模板正常,只是关键区块为空。若只看到状态码 200 就判定正常,会把这两类问题一起漏掉。
按下面顺序执行,每一步的结果都决定下一步是否继续。
curl -I 取响应头,记录状态码、Content-Type 和是否存在跳转。若返回 200 且无跳转,进入下一步。curl 不带 -I),检查是否含错误提示文本、是否含预期业务字段。若正文是错误提示,基本可判定为软 404。这一步动作的直接结果是:你能把每个可疑 URL 归入"软 404""空壳成功页""正常页"三类之一。归类的准确性决定后面改状态码还是改内容,改错方向会白费一轮改动。
适用条件:资源确实已删除、下架或从未存在,且没有等价替代页面。此时应让服务器对该 URL 返回 404 或 410,而不是继续返回 200 加错误提示。
实施动作:在应用层或网关层为该路由显式设置错误状态码,并确认错误页模板不再被当作正常内容输出。改完后重新取响应头验证状态码是否生效,再观察该 URL 在收录检查中的表现变化。
例外:如果该 URL 有大量外链或历史流量,直接返回 404 会浪费已有入口价值。此时更合适的是 301 到最相关的现存页面,但前提是目标页内容确实能承接原意图,否则只是把软 404 换成软跳转。
适用条件:URL 对应真实业务实体,只是数据缺失、字段为空或渲染失败导致页面看起来像错误页。此时返回 200 是合理的,问题在内容供给。
实施动作:先定位是数据源为空、接口报错还是模板条件判断写错,再修复数据链路。修复后重新渲染并对比主内容区是否恢复。若短期内无法补齐数据,应让该 URL 返回 404 或暂时下线,避免以空壳成功页的形式被收录。
假设例子:某商品页因库存字段为空而只显示页头页脚,返回 200。若把状态码改成 404,商品恢复上架后又得改回来;若保持 200 并补上"暂时缺货"的实质说明,页面就有独立价值。两种选择成立的条件不同——前者适合永久下架,后者适合临时缺货。
请求量或抓取量下降不能单独证明状态码处理正确,它也可能来自抓取预算调整、外链变化或站点整体改版。同理,某 URL 从收录结果中消失,既可能是 404 生效,也可能是被 robots.txt 屏蔽、被规范标签指向他页,或只是尚未重新抓取。
需要分别核查的边界:robots.txt 的抓取限制不等于可靠的索引移除,已收录 URL 仍可能留在结果中;站点地图不保证收录,提交与否和是否被抓取是两件事;HTTPS 不保证页面内容正确,也不解决状态码语义问题。核对一致性时,把状态码、正文特征、渲染结果三者放在一起看,比只看其中任何一项都更接近真实情况。