ZenCache:加速 WordPress 網站載入速度的快取 Plugin

ZenCache 是一個 WordPress 的快取 plugin,它可以讓網站頁面的載入速度大幅提升,改善使用者經驗。

網站的效能與使用者體驗息息相關,許多大網站對於網站效能進行了一些測試後,都發現網站的載入速度會直接影響網站流量與產品的銷售:

  • +500ms = 流失 20% 網站流量(Google)
  • +400ms = 流失 5~9% 完整網頁流量(Yahoo)
  • +100ms = 流失 1% 產品銷售(Amazon)

不管網站規模大小,只要載入速度太慢,網站的流量一定就會下降,而網站的流量通常也跟收益成正比,也就是說流失 20% 網站流量就等同於損失了 20% 的實質收益,因此如何讓網站達到最佳的效能是一個很重要的問題。


對於使用 WordPress 自行架站的管理者而言,可以透過安裝快取(cache)plugin 的方式來加速網站的載入速度,它的原理是將 PHP 執行的結果預先儲存起來,當有新的訪客來到時,就直接送出靜態的資料,不需要每次都執行 PHP 來產生動態的內容,節省執行 PHP 程式與 MySQL 資料庫的查詢時間,而且更可以大幅減低伺服器的負載量。

在 WordPress 的官方網站上可以找到很多 cache 相關的 plugin,我之前用過 W3 Total Cache 與 WP Super Cache,雖然功能都很強大,但是這兩個 plugins 偶爾都會產生錯誤的網頁內容,所以目前改用 ZenCache,目前感覺還不錯,在這裡跟大家分享一下測試結果。

名稱:ZenCache
網址:https://wordpress.org/plugins/zencache/

安裝與使用

以下是安裝與使用的步驟。

Step 1
ZenCache 的安裝方式就跟一般的 WordPress plugin 一樣,在 WordPress 的後台直接搜尋 ZenCache,然後安裝即可。安裝好之後,從側邊的選單中開啟 ZenCache 的設定頁面。

Step 2
一開始安裝好 ZenCache 時,預設是沒有啟用的狀態,這裡要在 Enable/Disable 中點選「Yes, enable ZenCache」。

wordpress-zencache-1

Step 3
接著設定一下快取檔案的期限,也就是你希望快取的資料隔多久要更新一次,預設是 7 天,如果你的網站不常變動,就可以設長一點,如網站的內容時常在修改,那就要設短一點。如果不知道怎麼設,直接用預設值也可以。

wordpress-zencache-2

Step 4
調整完設定後,記得按下最下方的「Save All Changes」儲存所有的設定值,這樣就完成了。之後 ZenCache 會自動處理快取的所有問題,網站管理員完全可以不用煩惱它,如果要確認快取是否有在運作,可以打開網站上任何一個網頁的原始程式碼,在預設的狀況下,ZenCache 在產生靜態網頁時會在原始碼的最後面加上一小段註解:

chrome-html-source-code

只要有看到這樣的註解就表示 ZenCache 有在正常運作,而註解中也會標示這張快取網頁的路徑、產生時間與到期時間,快取網頁過期之後,ZenCache 就會自動更新快取的內容,所以只要確認有看到這樣的註解,其餘的工作 ZenCache 都會自己處理。

由於 ZenCache 預設不會對於含有查詢(query)參數的網頁進行快取,也就是說您在登入 WordPress 之後所看到的網頁一定都是動態的,如果要檢查 ZenCache 的註解,請另外開一個沒有登入 WordPress 的瀏覽器,或是開啟瀏覽器的無痕模式來檢查。

伺服器反應時間

正常來說,啟用 ZenCache 之後伺服器的反應時間(response time)就會大幅下降,這是我的 WordPress 部落格實際測試的結果。

server-uptime-report

最左邊伺服器反應時間比較低的那段期間,我是使用 W3 Total Cache,而後來發現這個 plugin 快取的網頁會有問題(偶爾會出現空白網頁),所以就把它移除了,所以中間有一段時間是完全沒有啟用快取的狀態,伺服器反應時間明顯高出非常多,經過幾天之後,我又改用 ZenCache 這個 plugin,在啟用之後伺服器反應時間又降下來了,從這個數據就可以看出快取的重要性。

參考資料:YSlow 2.0 Presentation

WordPress

3 留言

  1. mike

    請問G. T. Wang
    那個測試網站反應時間的那張圖片
    是怎麼用的阿? ><
    去哪裡測試

  2. 谢谢推荐,我去试下!

Comments are Closed