检查访问状态与错误页,不能只看浏览器里显示什么,而要先确认服务器返回的 HTTP 状态码,再看错误页内容是否符合预期。很多人把“页面能打开”当成正常,把“显示 404 页面”当成故障,其实 404 本身是正常响应,真正要排查的是该返回 200 的地址是否返回了 404,或者该返回 404 的地址是否返回了 200。
错误页是网站设计的一部分,不是故障本身。用户访问一个不存在的地址,服务器返回 404 状态码并展示自定义错误页,这是正确行为。反过来,如果服务器配置不当,把所有不存在的地址都返回 200 并展示首页内容,搜索引擎和访问者都会误以为该地址有效,这才是需要处理的问题。
另一个误解是只看页面文字。浏览器渲染出的“页面不存在”提示,可能来自服务器返回的 404,也可能来自前端路由拦截后返回的 200。两种情况对访问者和搜索引擎的含义不同,必须用状态码来区分。
HTTP 状态码是服务器对请求的第一层回答。检查时重点关注以下几类:
200:请求成功,页面内容正常返回。适用于正常栏目页、文章页、首页。301 或 308:永久跳转。适用于旧地址迁移到新地址,跳转目标应指向有效页面。302 或 307:临时跳转。适用于短期维护或活动页,不应长期作为固定跳转使用。404:资源不存在。适用于确实被删除且无替代内容的地址。410:资源永久删除。与 404 类似,但语义更明确,适用于确定不再提供的内容。500 或 503:服务器内部错误或暂时不可用。需要检查程序日志、数据库连接或服务器负载。判断结果时,先看状态码是否符合该地址的预期角色。一个正常文章页返回 200 才算通过;一个已删除文章返回 404 或 410 才算合理;一个旧地址返回 301 且跳转目标返回 200 才算完整。
时间和人手有限时,按下面顺序处理,能最快定位问题:
curl -I 你的网址,查看返回的第一行状态码和 Location 响应头。这一步不加载页面图片和脚本,速度最快。Location 后面的地址,再执行一次 curl -I,确认最终地址返回 200。假设一个例子:某地址 /old-page 在命令行返回 301,Location 指向 /new-page,但 /new-page 返回 404。这说明跳转配置正确,但跳转目标不存在,需要先修复目标页面,而不是修改跳转规则。
错误页不只是给访问者看的,也影响后续处理效率。检查时关注三点:
如果错误页返回 200,搜索引擎可能将其视为正常页面并尝试收录,造成大量低质量页面进入索引。这种情况下,优先修正服务器或前端路由的状态码设置,再考虑页面文案和样式。
先检查首页、主要栏目页和近期流量较高的内容页是否返回 200。这些地址一旦异常,影响面最大。其次检查已配置跳转的旧地址,确认跳转链没有断在 404 或 500。最后再抽查错误页本身的状态码和内容。
如果只能做一件事,用 curl -I 批量检查主要地址的状态码,比逐个打开浏览器页面更快,也更容易发现跳转链问题。检查完成后,把返回异常状态码的地址整理成清单,按影响范围排序处理。
下一步可以针对清单中返回 404 的地址,逐一确认是否有替代内容:有替代内容就配置 301 跳转,没有替代内容就保留 404 并完善错误页提示。