一、為何要使用「Cache Everything」?
-
減少伺服器負載
Cloudflare 通常只會為靜態檔案(圖片、CSS、JS 等)做快取。啟用「Cache Everything」可以把整個 HTML 頁面都快取下來,大量減少伺服器必須處理動態內容的次數,降低高流量時導致的伺服器過載風險。 -
提升前端讀取速度
因為連 HTML 都在 Edge 上快取,訪客在瀏覽時會直接在 Cloudflare 節點取得網頁內容,大幅減少了連回原伺服器的延遲。 -
注意適用場景
- 適用於不常變動、或不需要高度即時/個人化頁面的網站(如純部落格、單純內容展示)。
- 若網站包含會員系統、購物車、登入後個人化內容等,需要另外設定例外規則,以免「Cache Everything」導致登入用戶看到錯誤或過期內容。
二、前置條件
- 你已將 WordPress 網站的網域接入 Cloudflare
- 網站的 DNS 記錄 (A / CNAME) 已在 Cloudflare 後台正確設定,並且 Cloudflare 狀態是 “Proxied” (雲朵為橘色)。
- 關閉或調整其他可能衝突的快取外掛設定
- 若你已安裝其他快取外掛 (如 W3 Total Cache、WP Rocket、LiteSpeed Cache 等),建議先關閉或取消其對 HTML 的快取功能,避免快取衝突。
- 這些外掛仍可用於物件快取 (Redis)、資料庫快取、壓縮/合併資源等功能,但 HTML 部分可能要先暫停或慎選「只在伺服器端生成靜態檔」的模式。
- 已了解需要為哪些路徑例外
wp-admin
、登入頁 (wp-login.php
)、或會員系統頁面必須設定「Bypass Cache」或「Disable Security / Performance」等,不可被 Cache Everything。- 若有購物車系統 (如 WooCommerce),則要為購物車、結帳頁、會員頁等設置例外,確保動態內容不會被快取。
三、設定步驟教學
以下以範例網域 example.com
示範。如果你的網域是 www.example.com
,則請把範例中的網域依實際狀況替換。
Step 1. 登入 Cloudflare 後台
- 前往 https://dash.cloudflare.com/
- 登入後,選擇你要設定的網域。
Step 2. 進入「Page Rules」(頁面規則)
- 在左側選單或上方頁籤,找到 Rules 或 Page Rules(Cloudflare 介面有時會稍作調整)。
- 點擊後即可進入設定「Page Rules」的畫面。
Step 3. 建立第一條「Cache Everything」規則
- 點擊 Create Page Rule 按鈕。
- 在「If the URL matches:」欄位輸入:
https://example.com/*
- 如果你的網站有分別使用
www
與根網域,也可視需求輸入:https://www.example.com/*
- 或同時做兩條規則以涵蓋根網域與 www 子網域。
- 如果你的網站有分別使用
- 在「Then the settings are:」下拉選單中,依序加上或設定:
- Cache Level: Cache Everything
- Edge Cache TTL:根據你網站更新頻率來決定(例如 4小時、8小時、24小時等)。若頻繁更新,時間可稍短;反之可長一點。
- 選擇性:Origin Cache Control 可以依情況決定是否啟用或忽略原站 Cache-Control。
- 儲存這條規則,確認它在規則清單中「優先順位」(Priority) 排在適合的位置(通常你希望它在較後面,以免和其他排除規則衝突,見下文)。
Step 4. 建立「排除動態頁面」規則
由於 WordPress 管理後台、登入頁以及其他動態/個人化頁面不應被快取,我們通常會再新增「Bypass Cache」的 Page Rule,並將其優先度排在「Cache Everything」之前,確保先匹配到這些排除路徑。
常見的例外頁面:
- WP-Admin
- 規則:
https://example.com/wp-admin*
- 設定:
- Cache Level: Bypass
- Disable Performance (有些版本的 Cloudflare 後台會用此選項,也可加強確保不要應用自動最適化)
- Security Level: High (強化該路徑安全,但可視需求)
- 規則:
- WP-Login
- 規則:
https://example.com/wp-login.php*
- 設定方式同上,確保使用 Bypass Cache。
- 規則:
- 購物車 / 結帳頁 (若使用 WooCommerce)
- 通常路徑:
https://example.com/cart*
,https://example.com/checkout*
- 同樣設定 Cache Level: Bypass。
- 通常路徑:
你可以把 wp-admin
與 wp-login.php
放在同一條規則(使用 *wp-*(admin|login)*
之類的 Regex Page Rule),但一般建議用 Cloudflare 的 Enterprise/Business 訂閱才能使用 Regex Page Rule;若是免費或 Pro 方案,多半只能用子路徑方式一條一條設定。
重要:在 Cloudflare 的 Page Rules 裏,每個網域免費只能有 3 條規則(免費方案)。若你的網站需要做更多細節排除,可能需要升級方案或用其他技術(例如 Cloudflare Workers)來擴充規則數量。
Step 5. 優先順序 (Priority) 設定
Cloudflare 會從優先度數值最小的規則開始檢查。以下是建議的排序:
- (Priority 1)
https://example.com/wp-admin*
→ Cache Level: Bypass - (Priority 2)
https://example.com/wp-login.php*
→ Cache Level: Bypass - (Priority 3)
https://example.com/*
→ Cache Level: Cache Everything
如此,當訪客請求的是後台路徑、登入頁,就會先匹配到規則 1 或 2,自動跳過快取;否則就會進入規則 3,採用「Cache Everything」。
四、驗證「Cache Everything」是否生效
- 開啟瀏覽器開發者工具 (Chrome, Firefox 等皆可),到「Network」標籤。
- 前往你的網站首頁或其他頁面,重新整理一次 (Ctrl+F5)。
- 點擊對應的網頁請求 (通常是
example.com/
) 查看 Response Headers:- 查找
cf-cache-status
。 - 如果顯示 HIT,代表 Cloudflare 已成功從快取提供頁面。
- 若顯示 MISS,則可能是首次訪問或 Cloudflare 還沒快取。多刷新幾次或等幾秒,再查看是否會變成 HIT。
- 若顯示 EXPIRED 或 REVALIDATED,表示 Cloudflare 需要重新向源站驗證或該快取已過期。
- 查找
五、進階調整與注意事項
- 與 WordPress 自帶快取或外掛並用
- 若使用 W3 Total Cache 或其他外掛,建議先將其「頁面快取 (Page Cache)」功能關掉,避免跟 Cloudflare 重複或衝突。
- 還是可以使用這些外掛提供的「物件快取 (Object Cache)」、「資料庫快取 (Database Cache)」或資源壓縮與合併功能。
- 網站更新時快取清除
- 若你安裝了 Cloudflare 官方 WordPress 外掛或其他整合外掛,可以在 WordPress 發佈新文章時自動清除 Cloudflare 快取,確保訪客可即時看到新內容。
- 若沒有整合外掛,就必須手動到 Cloudflare 後台清除快取,或在 WordPress 後台 Cloudflare 外掛介面裡執行「Purge Cache」。
- Cloudflare APO (Automatic Platform Optimization) for WordPress
- 若你想更自動化管理快取,可以考慮付費啟用 APO。它會比單純靠 Page Rules 省去許多手動設定,並針對動態內容(如評論)做更聰明的快取處理。
- 小心對登入用戶的緩存
- 如果你有大量的登入用戶(會員或付費讀者),要避免他們看到別人的個人化資訊。確保所有需要個人化顯示的頁面都在「Bypass Cache」規則中或有動態 Cookie 處理。
- SSL 與 HSTS
- 「Cache Everything」與 SSL/HSTS 無直接衝突,但記得在 Cloudflare 後台把 SSL/TLS 模式設定為「Full (strict)」或適合你環境的模式,並確保來源站點正常支援 HTTPS。
- 排除搜尋頁、篩選器頁面
- 若你網站有搜索功能,搜尋結果頁面 (如
?s=keyword
) 也可能需要排除快取,否則不同使用者的搜尋會看到同一頁快取。
- 若你網站有搜索功能,搜尋結果頁面 (如
六、常見問題與解決方案
- 快取後「後台登入」突然出問題?
- 檢查是否有把
/wp-admin
或wp-login.php
納入 Cache Everything。只要將它們設為「Bypass Cache」,或確定 Page Rule 排序正確即可解決。
- 檢查是否有把
- 前台一些動態功能(例如購物車數量)沒更新?
- 這些功能需要透過 AJAX 或 Cookies 來動態顯示;若整頁被快取,可能導致顯示過期資料。必須排除這些動態部分,或改用更進階的快取策略 (APO) 或 Workers。
- 清除快取沒立即生效?
- 有時 Cloudflare 全球節點需幾分鐘至十多分鐘不等才完全同步。可以嘗試進行「Purge Everything」或針對該 URL 執行「Custom Purge」,並等待一段時間後再測試。
總結
- 「Cache Everything」能大幅減少 WordPress 伺服器負載,尤其在高流量時非常有效。
- 先配置好例外規則 (Bypass Cache) 對於後台登入、購物車、結帳等動態頁面非常關鍵。
- 搭配 Cloudflare 官方外掛或其他快取整合外掛,可實現自動清除快取、減少人工作業。
- 觀察
cf-cache-status
來確認快取是否生效並持續優化 TTL 設定。
只要妥善規劃好 Page Rules 與例外路徑,你的 WordPress 網站就能享受到完整的前端快取,加快載入速度並減輕主機壓力。祝你網站在 2025 年依然順暢運行、不怕流量爆量!