页面被删掉、商品下架、栏目标题改了,这些都很常见。麻烦的地方在于,服务器不一定老老实实告诉蜘蛛“这个地址没了”。有时候它返回一个看起来正常的页面,有时候把人一脚踢到首页,蜘蛛拿到的信号就变了味道。404 自查要做的,就是把这类含糊的地方理清楚。
先分清:404、410、软 404、跳转
同样是“页面不存在”,服务器可以给出好几种回答,含义并不一样。
- 404:地址不存在。适合临时下架、误删、外链指向了拼错的地址。
- 410:地址曾经存在,现在永久移除,且不打算恢复。语义比 404 更明确。
- 软 404:HTTP 状态码返回 200,但页面正文写的是“没有找到”“暂无内容”。这是最容易被忽略的一种。
- 301 / 302 统一跳首页:把大量失效地址都丢到首页。首页本身没问题,但这些地址对应的内容确实不在了,长期这么做,等于让失效地址一直“活着”。
软 404 通常出现在哪儿
- 站内搜索没有结果时,页面照样返回 200,只是正文写着“没有找到相关内容”。
- 筛选、排序、分页参数越界,模板渲染出空列表,状态码依然是 200。
- 单页应用把所有路由都交给前端,服务器对任何路径都返回同一个 200 外壳。
- 标签页、专题页在内容被撤下后,只剩一个标题和空白列表。
这些页面本身不一定有害,但如果数量成百上千,就会让抓取预算花在空壳上。判断方法很简单:把页面里的导航、页脚、侧边栏都去掉,看剩下的正文是不是空的。
怎么查一遍
不需要复杂工具,几步就能覆盖大部分情况。
- 用命令行工具请求一下,或者直接在浏览器的开发者工具 Network 面板里看状态码,不要只看页面长什么样。
- 挑一批已经下线的地址(旧文章、旧商品、旧活动页),逐个请求,记录返回的状态码和正文长度。
- 翻服务器访问日志,找出返回 200 但响应体特别小的页面,这类往往是软 404 的嫌疑对象。
- 看站点地图和站内链接里有没有指向已删除内容的地址,发现一个改一个。
站内搜索页、参数页这类动态生成的地址,抽样即可,重点是确认“没有结果”时返回的是不是 404,或者至少是一个不进入索引的空页面。
404 页面本身也要能看
状态码对了,页面也不能是一片白屏或者默认的服务器报错。用户看到它的时候,通常已经有点着急了。
- 一句话说清楚发生了什么,别用“错误 404”这五个字当全部内容。
- 给出返回首页、主要栏目、站内搜索的入口。
- 如果是内容迁移导致的,可以放一个相近内容或相关推荐的链接。
- 不要做三秒后自动跳转首页,用户来不及看清,体验也差。
内容真的没了,就让它明确地返回 404 或 410;内容只是换了地址,就用 301 指到新地址。最怕的是两头都不做,用一个 200 的空页面糊弄过去。
可以固定下来的动作
- 内容下架时,顺手确认一次旧地址返回什么状态码。
- 栏目改版或 URL 调整时,把旧地址整理成一份跳转清单。
- 每季度抽查一次站内搜索页和参数页的空结果表现。
- 留意日志里 404 数量异常上升的时间点,往往对应着一次改版或误删。
404 不是什么需要藏起来的东西,它只是网站正常运转的一部分。把状态码和页面内容对齐,蜘蛛和用户都能少走弯路。