幾乎每一次 WooCommerce 效能排查都從同一個場景開始。店主已經換了更快的主機,裝了快取外掛,還買了圖片最佳化工具,網站卻依然慢。於是他們得出結論:WooCommerce 本來就重,然後就此放棄。
WooCommerce 確實比一個型錄式網站重,這在每個頁面都可能帶著購物車的前提下無法避免。但一個要六秒才打得開的商店,承受的並不是這份開銷。它承受的是某個具體的東西,而以我的經驗,幾乎總是四件事之一。
一句話版本: 商店慢,是因為購物車和結帳頁無法進入頁面快取,因為 options 資料表被自動載入的垃圾資料撐到臃腫,因為商品查詢在掃描一張沒有索引的中繼資料表,也因為三十個外掛各自往每個頁面塞自己的指令碼。主機是最後才該換的東西,不是最先。
商店為什麼和部落格不一樣
理解一個區別,就能解釋 WooCommerce 大部分的效能表現。
一篇部落格文章對每位訪客都相同,所以可以產生一次、從快取發給所有人。型錄式網站幾乎不管怎麼做都快,原因就在這裡。商店沒辦法在每個頁面這樣做,因為購物車是私人的。訪客加入一件商品的那一刻起,頁面就必須反映他自己的狀態,而不是一份共用的副本。
結果就是購物車、結帳和帳戶頁完全繞開頁面快取,在每一次請求裡執行 PHP 和資料庫查詢。而這幾個頁面恰好也是慢會直接讓你虧錢的地方。分類頁慢,丟的是隨便看看的人;結帳頁慢,丟的是已經準備付錢的人。
所以有用的問題從來不是我的網站快不快,而是對一個已登入、購物車裡有東西的訪客來說,我的網站有多快。請專門量測那個狀態,因為你的營收依賴它,而幾乎所有合成速度測試都會漏掉它。
真正出問題的四件事
臃腫的 options 資料表。 WordPress 在每一次請求裡都會載入一批 options,而外掛可以隨意往裡面寫。被移除的外掛把自己的資料列留下,是常態而不是例外。在老店鋪裡,這張表會長到數十 MB 的自動載入資料,並在包括結帳頁在內的每一次頁面瀏覽中被讀取。它看不見,它會不斷累積,而它也是回報最高的修復之一。請先看自動載入 options 的總大小;如果這個數字要用 MB 而不是 KB 來衡量,你已經找到了實打實的時間。
打在無索引中繼資料上的商品查詢。 WooCommerce 在歷史上把商品屬性、價格和庫存放在一張與其他一切共用的通用中繼資料表裡。篩選或排序一個大型錄,意味著反覆連接這張表。幾百個商品時沒人會注意。到了幾萬個,分類頁和篩選頁就慢成用爬的。較新的 WooCommerce 版本把訂單資料遷到專用資料表,正是為了緩解這份壓力;在一個有長訂單歷史的店鋪上啟用這種儲存方式,通常單憑這一項就值得做。
外掛與外部呼叫
關鍵路徑上的外掛泛濫。 問題很少出在數量本身,而在於大多數外掛把自己的 CSS 和 JavaScript 載入到每一個頁面,而不是只在需要的地方。一個只用在某一頁的預約外掛,會把它的資源載入到你的結帳頁上。修復方式並不體面:逐個查清每個外掛載入了什麼,在它自己的頁面之外把資源卸掉,並刪除任何你說不出用途的東西。
沒有快取的第三方呼叫。 即時運費、稅率查詢、貨幣換算,以及向外部系統核對庫存,都會在頁面載入內部塞進一個網路請求。當那家供應商慢,你的結帳就慢;當它掛掉,你的結帳也掛掉。請求路徑上的每一個外部呼叫都需要逾時、快取和備援方案。缺了這三樣,別人的故障就直接變成你的營收故障。我們關於第三方 API 整合 的指南講了這部分該怎麼建。
真正有用的措施,照順序來
請按這個順序推進,因為每做完一步,下一次量測告訴你的東西都會變。
物件快取,而不只是頁面快取。 頁面快取送出的是整頁 HTML,幫不了購物車和結帳。持久的物件快取把資料庫查詢的結果放進記憶體,加速的恰恰是頁面快取碰不到的那些頁面。對商店而言,這通常是單項收益最大的改動,同時也是最常被跳過的一步,因為已經裝好的快取外掛讓人誤以為事情辦完了。
資料庫維護。 清掉過期的暫存資料,移除已刪除商品和訂單留下的孤立中繼資料,並精簡文章修訂版本。在一家經營多年的店鋪上,這一步經常能刪掉資料庫裡相當大的一部分。請把它排進排程,而不是做一次就算了。
然後才是主機。 快取和資料庫理順之後,主機確實重要:PHP 版本、可用記憶體、資料庫是否與網站同機,以及你是否身處與其他租戶搶資源的共用主機。但在修好上面這些之前換主機,只是把問題搬到一個更貴的地址。
靜態資源放最後。 圖片格式、延遲載入和指令碼延後執行都值得做,也是大多數指南開頭就講的內容。它們改善的是那些本來就送得挺快的頁面的載入體驗。對一個送出第一個位元組前先在 PHP 裡耗掉四秒的結帳頁,它們幾乎無能為力。
如何正確量測 WooCommerce 效能
合成分數對店主的誤導超過任何其他族群,所以量測要有意圖。
請測試已登入且購物車非空的狀態。多數工具測的是匿名訪客打開首頁,那是你網站裡最快的一條路徑,關於結帳幾乎什麼都說明不了。
把伺服器時間和前端時間分開。如果伺服器要花三秒才產出 HTML,再多的圖片最佳化也救不了這個頁面。首位元組時間會告訴你問題落在哪一半,也因此告訴你上面哪一條修復適用。
盡量用實地資料而不是實驗室資料。真實網路、真實手機上的真實訪客,畫出的圖景與資料中心裡跑一次測試並不相同,而 Core Web Vitals 評估的正是前者。我們的 WordPress 效能稽核指南 講了如何正確解讀這些指標,2026 年的 Core Web Vitals 則說明門檻究竟要求什麼。
最後,在一次慢請求發生時直接盯著資料庫看。一份顯示同一條查詢在單次頁面載入中執行兩百次的查詢紀錄,會當場指認兇手,而這種模式在同時跑好幾個各自獨立索取商品資料的外掛的店鋪裡極其常見。
這項工作要花多少錢
下面的價格反映的是英國服務商對中等規模店鋪的典型行情。
一次能指出具體成因、附帶按優先順序排列的修復清單和前後對比數據的效能稽核,通常在 900 到 2,500 英鎊之間。這是一次診斷性的合作,值得單獨購買,因為它會告訴你剩下的工作是一週還是一個月。
實施常見修復,也就是物件快取、資料庫清理、外掛資源檢查和外部呼叫快取,通常按累積程度落在 2,000 到 6,000 英鎊。
更深入的工作更貴,因為那真的是開發。把一個大型錄遷到帶索引的儲存方式、重建一套還在掃描中繼資料的篩選系統,或者用一個目標明確的自訂實作替換掉某個慢外掛,通常落在 6,000 到 20,000 英鎊之間。
比以上所有數字更重要的一個數字,是慢正在讓你付出多少。結帳放棄率會隨載入時間可量測地上升,所以一家有像樣營收的店鋪,通常僅憑結帳頁就能把稽核費用算得過來。
修的是商店,不是分數
Mecanik 把 WooCommerce 效能工作納入我們的 WordPress 開發服務 ,而我們從量測已登入的結帳路徑而不是首頁開始,因為那才是商店真正丟錢的地方。
在建議換主機之前,我們會先看自動載入的 options、訂單儲存方式、查詢模式和外部呼叫,並且把改動前後的量測數據都交給你,讓改進是可驗證的而不是嘴上說說。如果你的商店慢是因為它已經長出了這個平台,而不是因為設定糟糕,我們也會直說;我們對 Shopify 與客製電商 的比較講清了那條界線在哪。如果你在盤算更大的成長動作,如何擴張電商業務 一文梳理了周邊的決策。
把網址,以及店鋪大致有多少商品和多少訂單發給我們,我們會告訴你最可能撞上的是上面四個成因中的哪一個。
相關文章: WordPress 被駭:惡意軟體清除與復原指南 、如何安全地在英國擴展E-commerce電商業務:2026年無服務器與Headless架構部署指南手冊 、招聘 Drupal 開發者:價格、能力與考察方法 、2026年英國網站建置費用是多少? 。
常見問題
裝了快取外掛,WooCommerce 為什麼還是慢? 頁面快取無法用在購物車、結帳和帳戶頁上,因為這些頁面必須反映每位訪客自己的狀態。它們在每一次請求裡都執行 PHP 和資料庫查詢,所以要讓它們變快,需要的是物件快取和資料庫層面的工作,而不是頁面快取。
換更好的主機能解決 WooCommerce 的效能問題嗎? 只能解決一部分,而且不該是第一步。如果 options 資料表臃腫、查詢沒有索引、外掛到處載入資源,更好的主機只會讓同樣的問題跑得稍微快一點,花的錢卻更多。請先修好快取和資料庫,再回頭重新評估主機。
WooCommerce 裝多少外掛算太多? 數量的重要性遠不如每個外掛載入了什麼。二十個只在自己頁面載入資源的規矩外掛,危害小於八個全站到處塞指令碼的外掛。請逐個查清每個外掛往結帳頁裡添加了什麼,並刪掉任何沒人說得清用途的東西。
WooCommerce 速度最佳化要花多少錢? 帶優先順序修復清單的診斷性稽核通常花費 900 到 2,500 英鎊。實施物件快取、資料庫清理和資源檢查等常見修復一般在 2,000 到 6,000 英鎊,而型錄或篩選系統的重做可能達到 6,000 到 20,000 英鎊。
應該怎樣正確測試 WooCommerce 效能? 請以已登入、購物車裡有商品的訪客身分測試,而不是匿名瀏覽首頁。把伺服器回應時間和前端算繪分開,看清楚是哪一半慢。並且使用來自真實訪客的實地資料,而不是只依賴實驗室分數。
評論