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、快取外掛誰該先做」,先看這篇支柱文:主機升級 vs CDN vs 快取外掛:WordPress 加速怎麼選。
如果你正在比較快取外掛,也可以搭配: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,規則要更保守。完整排除清單可以看: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。
下一步
想先建立整體決策順序,回到:主機升級 vs CDN vs 快取外掛:WordPress 加速怎麼選。
想把 Zeabur 架站流程補完整,接著看:如何在 Zeabur 設定 WordPress 網站。
如果你想把媒體儲存分層處理,接著看:WordPress 媒體檔該放哪。
如果你正在搬 WooCommerce,接著看:WooCommerce 搬到 Zeabur 前要注意什麼。
想用 AI 規劃你的網站專案?
把需求講清楚,我們用 AI 規劃 + 人工審閱,給你務實的建議。
Related Reading
延伸閱讀

技術
Zeabur 教學 2026:部署 WordPress、n8n、資料庫與自訂網域完整指南
Zeabur 怎麼用?這篇整理 2026 Zeabur 教學,從 Project、Service、WordPress、n8n、資料庫、自訂網域、環境變數到常見部署錯誤,幫你判斷 Zeabur 適不適合當小型專案主機。

WordPress
WordPress 媒體檔該放哪?Zeabur Volume、uploads 與 Cloudflare R2 分工
WordPress 放在 Zeabur 時,媒體檔不該和主題、外掛、核心檔案混在一起。這篇整理 uploads、Zeabur Volume 與 Cloudflare R2 的分工與遷移順序。

WordPress
WordPress 換主機搬家 SOP:R2 圖床 offload + All-in-One 大檔避雷清單(2026)
WordPress 換主機最怕「搬完才爆炸」。這篇給你一份偏實作的搬家 SOP:搬之前該確認什麼、All-in-One 在 R2 offload 情境怎麼匯出最小包、搬完 10 個必做檢查,以及切 DNS 的低停機流程。