HTTP 301 Moved Permanently

永久重定向:资源已迁移到新 URL,所有人都应更新其链接。

HTTP 301 是什么意思

HTTP 301 Moved Permanently 告诉客户端,请求的 URL 已被 Location 头中的地址永久替代。浏览器会自动跟随并大量缓存该重定向;搜索引擎会随着时间将旧 URL 的排名信号转移到新地址上。

一个细节:301 允许客户端在重定向请求中将 POST 改为 GET。如果必须保留方法和请求体,应改用 308 Permanent Redirect。

301 响应的常见原因

  • 网站迁移到了新域名,或从 http:// 迁移到 https://。
  • URL 结构发生变化(重命名了 slug、移除了目录),旧路径重定向到新路径。
  • 服务器强制执行 www / 非 www 或末尾斜杠的规范化。
  • 重定向链:经过多次迁移后,多个 301 串联在一起。

开发者的最佳实践

  • 一跳直达最终 URL——多个 301 串联的重定向链会浪费抓取预算并拖慢用户访问速度。
  • 由于浏览器会长时间缓存 301,部署前请务必仔细核对目标地址;撤销一个错误的 301 需要用户手动清除缓存。
  • 迁移完成后,永久重定向至少应保留一年,以便搜索引擎充分转移信号。

示例响应

HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-path/
Cache-Control: max-age=31536000

SEO 影响

301 是 SEO 迁移的主力状态码:它将大部分链接权重传递给目标 URL,并告诉搜索引擎索引新地址。任何永久性的 URL 变更都应使用它,但不要把所有内容都重定向到首页——应将每个旧 URL 重定向到与其最接近的等价页面。

常见问题

301 重定向会传递 PageRank 吗?

是的。Google 已确认 301(以及 302)重定向会将排名信号传递给目标 URL,不过整合信号需要时间。

301 与 302 有什么区别?

301 是永久的——缓存和搜索引擎都会更新为新 URL。302 是临时的——原 URL 仍是规范地址。

301 和 308 有什么区别?

两者都是永久重定向,但 308 禁止更改 HTTP 方法:POST 仍然是 POST。301 则允许客户端切换为 GET。