SEO 百科

重定向

本页目录

重定向

重定向 是把一个网址解析到另一个网址,等于告诉访问者和搜索引擎:这个网页已经有了新地址[1]。用户通常分不出重定向的类型,Google 搜索却会按类型区别对待,某些类型会被当作指示,说明重定向的目标应当是规范网址[1]。

四种典型场合

Google 列出的使用情形有四种[1]。网站搬到新网域,希望迁移过程尽量顺畅。用户能从多个地址访问同一处内容,这时要选一个作为规范目标,其余地址用重定向转过去,Google 举的首页形状见下面三行[1]:

https://example.com/home
http://home.example.com
https://www.example.com

合并两个网站,要保证指向旧地址的链接落到正确页面上。移除了某个网页,希望用户被转到新网页。

永久与临时的分界

选哪一种,看两件事:希望它生效多久,以及想让结果里展示哪个页面[1]。

永久重定向让结果里显示新的目标地址[1]。Googlebot 会跟着走,索引系统把它当成一个信号,表明重定向目标应是规范网址[1]。

临时重定向让结果里继续显示源网页[1]。Googlebot 同样跟,但索引系统不把它当规范信号;如果有别的规范化信号在,目标页仍可能被编入索引[1]。

实现方式按可靠性排

Google 排了一个顺序,按被它正确解析的可能性来定,服务器端重定向最容易被正确解析[1]。

类型 实现方式
永久:301、308 服务器端重定向
永久:meta refresh(0 秒)、HTTP refresh(0 秒) meta 刷新
永久:JavaScript location 脚本跳转
永久:Crypto 重定向 加密改写地址
临时:302、303、307 服务器端重定向
临时:meta refresh(超过 0 秒)、HTTP refresh(超过 0 秒) meta 刷新

要改一个网页在结果里显示的地址,Google 的建议是尽可能用永久服务器端重定向,它说这是确保用户和搜索都走到正确网页的最佳做法[1]。只想暂时把用户转到另一页时用临时重定向,这样搜索引擎不受影响,旧地址能留在结果里[1]。它给的场景是站点某项服务临时不可用,转到说明页也不影响原地址的展示[1]。

落地的位置在服务器或脚本

服务器端重定向取决于托管环境或后端语言[1]。要访问服务器配置文件,例如 Apache 上的 .htaccess,或者用服务端脚本设置重定向标头[1]。

PHP 的做法是调用 header(),而且必须在向屏幕输出任何内容之前设置[1]。Apache 上最简单的写法用 mod_alias,永久与临时各一条指令[1]。这两类写法各成一节,具体代码在 301、302 这些子条目里。

每一条各有词条

301、302、307 与 308、元刷新重定向、JavaScript 重定向、链式重定向 都单独成篇[2]。这一条只讲怎么在它们之间选,具体配置去那些篇里查。

抓取一侧有一条通用规则:Google 抓取工具默认最多跟踪 10 次重定向,特定产品的抓取工具可能另有上限[2]。robots.txt 这一份文件更严,Google 只按 RFC 1945 跟至少五次重定向,之后把它当 404 处理[3]。链太长会把信号磨薄,这一点在链式重定向那一篇里另有说明。

附录

参见

参考资料

官方(境外)

  1. 《重定向和 Google 搜索》,Google 搜索中心。
  2. 《HTTP 状态代码对 Google 抓取工具的影响》,Google 搜索中心。
  3. 《Google 如何解读 robots.txt 规范》,Google 搜索中心。

外部链接