WordPress 很慢,先不要急著換主機或裝一堆加速外掛。第一步是用 PageSpeed Insights 量出現況,看 Core Web Vitals 的 LCP、INP、CLS 哪一項不及格;接著依序檢查主機資源與 PHP 版本、快取、圖片、外掛與佈景主題、資料庫,最後是第三方程式碼。每改一項就用相同條件重測,才分得出是主機不夠力,還是網站本身太重。

常見情境:結帳轉不停、首頁大圖出不來、按鈕點了沒反應

同樣是「網站很慢」,背後原因可能完全不同。以下三種情況為示意,用來說明不同症狀該從哪一段開始看。

  • 手工烘焙坊的線上訂購站:一間由老闆兼顧門市與網站的烘焙坊,用 WordPress 加 WooCommerce 接節慶禮盒預購。一到中秋前後,結帳頁要轉很久,後台訂單列表也打不開。老闆最怕客人放棄下單。先看「第一關:主機資源、回應時間與 PHP 版本」,向主機商確認尖峰時段是否碰到 CPU 或程序數上限;再看「第二關」裡購物車與結帳頁不能整頁快取的提醒。
  • 機械零件廠的英文官網:一家三十人左右的零件製造商,海外業務反映客戶說網站開很久,首頁那張全版產品照要好幾秒才出現。業務主管擔心影響詢價。先看「先量測」那一段,分別記下手機與桌機的 LCP;再到「第三關:圖片、外掛與佈景主題」檢查首頁大圖的檔案大小與載入方式。主要客戶若在海外,主機位置與 CDN 也要一併納入判斷。
  • 補習班的招生網站:一間連鎖補習班的行銷人員,陸續在網站加了好幾段廣告追蹤碼、線上客服對話框和社群嵌入貼文。測速分數看起來還可以,家長卻說用手機點「預約試聽」常常沒反應。行銷人員最擔心名單流失。這是典型的互動延遲,先看「第四關:資料庫與第三方程式碼」,盤點每一段外部程式碼是誰加的、現在還有沒有用。

先量測:用 PageSpeed Insights 看 Core Web Vitals(LCP、INP、CLS)

把網址貼進 Google 的 PageSpeed Insights,報告分成兩部分:上方是實際使用者資料,來自 Chrome 使用者體驗報告(CrUX),統計過去 28 天真實訪客的體驗;下方是實驗室資料,由 Lighthouse 在模擬環境載入一次網頁產生,手機測試模擬的是中階手機搭配行動網路。

指標量的是什麼良好不佳
LCP(最大內容繪製)畫面上最大的圖片或文字區塊多久出現2.5 秒以內超過 4 秒
INP(Interaction to Next Paint)點擊、觸控、按鍵之後,畫面多久有反應200 毫秒以內超過 500 毫秒
CLS(累計版面配置位移)載入過程中版面跳動的程度0.1 以內超過 0.25

介於兩者之間屬於「需要改善」。Google 以第 75 百分位數來分級,也就是至少七成五的瀏覽達到良好,該指標才算良好;三項的第 75 百分位數都良好,才通過 Core Web Vitals 評估,手機與桌機分開計算。INP 在 2024 年正式取代舊指標 FID。

看報告時有幾個常見誤會:

  • 只盯著分數:實驗室的效能分數 90 以上為良好、50 到 89 需要改善、49 以下不佳。但它只是單次模擬,測試當下的網路與機器負載都會讓分數上下浮動。判斷以實際使用者資料為主,分數用來比較改善前後。
  • 找不到實際使用者資料:CrUX 只收錄造訪量夠多、可被搜尋引擎收錄的網頁。單一網頁資料不足時,報告會改用整個網域的資料;流量小的公司網站可能連網域資料都沒有,只能靠實驗室資料與自己用手機實測。
  • 只測首頁:商品頁、文章頁、結帳頁的瓶頸常和首頁不同,至少挑三種代表頁面各測一次。

把第一次量到的數字與測試時間記下來當基準線,之後每改一項都用同一組網址與裝置設定重測。

第一關:主機資源、回應時間與 PHP 版本

web.dev 把 LCP 拆成四段,第一段是伺服器送回第一個位元組的時間(TTFB),粗略的建議值是 0.8 秒以內、超過 1.8 秒屬於偏慢。TTFB 本身不是 Core Web Vitals 指標,但它太高時,LCP 很難壓進 2.5 秒。PageSpeed Insights 的實際使用者資料也列有 TTFB。

