ICP备案

网站错误页怎么做?404、50x 自定义页与优雅降级实操

作者:备案源头内容团队内容审核:备案源头内容团队更新于 2026年8月22日

用户访问到一个"Nginx 默认 502 白页"或浏览器原生 404,会直接流失;搜索引擎抓到大量返回 200 的"软 404"也会伤收录。错误页看似小事,做好了却能留住用户、保护 SEO。本文讲清怎么把错误页做对。

先分清常见错误码

状态码 含义 典型原因
404 页面不存在 链接错误、页面已删除
403 禁止访问 权限/防盗链/被拦
500 服务器内部错误 程序异常
502 网关错误 反代后端(Node/PHP)挂了或没起
503 服务不可用 过载或维护中
504 网关超时 后端响应太慢

502/504 常见于反向代理场景(后端进程崩溃),排查见 网站打不开怎么排查;50x 频发要结合 日志分析 定位。

自定义 404 页:留住用户 + 正确状态码

默认 404 页对用户不友好。自定义一个带导航、搜索、返回首页入口的 404 页,能把误入的用户导回站内。关键:自定义 404 页必须真的返回 404 状态码,不能返回 200——否则搜索引擎会把大量"内容其实不存在"的页当正常页收录(软 404),浪费抓取预算、稀释站点质量。

# Nginx 自定义错误页(404 与 50x)
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /404.html { internal; }
location = /50x.html { internal; }
# 反向代理场景:后端挂了也能兜底 50x 静态页
location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_intercept_errors on;   # 让 Nginx 接管后端错误码以显示自定义页
}

50x 与优雅降级

后端(Node/PHP)崩溃或过载时,用户不该看到刺眼的报错。优雅降级的做法:

  • 静态兜底页:Nginx 用 proxy_intercept_errors + 静态 50x 页,后端挂了也返回一个友好的"服务繁忙,请稍后再试"页;
  • 维护页(503):计划内维护时返回 503 + Retry-After 头,告诉搜索引擎"暂时不可用、稍后再来",避免它把维护当成页面消失而删除收录;
  • 别把 50x 缓存久:CDN 对 50x 只做极短或不缓存,避免故障恢复后仍返回错误页,见 CDN 缓存策略
  • 高可用兜底:多节点 + 健康检查能在单点故障时自动摘除坏节点,减少 50x,见 网站高可用架构

错误页与 SEO / 收录

  • 软 404 是大忌:不存在的页要返回真 404(或 410),不要返回 200 空页;
  • 维护用 503 而非 200/404:让搜索引擎知道是临时的;
  • 404 页别 noindex 也别进 sitemap:正常返回 404 即可,Google 会自然处理;
  • 旧页删除/合并:与其留 404,不如 301 跳到相关页保留权重,见 域名跳转配置

监控:让错误早被发现

把 50x 比例、404 数量纳入 网站运维监控 与日志告警——错误页做得再好,也只是"止血",及时发现并修复后端故障才是根本。

常见问题

Q:自定义 404 页要注意什么?
最重要的是仍返回 404 状态码(别返回 200 造成软 404),页面上提供搜索、返回首页等导流入口留住用户。

Q:网站维护时应该返回什么状态码?
返回 503(服务暂不可用)并带 Retry-After,让搜索引擎知道是临时的,别按页面消失处理。

Q:后端一崩用户就看到 502 白页怎么办?
Nginx 开 proxy_intercept_errors + 配置静态 50x 兜底页;同时用进程守护和监控减少后端崩溃。

资料来源

以上为通用做法,具体配置以你使用的 Web 服务与框架文档为准。

相关阅读

网站数据怎么备份与恢复?备份策略、异地备份与恢复演练

服务器故障、误删、被攻击、迁移出错,任何一种都可能让网站数据丢失。备份不是"有就行",而是要能在需要时真正恢复回来。本文讲清网站该备份什么、怎么备、多久备一次,以及恢复怎么做。 备份什么 | 对象 | 说明 | |---|---| | 数据库 | 网站核心数据(文章、订单、用户等),优先级最高 | | 站点文件 | …

CDN 缓存策略怎么配?缓存规则、回源、刷新与预热全解析

很多站长接了 CDN 却发现两类问题:要么"改了内容用户还看到旧的",要么"命中率很低、CDN 形同虚设"。这都是缓存策略没配好。接入 CDN(见 备案网站怎么接入 CDN)只是第一步,真正让 CDN 又快又不出错,靠的是精细的缓存规则。本文系统讲清。 缓存的基本原理 CDN 在全国节点缓存你的资源副本,用户就近取,…

网站定时任务与运维自动化怎么做?自动备份、证书续期与巡检

证书忘了续、备份忘了做、日志忘了清——运维事故很多不是不会做,而是"忘了做"。把重复的运维动作交给定时任务自动执行,是最省心也最可靠的做法。本文讲清哪些该自动化、定时任务怎么用,以及自动任务本身也要监控。 哪些运维适合自动化 | 任务 | 自动化收益 | |---|---| | 数据备份 | 定时全量/增量,避免漏备…

网站数据库运维怎么做?选型、性能优化、主从与备份全解析

对大多数网站,数据库是最核心、也最难重建的资产:程序挂了能重启,数据库数据丢了或被拖慢,整站跟着崩。数据库运维不是"装完能用就行",而要在选型、性能、可靠性、安全四条线上持续投入。本文系统梳理网站数据库运维的关键点。 选型:关系型还是其它 大多数网站用关系型数据库(MySQL/MariaDB、PostgreSQL)就…

网站打不开怎么排查?从解析、端口到备案的运维排查清单

网站突然打不开,原因可能在任何一层:域名没解析、端口没放行、服务挂了、证书过期、甚至掉备案或被墙。乱试一通只会浪费时间。本文给一份从外到内、分层排查的运维清单,按顺序走一遍就能快速定位。 排查总原则:分层,从外到内 按"域名解析 → 网络与端口 → 服务器与 Web 服务 → HTTPS 证书 → 备案与被墙"的顺序…

开发、测试、生产环境怎么分离?配置管理与发布流程

直接在生产服务器上改代码、连生产数据库调试,是运维事故的高发来源。把开发、测试、生产环境分开,让改动先在安全的地方验证,是稳定运维的基础。本文讲清三套环境怎么分、配置怎么管、怎么一步步发布到线上。 三套环境各干什么 | 环境 | 用途 | 数据 | |---|---|---| | 开发(dev) | 写代码、本地调试…

网站高可用架构怎么做?负载均衡、多节点与故障转移全解析

单台服务器承载的网站,只要这台机器宕机、升级重启或被打满,网站就整体不可用。当业务对可用性有要求时,就需要从"单点"走向"高可用(HA)架构"——通过冗余和自动故障转移,让任何单一组件失效都不至于让整站瘫痪。本文系统讲清高可用的核心组件与落地要点。 先理解:可用性和单点故障 可用性常用"几个 9"衡量:99.9%(全…

备案通过后网站怎么上线?域名解析、服务器绑定与部署实操

很多站长拿到 ICP 备案通过通知后,反而卡在"接下来怎么让网站真正打开"这一步。备案解决的是"能不能上线"的资质问题,真正上线还需要一套运维动作:把域名解析到服务器、在服务器上部署站点、绑定域名、配好 HTTPS,最后验证访问。本文按实操顺序梳理。 上线前提:备案与接入都已就绪 开始部署前先确认两件事:一是备案已通…

系统学习