MO STORIES
WordPress on Zeabur 為什麼不要亂開頁面快取?Breeze 跳版案例解析
WordPress 部署到 Zeabur 後,如果啟用 Breeze 頁面快取,可能遇到 Elementor CSS 舊版快取、部署後跳版、advanced-cache.php 殘留等問題。這篇用實戰案例拆解原因、架構分工與安全設定方式。

先說結論
WordPress 放在 Zeabur 這類 Docker 化環境時,Breeze 的頁面快取不要亂開。
原因不是 Breeze 很爛,而是它的頁面快取機制會在 WordPress boot 很早期就回傳舊 HTML。當你同時使用 Elementor、Cloudflare、部署流程、R2 圖床或檔案版本控制時,舊 HTML 很可能還指向舊 CSS。結果就是:GitHub push 後,前台突然跳版,停用再啟用快取才恢復。
比較穩的做法是:Breeze 保留檔案優化,頁面快取交給 Cloudflare,PHP 交給 OPcache,資料庫查詢交給 Redis Object Cache。
如果你還在判斷「主機、CDN、快取外掛誰該先做」,先看這篇支柱文:[[2026-04-27 主機升級 vs CDN vs 快取外掛:WordPress 加速怎麼選?別再亂花錢 (2026)|主機升級 vs CDN vs 快取外掛:WordPress 加速怎麼選]]。
如果你正在比較快取外掛,也可以搭配:[[2026-04-27 WordPress 快取外掛推薦:WP Rocket vs LiteSpeed vs Super Cache 誰最快?(2026)|WordPress 快取外掛推薦與比較]]。
為什麼 Zeabur 上的 Breeze 頁面快取容易出問題
Zeabur 的優勢是部署快、容器化、平台抽象高。這對開發很舒服,但也代表你不能用傳統共享主機的心智處理 WordPress 快取。
Breeze 的頁面快取會產生靜態 HTML,並透過 advanced-cache.php 在很早的階段回應請求。這在 Cloudways + Varnish 的情境可能很合理,但在 Zeabur / Docker 化部署裡,會多出幾個風險:
| 風險 | 會發生什麼 | 使用者看到什麼 |
|---|---|---|
| 舊 HTML 殘留 | 頁面快取還指向舊 CSS / JS | 前台樣式跑掉 |
| Elementor CSS 重生時機錯開 | 新部署後 CSS 檔案已刪,但 HTML 還在抓舊檔 | 首頁像沒套樣式 |
.htaccess 寫入受限 | 外掛切換狀態不完整 | 後台看似關閉,檔案還殘留 |
| Cloudflare 又包一層 | CDN 可能暫存舊 HTML | 清了 WordPress,前台還是舊版 |
這種問題最麻煩的地方是:它不一定每次都發生。你可能本機看正常,手機看壞;後台登入看正常,訪客看壞;清瀏覽器快取後正常,隔天又壞。
正確分工:不要每一層都做頁面快取
快取架構最怕「大家都很努力」。每一層都想幫你快取,出事時就很難知道到底是哪一層在吐舊資料。
比較乾淨的分工如下:
| 層級 | 建議責任 | Zeabur WordPress 建議 |
|---|---|---|
| Browser | 長快取 CSS / JS / 圖片 | 靠 filemtime ?ver= 破快取 |
| Cloudflare | CDN、Brotli、HTTP/3、公開頁 HTML 短快取 | 開,但購物流程要 bypass |
| Breeze | CSS/JS minify、檔案優化 | 不開頁面快取 |
| OPcache | PHP 檔案編譯快取 | 開,並調高檔案數上限 |
| Redis Object Cache | 資料庫查詢結果 | WooCommerce / Elementor 站建議開 |
| 部署流程 | 清舊快取、清 Elementor CSS | 每次 deploy 自動做 |
這樣做的好處是:出問題時你知道要查哪一層。CSS 沒更新,查檔案版本和 Elementor CSS;HTML 舊了,查 Cloudflare;後台慢,查 OPcache / Redis / DB。
建議設定:Breeze 只做檔案優化,不做頁面快取
在 Zeabur 上,我會這樣看 Breeze:
| 功能 | 建議 |
|---|---|
| Page Cache | 關閉 |
| Minification | 可測試後保留 |
| Group CSS / JS | 小心測,Elementor 站容易破互動 |
| Browser Cache | 可由 Cloudflare / headers 處理 |
| Database Optimization | 不建議當主要 DB 維護工具 |
如果你要更保守,Breeze 甚至可以只作為 Cloudways 遷移過程中的暫時外掛,不一定要長期留在 Zeabur。快取外掛不是裝越多越安心;WordPress 加速真正重要的是可驗收、可回滾、可排錯。
部署後跳版怎麼排查
遇到 Zeabur WordPress 部署後跳版,可以照這個順序查:
| 步驟 | 查什麼 | 判斷方式 |
|---|---|---|
| ① | HTML 是否舊版 | DevTools 看 CSS/JS URL 的 ?ver= 是否仍是舊時間 |
| ② | Elementor CSS 是否存在 | 檢查 /wp-content/uploads/elementor/css/ 對應檔案 |
| ③ | advanced-cache.php 是否殘留 | 檢查 wp-content/advanced-cache.php |
| ④ | Cloudflare 是否吐舊 HTML | 暫時 bypass 或 purge 單頁 |
| ⑤ | 瀏覽器是否拿舊靜態檔 | 無痕視窗、換裝置、看 response headers |
你不要一開始就把所有外掛停掉。那會讓問題消失,但也會讓你失去線索。先抓到舊資料從哪一層出來,再決定要清哪一層。
比較穩的修法
實務上我會做三件事。
① 強制關閉 Breeze 頁面快取
不要只靠後台按鈕。後台設定可能被外掛、部署、檔案權限影響。
比較穩的方式是在 theme 或 mu-plugin 裡攔截 Breeze 設定,把頁面快取狀態固定關閉。這樣就算後台有人誤開,也會被 runtime 拉回安全狀態。
② 部署啟動時清掉舊快取
每次 Zeabur deploy / container restart,都應該清:
wp-content/cache/breezewp-content/cache/breeze-minificationwp-content/uploads/elementor/csswp-content/advanced-cache.php
這不是潔癖,是避免第一個訪客拿到舊 HTML 或舊 CSS。
③ 靜態資源用檔案時間做版本
CSS / JS 檔案可以長快取,但 URL 要能隨檔案變動。
常見做法是用 filemtime() 當版本參數:
wp_enqueue_style(
'theme-style',
get_stylesheet_uri(),
[],
filemtime(get_stylesheet_directory() . '/style.css')
);
檔案沒改,瀏覽器沿用快取;檔案有改,?ver= 變,瀏覽器重抓。這比「叫使用者清快取」成熟很多。
Cloudflare 要怎麼配合
Cloudflare 可以做 HTML 快取,但要短、要排除、要能手動清。
| 規則 | 建議 |
|---|---|
| 公開首頁 / 文章頁 | 可短時間快取,例如 30 分鐘 |
/cart/* | bypass |
/checkout/* | bypass |
/wp-admin/* | bypass |
/wp-login* | bypass |
?add-to-cart=* | bypass |
?wc-ajax=* | bypass |
帶 wordpress_logged_in_* cookie | bypass |
如果是純內容站,Cloudflare HTML cache 風險較低。
如果是 WooCommerce,規則要更保守。完整排除清單可以看:[[2026-04-27 WooCommerce 快取怎麼設?購物車、結帳頁、登入狀態哪些不能快取|WooCommerce 快取怎麼設]]。
什麼時候可以開頁面快取
不是所有 Zeabur WordPress 都不能用頁面快取,而是你要先確認幾個條件:
| 條件 | 可以比較放心嗎 |
|---|---|
| 沒有 WooCommerce / 會員 / 個人化內容 | 較可控 |
| 沒有 Elementor 動態 CSS 或已改成穩定產生流程 | 較可控 |
| 有部署後自動清快取 | 較可控 |
| 有 Cloudflare purge 流程 | 較可控 |
| 團隊知道怎麼驗收 HIT / MISS | 較可控 |
少了這些條件,頁面快取就像在早餐店所有餐點上都貼同一張標籤。看起來出餐很快,但客人拿到什麼不一定對。
FAQ
Q1:Breeze 在 Zeabur 上一定不能用嗎?
不是。Breeze 可以用,但不建議在 Zeabur / Docker 化 WordPress 上亂開頁面快取。檔案優化可以測,頁面快取要非常保守。
Q2:為什麼 Cloudways 可以用 Breeze,Zeabur 卻要小心?
Cloudways 的 Breeze 是為 Cloudways 主機與 Varnish 整合設計。Zeabur 是容器化部署心智,檔案權限、重啟、部署後快取清理都不同,所以不能直接套同一組設定。
Q3:Elementor 部署後跳版,最常見原因是什麼?
常見原因是舊 HTML 指向舊的 Elementor CSS 檔案。新部署後 CSS 已重生或被清掉,但頁面快取仍吐出舊 HTML,前台就會像沒套樣式。
Q4:Zeabur WordPress 比較建議用哪種快取架構?
建議用 Cloudflare 做公開頁短快取,Breeze 只保留檔案優化,OPcache 處理 PHP runtime,Redis Object Cache 降低資料庫查詢壓力,購物流程與登入狀態一律 bypass。
下一步
想先建立整體決策順序,回到:[[2026-04-27 主機升級 vs CDN vs 快取外掛:WordPress 加速怎麼選?別再亂花錢 (2026)|主機升級 vs CDN vs 快取外掛:WordPress 加速怎麼選]]。
想把 Zeabur 架站流程補完整,接著看:[[2026-05-05 如何在 Zeabur 設定 WordPress 網站?從部署到綁定網域的完整教學|如何在 Zeabur 設定 WordPress 網站]]。
如果你想把媒體儲存分層處理,接著看:[[2026-05-05 WordPress 媒體檔該放哪?Zeabur Volume、uploads 與 Cloudflare R2 分工|WordPress 媒體檔該放哪]]。
如果你正在搬 WooCommerce,接著看:[[2026-05-05 WooCommerce 搬到 Zeabur 前要注意什麼?資料庫、金流、Email 與回滾清單|WooCommerce 搬到 Zeabur 前要注意什麼]]。
看完教學覺得 WordPress 還是太麻煩?
瘦桑與 茉設計 同步提供專業的網站升級服務:
前 5 名諮詢客戶享免費效能報告
延伸閱讀

WooCommerce 快取怎麼設?購物車、結帳頁、登入狀態哪些不能快取
WooCommerce 快取不能只追速度。這篇整理購物車、結帳頁、會員頁、add-to-cart、wc-ajax、登入 cookie 的快取排除規則,並說明 Cloudflare、頁面快取、Redis Object Cache 該怎麼分工。

WooCommerce API 教學:REST API Key 申請、Postman 測試與商品上架範例
WooCommerce API 怎麼用?這篇整理 REST API Key 申請路徑、Consumer Key / Consumer Secret 權限、Postman GET / POST 測試、新增商品 JSON 範例,以及 401、403、404、Permalink、SSL 常見錯誤排查。

WooCommerce 搬到 Zeabur 前要注意什麼?資料庫、金流、Email 與回滾清單
WooCommerce 搬到 Zeabur 不能只同步資料夾。這篇整理 staging、資料庫、wp-content、會員、訂單、金流 callback、Email、DNS 與回滾清單。
訂閱 MO Stories
獲得最新的網頁設計趨勢、Headless CMS 技術洞察與數位變現策略。