避免重定向


第一部分 – 第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