CDN 和快取都會出現在 WordPress 加速設定裡,所以很容易被當成同一件事。其實兩者有關,但不是同一個功能:快取是把已經產生的內容保存起來,避免每次都重新處理;CDN 則把可快取內容放到不同地區的節點,讓訪客從較近的位置取得。
一個網站可以只用快取、不用 CDN,也可以同時使用主機快取、快取外掛與 CDN。真正要注意的是各層快取怎麼搭配,以及登入、購物車、會員與課程頁不能被錯誤快取。
CDN vs 快取,一張表先看懂
| 項目 | 快取 | CDN |
|---|---|---|
| 主要目的 | 減少重複運算或下載 | 縮短傳輸距離、分散流量 |
| 常見位置 | 瀏覽器、伺服器、WordPress、記憶體 | 全球或區域邊緣節點 |
| 主要處理 | HTML、查詢結果、物件、靜態檔案 | 圖片、CSS、JS 等可快取內容,也可依服務設定快取 HTML |
| 是否一定跨地區 | 不一定 | 通常是 |
| 可否一起用 | 可以,而且 WordPress 網站常會同時使用 | |
WordPress 裡其實有好幾層快取
談「快取」時,如果沒有先說是哪一層,很容易雞同鴨講。常見的快取至少包含下面幾種。
1. 瀏覽器快取
讓訪客瀏覽器保留一段時間內可重複使用的圖片、CSS、JavaScript 等檔案。下一次再造訪時,不必全部重新下載。
2. 頁面快取
把 WordPress 已經產生的 HTML 保存起來。公開文章或一般頁面沒有改變時,就不必每次重新執行完整 PHP 與資料庫流程。WP Rocket 這類外掛的核心功能之一就是頁面快取。
3. 物件快取
把常用的資料查詢結果保存在記憶體,減少重複向資料庫取得相同資料。WordPress 會員、WooCommerce 或較複雜網站常會搭配 Redis 等持久物件快取,但是否有幫助仍取決於網站與主機環境。
4. CDN 邊緣快取
CDN 節點也會保存可快取檔案。台灣訪客可能從亞洲節點取得內容,美國訪客則從更靠近當地的節點取得,減少每次都回到來源主機抓檔案的距離。
CDN 可以取代 WordPress 快取外掛嗎?
通常不能直接這樣理解。CDN 是否快取完整 HTML,要看服務與規則;WordPress 快取外掛則可能同時處理頁面快取、瀏覽器快取、CSS/JS、預載入與其他站內優化。
如果 CDN 只負責圖片、CSS、JavaScript,來源主機仍然需要產生 WordPress HTML。這時頁面快取仍然很有價值。反過來說,就算頁面快取已經做好,跨國訪客仍可能因為傳輸距離而受益於 CDN。
所以「CDN vs 快取」不是二選一,更接近「不同層要不要一起搭配」。如果你想看整體優化順序,可延伸閱讀WordPress 網站加速指南。
什麼網站比較需要 CDN?
- 訪客來自不同國家或地區。
- 圖片、CSS、JavaScript 等靜態資源較多。
- 流量活動會帶來短時間大量訪客。
- 希望降低來源主機部分傳輸負擔。
- 需要更完整的邊緣快取、安全或流量管理功能。
如果網站訪客幾乎都在同一地區,而且主機就在附近,CDN 帶來的差異可能沒有跨國網站那麼明顯。是否值得使用,應看真實訪客位置、內容類型與目前瓶頸。
本站另有Bunny CDN 教學,可以看實際 CDN 設定與快取流程。
會員、電商與課程網站最怕「快取錯人」
公開文章頁通常很適合快取,但登入後內容、購物車、結帳、會員中心與課程權限是依使用者變動的。這些頁面如果被錯誤做成共用快取,可能造成資料顯示不正確。
- 登入狀態通常要和匿名訪客分開處理。
- 購物車與結帳頁不應把一位客戶的內容給另一位看到。
- 會員課程頁要依權限顯示。
- 修改內容後,要確保主機、外掛與 CDN 各層快取能正確清除。
這也是為什麼「快取越多越好」不是正確目標。網站要快,但資料正確與交易流程正常更重要。
為什麼改了網站,自己看到新的,別人卻還是舊的?
多層快取最常見的困擾就是內容不同步。你可能清了 WordPress 快取,但 CDN 還保留舊檔;或 CDN 已清除,瀏覽器仍留著舊版本。
排查時可以依層級處理:
- 確認 WordPress/快取外掛是否已清除。
- 確認主機端快取是否另有一層。
- 清除 CDN 對應 URL 或整站快取。
- 用無痕視窗或不同裝置重新測試。
CDN 與快取怎麼搭配比較合理?
對一般 WordPress 網站,可以先把架構想成:
來源主機 → WordPress/頁面快取 → CDN → 瀏覽器快取
如果有物件快取,則是在 WordPress 與資料庫查詢這一層幫忙。每一層各自處理不同問題,不需要為了「層數多」全部打開,重點是功能沒有重複衝突,而且清除快取時能同步。
使用 WP Rocket 的網站可以參考WP Rocket 教學,了解頁面快取與前端優化的角色,再決定 CDN 要放在哪一層。
CDN vs 快取常見問題
只裝 CDN,不裝快取外掛可以嗎?
可以,但效果取決於 CDN 是否快取 HTML,以及主機本身有沒有伺服器快取。如果 CDN 主要只處理靜態檔案,WordPress 頁面仍可能每次重新產生。
只用 WP Rocket,不用 CDN 可以嗎?
可以。訪客集中在主機附近、流量不大時,頁面快取與前端優化可能已經足夠。CDN 是額外的傳輸與邊緣快取層,不是所有網站必需品。
CDN 會讓網站一定更快嗎?
不一定。訪客位置、來源主機、快取命中率、DNS、第三方腳本與網站本身都會影響結果。設定不當時,甚至可能增加排查複雜度。
先弄懂每一層在做什麼,才不會一直重複安裝
WordPress 加速最容易出現的問題,是主機有快取、外掛又快取、CDN 再快取,但沒有人知道哪一層負責什麼。把瀏覽器、頁面、物件與 CDN 分清楚,再依網站需求搭配,會比單純把所有功能都打開更穩定。