接著到 WordPress 後台的「工具 → 網站健康狀態」。「狀態」分頁會依嚴重程度列出問題,例如 PHP 版本過舊;「資訊」分頁可以看到 PHP 版本、伺服器設定、資料庫與各目錄大小,還能一鍵複製全部內容,交給主機商或工程師時很方便。

  • PHP 版本:WordPress.org 目前建議 PHP 8.3 以上。依 php.net 的支援表,8.2 的安全性更新到 2026 年 12 月 31 日為止,8.3 到 2027 年底,8.4 與 8.5 分別到 2028、2029 年底;8.1 以前的版本已不在支援表上,不再有官方安全修補。WordPress 官方文件也提到新版 PHP 通常帶來效能改進。升級前先在測試環境確認舊外掛與佈景主題相容,再切換正式站。
  • 記憶體上限:WordPress 前台預設記憶體上限為 40MB(多站台 64MB),後台管理作業最多拉到 256MB,但都不能超過主機 php.ini 的設定。外掛多、使用頁面編輯器的網站容易碰到上限,症狀常是頁面空白或報錯。
  • 共用主機的資源限制:虛擬主機通常會限制 CPU、同時執行的程序數與磁碟讀寫量。平常正常、只有尖峰變慢或出現 503 錯誤,很可能就是撞到上限,請主機商調出該時段的資源使用紀錄。
  • PHP 位元碼快取(OPcache):WordPress 官方效能文件指出,啟用位元碼快取能大幅加快 PHP 執行。多數主機預設開啟,可向主機商確認。

第二關:頁面快取、物件快取、瀏覽器快取與 CDN

WordPress 每次開頁都要執行 PHP、查資料庫、組出 HTML。快取的作用是把結果存起來,下一位訪客直接拿現成的,不必重算。WordPress 官方效能文件把快取分成幾層,各自處理不同的瓶頸:

快取類型做什麼誰來設定
頁面快取把整頁存成靜態檔,對內容少變動的官網、文章頁最有效快取外掛,或主機層提供的快取功能
持續性物件快取把常用資料放在記憶體、減少資料庫往返,適合購物車、會員這類無法整頁快取的網站主機提供快取伺服器,再搭配對應外掛
瀏覽器快取讓回訪者重複使用已下載的圖片、CSS、JavaScript伺服器回應的快取標頭,或外掛設定
CDN把圖片、CSS 等靜態檔放到離訪客較近的節點,部分 CDN 也能快取整頁CDN 服務與 DNS 設定

設定快取時最常見的四個錯誤:

  1. 同時裝兩個以上快取外掛:功能重疊會互相干擾,出現版面錯亂或更新內容卻看不到。只留一個;主機層已有快取時,先問清楚再決定。
  2. 購物車、結帳、會員頁被整頁快取:可能讓訪客看到別人的購物車內容或登入狀態錯亂。這些頁面必須排除在頁面快取之外,WooCommerce 網站設定完要用兩個帳號實際下單測試。
  3. 改了內容沒清快取:以為網站壞了,其實是舊版本還存在快取裡。改版、換圖後記得清快取。
  4. 把快取當萬靈丹:頁面快取能掩蓋前台的慢,卻救不了後台與結帳流程。暫時關掉快取後 TTFB 仍然偏高,問題還是在主機或程式本身。

測試快取效果時,用無痕視窗、在登出狀態下測。很多快取設定對已登入者不生效,登入時的速度不等於訪客體驗。

第三關:圖片、外掛與佈景主題

主機與快取都沒問題,LCP 或 CLS 還是不及格,通常要回到網站內容本身。

圖片:先在 PageSpeed Insights 的診斷項目找出 LCP 元素是哪一張圖。常見情形是上傳了相機原檔或好幾 MB 的設計稿,再靠網頁縮小顯示。處理原則:

  • 上傳前依版面實際需要的寬度縮圖並壓縮,可考慮檔案較小的 WebP 格式;可有可無的裝飾圖直接拿掉。
  • WordPress 從 5.5 版起預設替圖片加上延遲載入,但首屏主圖不該延遲。web.dev 明確提醒不要對 LCP 圖片延遲載入,否則必定多出等待時間;可以替這張圖提高下載優先順序,但只限一兩張。
  • 圖片與影片要有寬高資訊,瀏覽器才能預留空間,避免內容載入後往下跳、拉高 CLS。從媒體庫插入的圖片,WordPress 會自動補上寬高;自己貼的 HTML、廣告與外部嵌入則要另外檢查。
  • 首頁輪播的大圖,訪客多半只看第一張,其餘卻一起下載。

