网站迁移的 301 重定向怎么做?从 URL 映射到批量验收
网站迁移时如何选择 301 或 308、建立一对一 URL 映射、配置 Nginx/Apache 规则,并批量检查状态码、Location、最终 200 与 canonical?本文给出可执行验收方法。
作者:NeoGress AI
网站迁移的 301/308 不是把所有旧地址跳到首页,而是让每个有价值旧 URL 指向内容等价的新URL,并用服务器端永久重定向直达最终页面。上线前应把映射表变成可测试清单;上线后同时验收状态码、Location、最终 200、canonical 和新站内链。
先记住这 5 点
- 永久迁移使用服务器端 301 或 308;临时替代才考虑 302/307。
- 一个旧 URL 对应一个最相关的新目标;无替代内容时用 404/410,不强行跳首页。
- 重定向应直接到最终 URL,避免旧地址 → 中间地址 → 新地址的链式跳转。
- 配置上线前要做规则冲突和顺序检查,上线后要批量验证最终状态与 canonical。
- 301/308 是迁移信号,不是排名保证;内容、内链、sitemap 和索引控制仍要一致。
网站迁移为什么优先使用 301 或 308?
因为它们表达资源已经永久移动 。 Google 把服务器端永久重定向视为强迁移信号,并用它帮助判断新的规范 URL;302、303、307 更适合临时切换,不应长期代替明确的永久迁移。
301、308 与临时重定向的分工
| 状态码 | 语义 | 典型用途 | 迁移注意 |
|---|---|---|---|
| 301 | 永久移动 | 普通公开页面、栏目、域名迁移 | 广泛兼容,常用于 GET 页面 |
| 308 | 永久移动 | 需要明确保留请求方法的永久迁移 | 确认服务器与应用链支持 |
| 302 / 307 | 临时移动 | 维护、短期活动、临时故障 | 不应冒充永久迁移 |
| 404 / 410 | 无可用替代 | 内容删除且无等价目标 | 比跳无关首页更清楚 |
Google 的重定向官方文档说明,服务器端重定向最容易被正确解释;301 与 308 都属于永久重定向。HTTP 的状态码语义可参考 IETF RFC 9110。永久重定向不是排名保证。
什么时候不要使用永久重定向?
如果只是短期维护、库存暂时不可用或 A/B 测试,永久信号可能与真实业务意图冲突。先明确以后是否还会恢复旧 URL;会恢复时使用临时方案,不会恢复且有等价新页面时才使用永久重定向。
网站迁移的 URL 映射表应该怎么建?
映射表必须能直接交给技术配置和测试,而不是只写产品页跳产品页 。每一行都要有精确旧 URL、目标 URL、处置理由、期望状态和验收结果。
先按内容关系决定目标,而不是先写规则
| 旧页面状态 | 目标选择 | 正确动作 | 错误做法 |
|---|---|---|---|
| 有完全等价新页面 | 对应新页面 | 一对一永久重定向 | 跳首页或上级栏目 |
| 多个旧页确实合并 | 完整合并页 | 多对一永久重定向并保留核心信息 | 其余无解释 404 |
| 内容改名但意图相同 | 同意图页 | 永久重定向并更新内链 | 视为全新主题 |
| 内容已删且无替代 | 无 | 404 或 410 | 跳无关页面 |
| 只是临时下线 | 说明页或原 URL | 临时重定向或合适状态 | 用 301 锁死临时变化 |
映射字段要支持配置、测试和回滚
| 字段 | 用途 | 示例 |
|---|---|---|
| old_url | 精确匹配来源 | https://old.example.com/service-a |
| new_url | 最终目标 | https://www.example.com/services/a |
| expected_code | 明确永久或临时 | 301 |
| reason | 记录判断 | 同一服务页路径调整 |
| owner | 业务与技术负责人 | SEO / 后端 / 运维 |
| qa_status | 预发与生产验收 | 待测 / 通过 / 失败 |
| rollback_rule | 恢复方式 | 恢复上一版配置并复测 |
别漏掉参数、尾斜杠、大小写和多语言版本
同一路径可能存在带参数与不带参数、带尾斜杠与不带尾斜杠、大小写不同、HTTP/HTTPS、www/非 www、多语言目录等变体。先决定规范形式,再用规则收敛到唯一目标。多语言站还要同步更新 hreflang,避免某语言旧 URL 跳到另一语言首页。
如果还没有完整旧 URL 基线,应先完成上一篇网站改版 SEO 迁移清单。
Nginx 和 Apache 的 301 规则怎么写?
优先使用精确规则处理高价值页面,再谨慎使用批量模式。下面是可读示例,不是可直接复制到任意生产环境的万能配置;上线前必须由熟悉当前服务器、代理层和应用路由的人审查。
Nginx:精确路径使用 return
location = /old-service {
return 301 https://www.example.com/new-service;
}Nginx 官方文档说明, return 指令可以返回 301、302、303、307、308 并指定目标 URL。精确location 适合少量关键页面;模式规则要额外检查捕获组、参数和规则顺序。
Apache:简单迁移可用 Redirect permanent
Redirect permanent "/old-service" "https://www.example.com/new-service"Apache HTTP Server 的 URL Redirection 文档给出 Redirect permanent 的路径迁移方式;更复杂的匹配可使用 RedirectMatch 或 mod_rewrite。配置文件位置、虚拟主机层级和代理架构会影响实际结果。
批量规则上线前先做冲突检查
- 精确规则与通配规则谁先执行;是否出现高价值路径被通配规则抢先匹配。
- 目标 URL 是否又被另一条规则重定向,形成链或循环。
- 是否错误保留、删除或重复拼接查询参数。
- 协议、主机名、端口、尾斜杠和大小写是否统一。
- CDN、负载均衡、Nginx/Apache 和应用层是否重复做同一跳转。
重定向上线后如何批量验收?
至少做两层检查:第一层看旧 URL 的状态与 Location,第二层跟随跳转,确认最终 URL、最终 200和页面 canonical。只看浏览器自动打开新页面,会隐藏重定向链和中间错误。
单条 URL 先检查响应头与最终落点
curl -sS -I https://old.example.com/old-service
curl -sS -I -L --max-redirs 5 \
-o /dev/null \
-w 'final=%{url_effective} code=%{http_code}\n' \
https://old.example.com/old-service预期第一条看到 301 或 308 以及正确 Location;第二条应直达目标并返回 200。命令只用于自有或获授权站点;不得把客户内网、Token、Cookie 或未公开域名放入截图和待审稿。
批量验收表至少记录六项
| 验收项 | 通过标准 | 失败例子 |
|---|---|---|
| 旧 URL 状态 | 301 或 308 | 200、302、404、5xx |
| Location | 等价新 URL | 首页、错误语言、测试域 |
| 跳转次数 | 一跳直达 | 多跳链或循环 |
| 最终状态 | 200 | 404、软404、5xx |
| 最终 canonical | 自指最终正式 URL | 旧页、其他页、测试域 |
| 站内链接 | 直接指新 URL | 依赖 301 |
先抽样再全量,不能只测首页
预发环境先抽样核心页面、深层路径、参数页、多语言页和静态资源;生产切换后立即重跑完整映射表。若 URL 数量很大,至少保证所有高流量、高转化、外链多和 sitemap 中的重要 URL 全量验收。
网站迁移 301 最常见的错误怎么排查?
优先看“现象—判断—动作” ,不要一看到流量下降就增加更多规则。
用症状定位规则问题
| 现象 | 判断 | 动作 |
|---|---|---|
| 旧页全跳首页 | 无关兜底规则 | 恢复等价映射;无替代返回404/410 |
| 连续两三跳 | 旧规范地址或多层重复配置 | 直接指最终 URL |
| 循环 | 规则相互覆盖 | 检查主机、协议和尾斜杠收敛 |
| 旧页返回302 | 临时规则误用或上游覆盖 | 确认永久性后改301/308 |
| 目标404/5xx | 目标未发布或新站故障 | 先恢复目标 |
| 新页 canonical 指旧页 | 页面信号冲突 | 自指新 URL,复查 sitemap 与 hreflang |
Google 的迁移指南建议避免重定向链、直接跳到最终目标,并提示把大量旧 URL 跳到无关首页可能成为软 404。对于永久迁移,Google 建议尽可能长期保留,通常至少一年。来源: Google 站点迁移实施说明。
301 上线后还要同步更新哪些页面信号?
重定向只是迁移链的一部分。新页面必须在 canonical、内链、hreflang、sitemap、结构化数据和分享链接中统一使用新 URL,避免搜索引擎同时收到已经迁移和旧页仍是规范页的冲突信号。
页面、站点与外部入口要一起收敛
- 新页面 canonical 自指新 URL。
- 导航、正文、面包屑、分页与相关文章直接链接新 URL。
- 多语言页面的 hreflang 全部替换为新 URL 并保持互相返回。
- 新 sitemap 只包含最终可索引的新 URL。
- 广告、邮件、社交资料与可控制的外链更新到新 URL。
- 分析工具和转化目标使用新的页面路径,并保留迁移日期标注。
NeoGress 的连接点与边界
NeoGress 可用于梳理新站页面和内容骨架,并通过企业官网 SEO 增长专题检查页面分工;
301/308 规则仍取决于实际 CDN、Web 服务器、CMS 和应用路由。本文不声称平台会自动接管旧站重定向,也不承诺迁移后排名或收录。
常见问题
网站迁移应该用 301 还是 308?
对普通公开 GET 页面,301 与 308 都可表达永久迁移;308 对请求方法保留更严格。选择要结合服务器、应用和请求类型,关键是永久语义、一跳直达与全链路验证。
301 会不会损失所有 SEO 权重?
Google 说明 301 和其他永久重定向不会因为状态码本身造成 PageRank 损失,但错误映射、内容不等价、链式跳转、目标不可用或信号冲突仍会影响迁移结果。
旧 URL 可以先 302,稳定后再改 301 吗?
短暂预演可使用临时方案,但正式永久迁移应尽快给出稳定的永久信号。长期 302 会让旧 URL 与新URL 的关系更难判断。
重定向链最多可以有几跳?
不要把爬虫能跟随当成最佳实践。Google 建议直接到最终目标;无法避免时也应保持很少的跳数。
上线验收以一跳直达为优先。
301 配置完成后还需要更新站内链接吗?
需要。站内链接应直接指新 URL,减少用户延迟、服务器负担和无意义抓取,也让 canonical、sitemap 与内链信号保持一致。
结论:把映射表变成可执行的验收合同
合格的迁移不是写完几条 301,而是每个旧 URL 都有明确去向、配置能直达最终页面、测试结果可复查、异常能回滚。映射表应同时服务内容判断、服务器配置与上线验收。
下一步行动
先从 20 个最重要旧 URL 做一轮完整映射与验收,再扩展到全站。上线后若出现索引或流量异常,进入下一篇网站迁移流量下降排查。
参考资料
把方法落到官网
把文章结论接回企业官网增长
继续完善核心页面、专题内容、搜索入口与转化动作,让单篇内容成为官网长期增长结构的一部分。