301、302、307、308 Redirect 差在哪?网站迁移和活动导流怎么选
永久搬家通常用 301,暂时活动通常用 302;若必须保留原本的 HTTP 方法,则改看 307 与 308。重点不是背代码,而是选对实际意图。

如果你正在比较 301、302、307、308 redirects,先记住这四句最实用的判断:
- 301:永久变更,而且通常是一般网页请求
- 308:永久变更,而且必须保留原本的 HTTP 方法与 request body
- 302:暂时变更,而且通常是一般网页请求
- 307:暂时变更,而且必须保留原本的 HTTP 方法与 request body
对大多数做网站迁移、域名切换和内容改版的团队来说,301 仍然是最常见的默认答案。但只要你处理的不是单纯页面浏览,而是表单送出、付款流程、API、Webhook,307 和 308 就不再是少数人才会碰到的代码。
如果你正在做整站改版、换 CMS 或换域名,建议把这篇文章跟 网站迁移跳转检查清单 一起看。真正影响 SEO 和活动成效的,往往不是状态码本身,而是整体搬家流程是否干净。
最短的实务版答案
你其实只是在回答两个问题:
- 这次变更是永久还是暂时?
- 原本的 HTTP 方法要不要原封不动保留?
整理成表格就是这样:
| 目的 | 需要保留方法与 body 吗? | 建议选择 |
|---|---|---|
| 永久搬家的一般页面 | 通常不用 | 301 |
| 永久搬移 API 或表单端点 | 需要 | 308 |
| 暂时活动页、维护页、短期测试 | 通常不用 | 302 |
| 暂时搬移 API 或表单端点 | 需要 | 307 |
[!TIP] 如果你转的是一般网站页面,不要把问题搞得太学术。大多数团队只要记得「永久用 301、暂时用 302」就能避免 80% 的错误。
301 是什么?
301 Moved Permanently 代表「这个资源已经长期搬到新位置」。
常见使用情境:
/old-page永久换成/new-page- 从
old-brand.com换成new-brand.com - 把重复网址合并到唯一 canonical URL
- 全站从 HTTP 切到 HTTPS
- 旧商品页、分类页或博客路径改版后长期保留新网址
为什么 301 这么常见?
- 浏览器对它的支持最完整
- SEO 团队最熟悉它
- 它符合多数网站迁移、内容整并、网址规范化的意图
- 对博客、文件、产品页、活动页搬移来说最直观
如果你做的是典型网站迁移,301 几乎就是默认值。Google 也在 网站迁移与网址变更文件 中明确提到,搬家时要让旧网址清楚指向新网址。
如果搬家同时还要保留旧路径与 UTM 参数,建议接着看 换域名时如何保留路径与 UTM 参数。
302 是什么?
302 Found 代表「暂时搬去别的地方,但原网址之后还会回来,或至少它仍是主要位置」。
常见使用情境:
- 短期促销页导流
- 活动报名页暂时替换首页
- 系统维护期间先把部分流量导去公告页
- 可随时回滚的 A/B 测试
- 短期广告活动导到专用 landing page
302 最常见的问题,不是技术,而是管理。
很多团队会因为「先上线再说」而把永久搬家先设成 302,结果半年后还没改回来。这种情况很常发生在品牌改名、旧站转新站、产品页重构等项目。如果你知道它其实不会回来,就不要用暂时代码假装它是暂时的。
307 是什么?
307 Temporary Redirect 是保留 HTTP 方法的暂时跳转。
它的重点不是「比较新」,而是它对 request semantics 更严格。也就是说,如果原始请求是 POST,那被导走之后依然会是 POST。
这很重要的情境包括:
- 表单送出暂时切到备援端点
- API 暂时换到另一个版本或区域节点
- 结帐流程维护时把请求导到暂时路由
- 某些 App 或 service endpoint 暂时分流
对单纯页面浏览来说,307 不一定比 302 更「好」。但只要请求不是单纯 GET,你就要更小心。
308 是什么?
308 Permanent Redirect 是保留 HTTP 方法的永久跳转。
常见使用情境:
- API 版本正式搬移
- 长期更换 Webhook 接收端点
- 永久调整表单或应用程序提交路径
- 服务端端点整并,但不能把 POST 变成 GET
如果你是做内容站、品牌官网、博客、说明文件,308 不一定会比 301 带来额外好处。但如果你处理的是 API、后台整合、支付流程或表单提交,308 的讯号会比 301 更精准。
怎么更快做选择
选 301,当你符合这些条件
- 这次变更是永久的
- 用户主要是浏览一般页面
- 你在做网站迁移、域名更换、SEO 跳转或内容整并
选 302,当你符合这些条件
- 这次变更是暂时的
- 你之后还可能撤回或改掉规则
- 用户主要是浏览一般页面
选 307,当你符合这些条件
- 这次变更是暂时的
- 原本的表单或 API 方法必须保留
选 308,当你符合这些条件
- 这次变更是永久的
- 原本的表单或 API 方法必须保留
几个常见实例
例 1:整站换域名
https://oldbrand.com/pricing -> https://newbrand.com/pricing这种情况用 301。
例 2:首页暂时导去候补名单页
https://yourbrand.com -> https://yourbrand.com/waitlist如果活动结束后首页会恢复,请用 302。
例 3:API 版本永久搬移
POST /api/v1/orders -> POST /api/v2/orders如果方法必须保留,而且不是短期调整,请用 308。
例 4:结帐流程暂时切到维护页面
POST /checkout -> POST /checkout-maintenance这种短期调整,且不能改变 request 行为时,用 307 较安全。
大家最在意的 SEO 问题
302 会不会传递 SEO 讯号?
真正应该问的不是「302 会不会传」,而是:你的跳转代码,有没有诚实反映实际意图?
Google 多年来都表示,搜索引擎能理解不同类型的跳转,但你仍然应该用最符合现实的代码。在实务上:
- 如果变更是永久的,用 301 或 308
- 如果变更是暂时的,用 302 或 307
不要幻想用错误代码「骗」搜索引擎。长期来看,这通常只会让搬家策略与后续维护变得更混乱。
很多人忽略的性能问题
比起代码本身,整体跳转架构更常拖慢网站。
一个再正确的 301,只要它造成下面这些情况,体验还是会很差:
- 三层以上的跳转链
HTTP -> HTTPS -> www -> 最终网址- 行动版与桌面版导流规则不一致
- 站内还有大量内部链接指向旧网址
所以你不只要选对代码,还要检查整条导流路径。想快速验证时,可以直接用 跳转检查工具 看完整 hop。
如果你的基础设施历史包袱很多,也建议同步排查 跳转链与跳转回圈。
在 UrlEdge 里该怎么用
如果你是在 UrlEdge 里管理这些规则:
- 网站迁移
- 品牌域名整并
- 文件或博客路径调整
- 营销活动页切换
那通常可以这样理解:
- 长期网址调整,用 Permanent 301 Redirects
- 可回滚的短期变更,用 Temporary 302 Redirects
- 需要政策与团队共识时,先把 跳转类型文件 看完
如果你处理的是 API 或表单,而不是一般页面,那在规则上线前就应该把「是否要保留方法」写进需求说明。这类问题真正出事时,通常不是 SEO 掉了,而是应用程序流程直接坏掉。
最常见的错误
用 302 做永久搬家
这是最常见的错误,尤其发生在忙着上线的团队。规则先能跑就好,后面没人回头整理,最后暂时变永久。
用 301 做短期活动页
如果你本来就知道这是短期活动、快闪页、短期 A/B 测试,就不要硬用永久代码。否则你日后回滚的成本会提高。
忽略 request 方法
只要不是单纯页面浏览,307 和 308 就不能被当成冷门代码。
改对状态码,却没处理跳转链
一条干净的跳转,永远比三条技术上都「没错」的跳转更好。
FAQ
308 对 SEO 会比 301 更好吗?
不一定。对一般页面搬家来说,301 仍然是最常见也最实务的选择。只有当方法保留是明确需求时,308 的优势才会变得重要。
307 可以当成新版 302 吗?
不能完全这样理解。307 的重点是更严格地保留原本的 HTTP 方法与 body。
A/B 测试可以用 302 吗?
可以。暂时测试、短期导流、本来就可能改目的地的情境,302 很常见。
博客或文件搬家通常该用哪一种?
大多数情况下用 301。再搭配完整跳转对照表、站内链接更新与 hop 验证,效果通常比只讨论代码更重要。
相关 UrlEdge 指南
权威参考数据
相关文章
查看全部
Firebase Dynamic Links 替代方案:App 与活动链接要怎么搬?
Firebase Dynamic Links 已于 2025 年 8 月 25 日停止服务。若你还有 App 安装导流、QR Code、广告或 EDM 链接依赖旧网址,现在该把需求拆清楚再重建。

换域名时,怎么保留路径与 UTM 参数
域名跳转如果只导到首页,会弄丢深层页、活动链接与追踪参数。用保留路径、保留 query string 与一跳规则,让旧流量安全抵达新域名。