外掛:外掛數量本身不是重點,重點是每個外掛在每一頁載入多少程式碼、做多少資料庫查詢。WordPress 官方建議停用並刪除用不到的外掛。要找出拖慢速度的外掛,可以安裝官方目錄的 Health Check & Troubleshooting 外掛,啟用「疑難排解模式」:只在你自己的登入工作階段停用所有外掛、改用預設佈景主題,訪客看到的仍是正常網站。接著逐一啟用外掛並比較速度,就能縮小範圍。

佈景主題:功能大而全的多用途主題與頁面編輯器,常在每一頁載入大量 CSS 與 JavaScript。換主題等於整站改版,不是第一步;但如果網站本來就要重新設計,選擇輕量主題會比事後補救有效。

第四關:資料庫與第三方程式碼

資料庫:網站經營幾年後,資料庫會累積大量文章修訂版本、垃圾留言、過期暫存資料,以及已刪除外掛留下的設定。WordPress 官方效能文件提到幾個檢查點:

  • 資料表使用 InnoDB 引擎;舊網站若還有 MyISAM 資料表,建議轉換。
  • 每次開頁都會自動載入的設定(autoload)總量,建議控制在 800KB 以下。超過時,常見元兇是已移除外掛的殘留設定,可請工程師查詢 wp_options 資料表。
  • 文章修訂版本可在 wp-config.php 以 WP_POST_REVISIONS 限制保留數量,例如只留最近幾版。
  • 動手清理前一定先備份資料庫。

WordPress 內建的排程(wp-cron)會在訪客開頁時檢查有沒有待執行的工作,一般網站負擔不大。若排程工作很重,可以請工程師在 wp-config.php 設定 DISABLE_WP_CRON,改由主機的排程功能定時觸發。

第三方程式碼:廣告追蹤碼、分析工具、線上客服、社群嵌入、外部字型與地圖,都是從別人的伺服器載入的程式。web.dev 指出這類程式會增加連線次數、佔用瀏覽器主執行緒,其中一個伺服器反應慢,還可能拖住整頁。它們最常反映在 INP:使用者點了按鈕,瀏覽器卻正忙著執行別人的程式。INP 需要真實操作才量得到,實驗室報告的總封鎖時間(TBT)可以當參考,但不能取代 INP。處理方式:

  1. 列一張清單:每段外部程式碼是誰、為了什麼加的,現在還有沒有人在看它的數據。沒人用的直接移除。
  2. 非必要的程式改成非同步或延後載入,不擋住頁面顯示。
  3. 地圖、影片、社群貼文等嵌入內容,等訪客捲動到附近再載入。
  4. 用標籤管理工具集中管理追蹤碼的網站,也要定期清掉裡面已失效的標籤。

判斷清單:主機不夠,還是網站本身太重

這是要不要換主機的關鍵。方法是把伺服器端與瀏覽器端分開看:

觀察到的現象比較可能的原因下一步
TTFB 偏高,在疑難排解模式停用全部外掛後依然很慢主機資源、主機位置或 PHP 環境確認 PHP 版本與資源限制,評估升級方案
TTFB 正常,LCP 慢圖片太大、首屏主圖被延遲載入、CSS 或 JavaScript 擋住畫面回到第三關處理圖片與主題
停用某個外掛後明顯變快該外掛找替代外掛,或請開發者調整
只有尖峰時段變慢或出現 503主機資源上限請主機商提供資源使用紀錄,考慮提高規格
前台快,後台與結帳慢資料庫查詢多、沒有物件快取、主機效能檢查資料庫與物件快取
載入正常,點擊沒反應第三方程式碼或主題的 JavaScript回到第四關盤點外部程式碼

確定是主機不夠時,也要分清楚是「方案規格不夠」還是「主機類型不適合」。一般形象官網與部落格,在設定合宜的 WordPress 主機或虛擬主機上多半就能跑得順;流量大、外掛多的購物網站,或需要自行調整 PHP 與快取伺服器設定時,才需要考慮 VPS 這類可分配獨立資源的環境。提高規格前,先把網站本身的問題處理掉。

另有兩種變慢不屬於效能調校。第一種是網站被植入惡意程式,常伴隨不明轉址、陌生管理員帳號或主機商警告,請改看網站被駭的處理步驟。第二種是短時間內湧入大量陌生來源的流量,可能是攻擊,請參考遭受 DDoS 攻擊時的應變。這兩種情況靠效能調校解決不了。

找凱斯騰協助前,先準備這些:WordPress 速度診斷資料

