避免重定向


第一部分 – 第19章

重定向是一种自动将网站用户从一个页面带入另一个页面的方法。移动网站应尽可能避免使用任何重定向,因为在移动网站页面上部署的任何重定向都会极大减缓页面的加载速度

两种主要的重定向类型:

  • 服务器端重定向
  • 客户端重定向

服务器端重定向

  • 301和302重定向都是服务器端重定向,在重定向时网络浏览器通过HTTP自动将用户从一个页面带到另一个新的/不同的地址。
  • 301重定向意味着这个页面已经被永久转移至新的地址。302重定向意味着页面已经被临时转移至新的地址。
  • 服务器端重定向相比其他重定向方法,相对更快,而且可缓存。

客户端重定向

  • 客户端重定向由JavaScript或者网站页面层级的http-equiv=“refresh”触发。
  • 客户端重定向一般更慢,而且不可缓存。
  • 客户端重定向可能无法正确传递用户的参考信息到基于JavaScript的分析工具,例如Google Analytics。

从桌面站点重定向至移动站点(当在移动屏幕上浏览时)

现实情况是,在某些情况下完全无法避免重定向。

例如,你的桌面站点可能部署服务器端重定向,当用户使用移动设备访问你的桌面站点时,引导用户到你的全站级别的移动版本站点上。

这个重定向设置背后的原因就是为了改善用户体验。移动设备用户也会回访问你的网站的桌面版本(例如www.example.com)。但是,在移动屏幕上,浏览桌面站点的用户体验可就太糟了。这会导致大多数用户立即离开桌面站点。

在这种情况下,你会真的需要移动用户能登陆到移动站点上(例如m.example.com),可以通过部署重定向来实现。

缺点就是服务器端重定向会减缓移动网站页面的加载速度。

避免所有客户端重定向,减少服务器端重定向

至少你可以:

  • 避免任何客户端重定向,由于客户端重定向相对较慢而且经常导致错误地记录用户参考信息。
  • 仅当没有其他可行选择时,才部署客户端重定向。
  • 决不链接至一个部署了重定向的网站页面。例如,如果当访问www.example.com/redirecting.html时,重定向到了 www.example.com/redirected.html,那么如果你曾经链接到第一个页面,应该更改为链接到 www.example.com/redirected.html。
  • 决不设置一个以上的重定向用来从一个页面转到另一个页面。例如,如果你所需要的只是从页面A转到页面C,那么只需要创建一个服务器端重定向,不用创建从页面A到页面B,以及页面B到页面C两个重定向。

检查重定向的工具

为了检查一个页面(URL)是否设置了重定向,可以使用Redirect Checker工具

  • www.redirect-checker.org


移动网站性能技术白皮书在2017年3月正式出版。

英文版:Avoid Redirects – 繁体中文版:避免重定向







移动网站性能技术白皮书上的内容按下列许可协议发布: CC Attribution-Noncommercial 4.0 International

Gordon Choi's Mobile Website Book