很久一段時間沒有寫 blog,Wordpress 也跟著年久失修。順手升級到 WordPress 3.0.5 後,發現網頁載入時間長達五、六秒。緩慢的 wordpress 除了翻資料很慢,也很可能被搜尋引擎降級

於是乎,翻出 Firebug, YSlow, Page Speed 出來診斷一番。主要有幾個問題

  • WordPress PHP 網頁產生很慢
  • WordPress 用了太多 js/css file, 瀏覽器要抓超過十個檔案
  • 靜態檔案沒有作 cache control

首先是 WordPress 生頁面超過一秒,這顯然是因爲資料庫太慢的緣故。目前 Blog 跑在某臺稍微有點負載的機器,MySQL 的速度頗慢,調查了一下 WordPress 的快取模組如 Super Cache 等,最後選裝了 Hyper Cache

至於 WordPress 用了一堆 js/css ,偷懶的方法則是裝 WP Minify,它整合了 Minify。簡單講就是把 js/css 程式碼合併在一起,移掉註解並壓縮起來,所以原本超過十個 Http Request 會被簡化成 2 個 (CSS, Javascript)。如果你像我一樣在 UserDir 中裝 wordpress,要關掉設定中的 Automatically set your Minify base per siteurl setting,並手動在 wp-minify/min/config.php 中設定 $min_documentRoot 參數。

若網站除了 WordPress 外,還有其他網站,Google 也出了一套 mod_pagespeed,可以在 Apache2 模組中動態修改輸出的 CSS/Script 檔案。

至於最後一項靜態檔案的 Cache control,則把 mod_expires 開起來,時間設一設就搞定了。

其他還可以做的除了把機器搬到快一點的網路或檔案丟到 CDN 上外。還可以用 HeadJS Loader (HeadJS) 讓舊款不會卡在逐一載入 Javascript 的程序上。也可以裝 jQuery Image Lazy Load 讓網頁先顯示,再慢慢下載圖片。

參考資料

遠端測試工具

  • Frank

    的確不少人都反映這個WordPress怎么這么慢……

  • Sukiyaki3b

    裝了WP Minify 後,Theme都跑不出來,網站破相,請問要怎麼設定?
    真的需要整合,因為我的網站因為太多CSS。JS要載入,所以速度很慢。
    請站長教學一下。
    另外如果裝了MINIFY是不是HeadJS Loader就可以不用裝???