404 not found 是 HTTP 状态码,表示服务器已经收到请求,但找不到对应的资源。它本身是一个明确的“未找到”响应,不是服务器崩溃,也不等于网络断开。判断它正常还是异常,关键看这个地址是否本来就应该存在、返回 404 的范围有多大、以及是否伴随其他错误。
正常 404 通常出现在以下情况:你手动输入了一个不存在的网址;页面已经按计划下线,并且没有设置跳转;站内某篇文章被删除后,旧链接仍被外部引用;测试环境里访问了尚未创建的路径。这类 404 是服务器在如实回答“这里没有内容”,属于预期结果。
异常 404 则表现为:原本能打开的页面突然返回 404;同一栏目下大量正常链接集中变成 404;首页、栏目页、商品页等核心入口返回 404;或者用户访问时好时坏、刷新后又正常。这些现象说明路由配置、文件路径、重写规则或后端服务可能出了问题,需要进一步定位。
curl -I 查看状态码。如果返回的确实是 404,说明服务器明确表示未找到;如果返回 500、502、503,则不是 404 问题,而是服务端错误。在终端执行 curl -I https://example.com/some-page,观察第一行状态码。返回 HTTP/1.1 404 Not Found 表示该地址确实未找到;返回 200 OK 表示页面存在;返回 301 或 302 表示发生了跳转。这里的 example.com 只是占位示例,实际使用时换成你要检查的地址。
如果状态码是 404,但页面内容却显示“首页”或“欢迎页”,这通常说明服务器配置了自定义 404 页面,但状态码可能被错误地设成了 200。此时需要用工具确认状态码,而不是只看页面外观。对搜索引擎来说,返回 200 的“软 404”会被当成正常页面,可能造成重复内容或无效页面被索引。
面对一个 404,先判断这个地址还有没有价值。如果它对应的是已经迁移的内容,并且新地址明确,可以用 301 跳转到最相关的页面;如果内容彻底删除且没有替代页面,保留 404 是合理选择;如果只是临时无法访问,应返回 503 而不是 404,避免让搜索引擎误以为页面永久消失。
需要留意的是,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。HTTPS 不保证安全无漏洞或排名。不同搜索引擎对 404、软 404 和跳转的处理方式需要分别核查,不能用一个平台的表现推断所有平台。
如果你第一次遇到这个问题,先取一个具体 URL,用 curl -I 或浏览器开发者工具确认状态码,再对照它是否曾经存在、是否在导航或站点地图中、影响范围是单页还是整批。确认是正常 404 就不必处理;确认是异常 404,再检查路由、重写规则、文件路径和后端服务日志,逐项排除。