WordPress效能維運

WordPress 很慢?六個常見原因,照順序查就好

約 6 分鐘

客戶反映網站很慢,第一個念頭常常是主機不夠力,於是升級方案。錢花了,速度沒差多少。這種事我看過不少次,而且原因幾乎都一樣:真正拖慢網站的東西還在,只是換了一台跑得比較快的機器來拖它。這篇照影響大小排出六個常見原因,每一個都能自己查,查完再決定要不要花錢。

1. 先量,不要憑感覺

自己開網站覺得慢,可能只是當下的網路狀況。動手改任何東西之前,先取得一組客觀數字,之後才知道改動有沒有效。

最省事的方式是把網址丟進 Google 的 PageSpeed Insights。它會給你行動版與桌機版兩組分數,並列出拖慢載入的具體項目。行動版才是重點,多數台灣中小企業網站的行動版流量比桌機高,而行動版通常慢得多。桌機版的分數常常好看到讓人以為沒事。

測的時候別只測首頁。首頁通常是最被照顧的一頁,內容頁與列表頁往往才是問題所在。三種頁面各測一次,你會比較快找到方向。

2. 外掛太多,或某一支特別重

這是最常見的原因,而且通常不是「哪一支很爛」,是累積出來的。每一支啟用的外掛都會在每次載入時執行程式,很多還會各自載入自己的樣式與腳本檔案。裝了三十支的網站,光是這些額外的檔案就足以拖垮載入。

先做的不是最佳化,是盤點。把所有已啟用的外掛列出來,一支一支問自己現在還在用嗎。用不到的直接刪除,不要只是停用;停用的外掛檔案還在主機上,一樣可能被掃描與利用。

接著看有沒有功能重複的。同時裝兩套快取、兩套 SEO、兩套表單的網站比想像中多,那不但沒有加成,還常常互相打架。同類型的只留一支。

如果刪完還是慢,就得找出特別重的那幾支。做法很土但有效:在測試環境逐一停用,每停一支就重測一次。這件事一定要在測試站做,不要在正式站上實驗,停錯外掛可能讓某個功能整個消失。

3. 圖片沒有處理過

手機拍完直接上傳的照片,一張常常好幾 MB。瀏覽器要先把它下載完才畫得出來,一頁放五張就是幾十 MB。這是所有原因裡最容易處理、效果也最直接的一項,通常改完當天就看得到差別。

處理的原則只有一句:不要讓瀏覽器下載它用不到的畫素。版面上只有 800 像素寬的位置,就不需要 4000 像素的原圖。上傳前先縮到實際顯示的大小,再轉成壓縮率較好的格式,同樣的畫質可以省下一半以上。

上傳前的三個動作

  • 縮到實際顯示的尺寸。版面多寬就多寬,不要用原圖。
  • 轉成壓縮率較好的格式。同畫質可以省下一半以上的檔案大小。
  • 標明寬高。沒標的話載入時版面會跳動,那也算在使用體驗的評分裡。

另外一個常被忽略的設定是延後載入。首屏以外的圖片可以等捲動到才下載,但首屏那一張反而不要延後,它通常就是決定「畫面多久出現」的那個元素,延後了分數反而更差。

4. 沒有做快取

WordPress 每次有人來看,都會執行程式、查資料庫、把頁面重新組出來。同一頁被看一百次,就組一百次。快取的作用是把組好的結果存起來,下一個人來直接給他,省掉整段運算。

對沒有登入、沒有購物車的內容型網站,整頁快取的效果最明顯,常常是幾倍的差距。裝一套快取外掛,開啟整頁快取,多數網站當場就快很多。

還有一件小事常常讓人白忙:改完內容記得清一次快取。不然你看到的還是舊版,會以為改動沒生效而反覆重做。

5. 佈景主題本身太肥

市面上主打「多用途」的佈景主題,為了讓你在後台什麼都能調,內建了大量功能與版型。問題是那些你用不到的部分,往往還是會被載入。

先去主題設定裡找有沒有「只載入用到的模組」這類開關,有的話把用不到的關掉。內建的輪播、動畫、字體圖示如果沒在用,通常也能個別關閉。光是這一步,有些主題就能少掉不少檔案。

換主題請排在最後考慮。那是大工程,版面要重做、內容要搬、還可能牽動外掛相容性。先把外掛、圖片與快取處理完,多數網站就已經夠快了。

6. 字型與外部服務

中文字型檔本身就大,一套全字集動輒好幾 MB。如果又是從外部服務載入,還要多等一段建立連線的時間。把字型改成自己主機提供、並只保留站上用得到的字,體積可以差好幾倍。

除了字型,社群外掛、分析工具、聊天視窗、廣告碼也都是外部請求。每一個都要另外連一次別人的伺服器,而那段等待發生在畫面出現之前。先盤點頁面實際連了幾個外部網站,用不到的追蹤碼與社群按鈕直接移除,通常會清掉不少。

留下來的那些,可以改成捲動或點擊之後才載入。聊天視窗尤其適合這樣處理,沒有人一進站就要跟客服講話。

7. 什麼情況才真的該換主機

上面五項都做完還是慢,才輪到主機。判斷的方式不是看方案名稱寫幾核幾 GB,是看幾個具體的症狀。

症狀可能的原因
前台快、後台慢主機運算資源不足。後台不吃快取,所以最誠實地反映機器的實力
尖峰慢、離峰正常共享主機的鄰居在搶資源,隔離程度由主機商決定,你看不到也管不了
商品或文章數千筆時特別慢資料庫查詢本身的問題,要處理的是資料庫不是方案
整體都慢一點點主機在國外而客戶在台灣,連線本身就多了一段延遲

WordPress 的慢多半是累積出來的:外掛越裝越多、圖片越傳越大、主題功能開了沒關。照上面的順序查一輪,多數網站不用換主機就會快很多。真的處理完還是慢,那時候升級才花得有道理,而且你會知道自己在為什麼付錢。

常見問題

裝了快取外掛還是很慢,是為什麼?
快取解決的是「組頁面」的時間,不會讓圖片變小,也不會減少外部請求。如果慢的原因是幾張未壓縮的大圖或一堆追蹤碼,快取幫不上忙。先用 PageSpeed Insights 看它列出的項目,那份清單通常直接告訴你問題在哪一類。
外掛裝幾支算多?
沒有固定數字,重點是每一支都在用、而且沒有功能重複。十支各司其職的外掛,可能比五支肥大的還快。實務上比較有用的判斷是:停用某一支之後速度明顯變好,那支就值得找替代方案。
升級主機方案有用嗎?
有用但通常不是最划算的第一步。主機升級是每月固定支出,而外掛精簡、圖片壓縮、快取設定是一次性的工作。先做完那些,多數網站就不需要升級了;真的做完還是慢,那時候升級才花得有道理。

延伸閱讀