速度問題要診斷得準,需要知道網站跑在什麼環境、慢在哪個環節。洽詢前請盡量備齊:

  1. 網站網址,以及最慢的兩三個代表頁面,例如首頁、商品頁、結帳頁。
  2. PageSpeed Insights 的手機與桌機報告連結或截圖,並註明測試日期。
  3. 從「網站健康狀態」資訊頁複製出來的內容,包含 WordPress 與 PHP 版本、佈景主題與外掛清單。
  4. 目前的主機商與方案名稱,以及主機商是否通知過資源超量。
  5. 變慢大約從何時開始,前後做過哪些變更,例如裝新外掛、換主題、加追蹤碼或辦大型促銷。
  6. 慢的是前台、後台還是結帳流程;是固定時段慢,還是一直都慢。
  7. 網站上有哪些外部程式碼與嵌入服務,各由誰負責管理。
  8. 目前用的快取外掛名稱,以及是否已啟用主機層快取或 CDN。
  9. 網站若是外包廠商製作,誰持有後台管理員與主機控制台帳號。

凱斯騰可以從主機端協助判斷網站適合放在什麼環境,例如評估改用 WordPress 主機或 VPS 是否合適;網站若需要改版,也能透過 WordPress 架站服務重新規劃佈景主題與外掛組合。資料整理好後,從聯絡表單送出,或寄到 [email protected],並附上網站用途與大概的每月訪客量,方便先判斷方向。

常見問題

裝了快取外掛,PageSpeed Insights 分數還是很低,為什麼?

頁面快取主要縮短伺服器產生 HTML 的時間,對超大圖片、阻擋畫面的 CSS 與 JavaScript、第三方追蹤碼幫助有限。打開報告的診斷項目,看拖累分數的是哪一類資源,再對應到圖片、主題或外部程式碼去處理。

效能分數一定要拚到 90 分以上嗎?

不一定。分數是單次模擬,每次測都會浮動;真實訪客的 LCP、INP、CLS 達到良好,比分數本身更重要。若網站沒有實際使用者資料,就把分數當成改善前後的比較工具,搭配手機實測。

升級 PHP 版本會不會讓網站壞掉?

有可能,尤其是很久沒更新、或已停止維護的外掛與佈景主題。升級前先完整備份,最好在測試環境試跑;切換後若出現錯誤,多數主機控制台可以把 PHP 版本切回原本的設定,再逐一找出不相容的元件。

WordPress 外掛裝幾個算太多?

沒有固定的安全數字。一個寫得差的外掛,影響可能比十個輕量外掛還大。與其數數量,不如定期盤點每個外掛的用途與更新狀態,並用疑難排解模式實際測出哪一個拖慢速度。

換到規格比較好的主機,網站就一定會變快嗎?

只有當瓶頸在伺服器端時才會明顯。如果 TTFB 本來就正常,慢的是圖片或外部程式碼,換主機後的體感差異會很小。先依本文的順序找出瓶頸,再決定要不要搬家。

需要協助評估?

把您目前的網域、主機與網站狀況告訴我們,我們會協助判斷下一步。想先簡單問問,也可以加入 LINE 官方帳號留言。

填寫聯絡表單 LINE 洽詢

參考資料

  1. web.dev:Web Vitals(查閱日期:2026-10-17)
  2. web.dev:Defining the Core Web Vitals metrics thresholds(查閱日期:2026-10-17)
  3. web.dev:Largest Contentful Paint (LCP)(查閱日期:2026-10-17)
  4. web.dev:Optimize Largest Contentful Paint(查閱日期:2026-10-17)
  5. web.dev:Interaction to Next Paint (INP)(查閱日期:2026-10-17)
  6. web.dev:Cumulative Layout Shift (CLS)(查閱日期:2026-10-17)
  7. web.dev:Time to First Byte (TTFB)(查閱日期:2026-10-17)
  8. web.dev:Loading Third-Party JavaScript(查閱日期:2026-10-17)
  9. Google for Developers:About PageSpeed Insights(查閱日期:2026-10-17)
  10. Chrome for Developers:CrUX methodology(查閱日期:2026-10-17)
  11. WordPress.org:Requirements(查閱日期:2026-10-17)
  12. PHP.net:Supported Versions(查閱日期:2026-10-17)
  13. WordPress Advanced Administration:Optimization(查閱日期:2026-10-17)
  14. WordPress Advanced Administration:PHP(查閱日期:2026-10-17)
  15. WordPress Advanced Administration:Editing wp-config.php(查閱日期:2026-10-17)
  16. WordPress.org Documentation:Site Health screen(查閱日期:2026-10-17)
  17. WordPress.org Plugins:Health Check & Troubleshooting(查閱日期:2026-10-17)
  18. Make WordPress Core:Lazy-loading images in 5.5(查閱日期:2026-10-17)