Intro
WordPress 是最受歡迎的 blog 系統,不過經多年發展功能雖然成熟,但它速度一向都是軟肋。
雖然我們看到的 WordPress 網站好像靜態網頁,但實制上 WordPress 是「即叫即制」的動態網頁,網頁上的所有元素都是即時由 database 不同部份集合而來做出一頁。
這種方法好處當然是易於維護,試想想如果你想加一個 widget 在旁邊,現在只要更改 database 一次,所有 post 都會更改,但如果是靜態網頁的話,就需要逐個逐個 post 更改,相信沒有人會這樣做。
但這樣的話每一個 visitor 來網站的時候,都需要讀 database 數次, 速度慢而且需要使用大量資源,如果人數一多就很易死機。
所以如果想加速 WordPress,最直接的方法莫過於使用一部強勁的伺服器,和選擇一部伺服器的地理位置接近網站的主要讀者群。但是在有限資源情況下,如何優化 WordPress 亦是重要解決方法之一。
優化方法主要就要將動態的網頁,預先制作成靜態的 HTML,當用戶來到的時候就直接讀最 HTML 檔案就可以了,另外亦可以壓縮 Javascript,令執行時可以更快速。
W3 Total Cache
W3 Total Cache (W3TC) 是 WordPress 最全面的優化 plugin,由 Page Cache 到 JS, CSS minify, CDN 等等全面照顧周到,不過就需要有多項設定。而另一個簡單一些的 plugin — WP Super Cache,就只有 page cache 功能,但基本上只需要 install & run 就可以,沒甚麽需要設定。
如果想免費完全加速的話,就最好用 W3 Total Cache 了,設定了一次後以後就 ok 了。
安裝 W3TC
安裝 W3TC 和其他 plugin 一樣那麽簡單。
設定 W3TC
首先大家會接觸到的是 General Settings. General Settings 是控制每一個功能的開關。
在 General Settings 你會看到大量不同種類的 cache 設定如 page cache, object cache, database cache 等等,一般來設只需要開啟 page cache 就可以了
你只需要更改以下設定
Page Cache
Page Cache : Enable (tick)
Page cache method: Disk: Enchanced
Minify
Minify : Enable (tick)
Minify mode : Manual
(其他維持 default settings)
Database Cache
Database Cache: Enable (untick)
其他不變
Database cache 其實作用不大,速度反而可能下降
Object Cache
Object Cache: Enable (untick)
其他不變
Object Cache 和 DB Cache 一樣,都是沒有甚麽用,繼續 unclick 就可以了。
Browser Cache
Object Cache: Enable (tick)
Browser Cache 是另一個最重要的 Cache,這個 cache 是指令網頁的 HTML, CSS, 相片等下載到用戶電腦後,會保留多久。
CDN
CDN: Enable (tick)
CDN Type: General
CDN 全名 Content delivery network,是一個全世界各地都有 server,當用戶想去你的網站時,就會去最近的 CDN server,不用越洋過海,所以速度會快很多。還有資源都由 CDN 直接到用戶那裏,不用自己 server,所以 bandwidth, server loading 都可以大大降低。所以可以用一個較弱的 server 依然可以提供一等一的速度。
提供 CDN 服務的有 Amazon, MaxCDN 等等,不過這些都是收費,但 General 這個設定依然可以免費地提高速度。