如何快速在 WordPress 中啟用 GZIP 資料壓縮功能

現在幾乎所有的 Web 瀏覽器都支持 GZIP 壓縮的請求,因此如果你想要透過啟用 GZIP 壓縮來提升 WordPress 網站的速度與性能的表現,那麼接下來就讓我帶你來看看「如何在 WordPress 當中啟用 GZIP 壓縮」吧!

用 AI 摘要這篇文章:

啟用 GZIP 壓縮能將 WordPress 網站的 HTML、CSS、JavaScript 傳輸量縮減 60% 到 80%,是見效最快、成本最低的頁面載入速度優化手段。大多數主機商預設就已開啟,但如果你從未確認過,這篇文章會帶你從檢測、啟用到驗證,一次搞定。

GZIP 壓縮是什麼?為什麼要啟用

GZIP 是一種廣泛使用的檔案壓縮格式,由 Jean-loup Gailly 和 Mark Adler 在 1992 年開發。在 Web 傳輸場景中,伺服器在傳送 HTML、CSS、JavaScript 等純文字資源之前先壓縮,瀏覽器收到後自動解壓縮還原。整個過程對使用者完全透明,唯一能感受到的差別就是頁面變快了。

運作流程很直覺:瀏覽器發送請求時,會在標頭帶上 Accept-Encoding: gzip,告訴伺服器「我支援 GZIP」。如果伺服器端已啟用壓縮,回應標頭會加上 Content-Encoding: gzip,瀏覽器收到後自動解壓縮再渲染。如果伺服器沒有啟用,瀏覽器就收到原始未壓縮的完整檔案。

一個典型的 WordPress 首頁 HTML 大約 80 到 150 KB,啟用 GZIP 後通常只剩 15 到 30 KB,壓縮率達 70% 到 80%。CSS 和 JavaScript 的壓縮效果也類似,通常都能獲得 65% 以上的壓縮率。

有一個重要觀念:GZIP 只對文字型檔案有效。HTML、CSS、JavaScript、XML、JSON、SVG 和各種字型檔(WOFF、TTF、OTF)都能獲得顯著的壓縮效果。但 JPEG、PNG、GIF、WebP 這類圖片格式本身就已經過壓縮,GZIP 再壓一次幾乎不會變小,有時反而因為加入壓縮標頭而變得更大。要壓縮圖片,建議改用 RecompressorSquooshImagify 這類專門的工具。

如何檢查網站是否已啟用 GZIP 壓縮

在動手啟用之前,先確認你的網站目前有沒有開啟壓縮。很多主機商預設就啟用了,重複設定反而可能造成衝突。

瀏覽器開發者工具檢查法

最快速的方式是使用 Chrome 開發者工具。打開你的網站,按 F12Cmd+Option+I(Mac)開啟 DevTools,切換到 Network 標籤頁,重新整理頁面。點選任何一個 HTML 或 CSS 請求,在 Response Headers 區塊尋找 content-encoding 欄位。如果值顯示為 gzip,就代表壓縮已啟用。找不到這個欄位或值不是 gzip,表示尚未啟用。

線上檢測工具推薦

如果你不想開開發者工具,以下免費線上工具可以一鍵查看壓縮狀態:

另一個進階做法是透過 cURL 指令。在終端機輸入 curl -H "Accept-Encoding: gzip" -I https://your-site.com,如果回傳標頭中有 Content-Encoding: gzip,就確認壓縮已啟用。這個方法的好處是可以快速批次檢查多個頁面。

如果你想更全面地了解網站速度表現,也建議使用 Cloudflare Speed Test 來測量整體的網路頻寬與延遲數據。

方法一:使用 WordPress 外掛啟用 GZIP 壓縮

對大多數 WordPress 使用者來說,用外掛啟用 GZIP 是最省事的做法。不需要碰程式碼、不需要登入 FTP,幾次點擊就能完成。

WP Rocket 一鍵啟用

WP Rocket 是目前公認最強大的 WordPress 快取與效能優化外掛之一。安裝並啟用後,它會自動在 .htaccess 中加入 mod_deflate 壓縮規則。你只要在設定頁面確認「啟用 GZIP 壓縮」選項是開啟狀態即可。WP Rocket 的核心優勢在於它同時處理了頁面快取、瀏覽器快取、檔案合併與壓縮、延遲載入等一整套優化流程,不需要額外安裝多個外掛來拼湊功能。

W3 Total Cache 免費方案

如果你偏好免費方案,W3 Total Cache 是功能齊全的好選擇。進入後台 Performance > Browser Cache 頁面,找到「Enable HTTP (gzip) compression」並勾選啟用。這個外掛的設定選項比較多,學習曲線稍陡,但功能非常完整,對不想花錢購買 WP Rocket 的站長來說是相當好的替代品。

SG Optimizer(SiteGround 專用)

如果你的網站託管在 SiteGround 上,SG Optimizer 是最直接有效的選擇。進入後台 SG Optimizer > Environment 頁面,找到「GZIP Compression」並開啟即可。SiteGround 的伺服器環境經過特別調校,搭配自家專屬外掛的優化效果通常比通用型外掛更好。

方法二:在 Apache 伺服器透過 .htaccess 啟用 GZIP

大多數 WordPress 虛擬主機使用 Apache 伺服器,例如 BluehostHostingerDreamHost 以及 HostPapa 等。如果你確定主機環境是 Apache,可以直接編輯 .htaccess 來啟用 GZIP 壓縮,不需要安裝任何外掛,而且能精細控制要壓縮哪些檔案類型。

完整 .htaccess GZIP 程式碼

透過 FTP 軟體或主機提供的檔案管理工具,找到網站根目錄下的 .htaccess 檔案。將以下程式碼加在 # BEGIN WordPress 這行之前:

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
</IfModule>

這段程式碼使用 Apache 內建的 mod_deflate 模組,涵蓋了所有需要壓縮的文字型 MIME 類型。如果你在 .htaccess 編輯方面有更多需求,例如設定轉址規則,可以參考.htaccess 轉址規則教學

如何判斷主機使用的是 Apache

最簡單的方式是檢查網站根目錄下是否有 .htaccess 檔案。因為 NGINX 不使用 .htaccess 這種分散式設定檔案,所以只要 .htaccess 存在而且網站正常運作,幾乎就可以確定是 Apache 環境。如果不確定,可以聯繫主機商客服詢問,或在主機控制面板(如 cPanel)中查看伺服器資訊。

常見錯誤排除

加入壓縮規則後,如果網站出現 500 Internal Server Error,最可能的原因是主機的 mod_deflate 模組沒有啟用。請聯繫主機商技術支援請求開啟 mod_deflate,或改用其他啟用方式。另一個常見困擾是 WordPress 自動更新時可能覆蓋 .htaccess 的自訂規則,建議把 GZIP 壓縮規則放在 # BEGIN WordPress 之前,降低被覆寫的風險。

方法三:在 NGINX 伺服器啟用 GZIP 壓縮

如果你的主機使用 NGINX 伺服器(例如 Kinsta 的託管主機或 A2 Hosting 的部分方案),設定方式完全不同。NGINX 不使用 .htaccess,所有壓縮規則都要直接寫在 nginx.conf 或對應的 site configuration 設定檔中。

以下是建議的 NGINX GZIP 設定參數:

gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_min_length 256;
gzip_types
  text/plain
  text/css
  text/javascript
  application/javascript
  application/x-javascript
  application/json
  application/xml
  application/rss+xml
  image/svg+xml
  image/x-icon
  font/opentype
  font/ttf
  font/woff;
gzip_buffers 16 8k;

幾個關鍵參數的說明:gzip_comp_level 控制壓縮等級,數值從 1 到 9,1 最快但壓縮率最低,9 最慢但壓縮率最高。實務上設定 5 或 6 是最佳平衡點,因為壓縮等級再往上提升,壓縮率增加幅度非常有限,但 CPU 消耗卻會顯著增加。gzip_min_length 256 的意思是小於 256 bytes 的檔案不做壓縮,因為壓縮這麼小的檔案反而可能讓傳輸量增加(加上 GZIP 標頭的額外開銷後,壓縮後的檔案說不定比原始檔案還大)。

修改完成後,先執行 nginx -t 檢查設定語法是否正確,確認沒有錯誤後再用 systemctl reload nginx 讓新設定生效。如果你使用 EasyEngine 架設 WordPress,EE 預設就有基本的 GZIP 設定,你可以直接在 /etc/nginx/nginx.conf 中調整參數來達到更好的壓縮效果。

方法四:透過 PHP zlib 啟用 GZIP 壓縮

有些共享主機的入門方案不允許修改 .htaccess 或 nginx.conf(例如部分 iPage 的基礎方案)。遇到這種情況,可以改用 PHP 層級的壓縮設定。

第一種做法是在 php.ini 中加入:zlib.output_compression = On 以及 zlib.output_compression_level = 6。這會讓所有經由 PHP 處理的頁面輸出自動加上 GZIP 壓縮。

如果主機商不允許修改 php.ini,還有另一個替代方案:在 WordPress 根目錄的 wp-config.php 最上方,也就是在 /* That's all, stop editing! */ 這行註解之前,加入以下兩行:

ini_set('zlib.output_compression', 'On');
ini_set('zlib.output_compression_level', '6');

這裡有一個非常重要的注意事項:不要同時使用多種壓縮方式。如果你已經透過 .htaccess 或外掛啟用了 GZIP,就不要再額外開啟 PHP zlib 壓縮,否則會造成雙重壓縮,導致頁面顯示亂碼,甚至可能引發連線錯誤。同樣的原則也適用於其他 WordPress 設定調整,例如修改自動儲存功能時,都要確保新設定不會與現有的外掛或伺服器設定衝突。

搭配 CDN 啟用壓縮:以 Cloudflare 為例

如果你的 WordPress 網站使用了 Cloudflare CDN,壓縮可以直接在 CDN 層級處理,不需要在原始伺服器上做任何設定。Cloudflare 的免費方案就已經包含自動 GZIP 和 Brotli 壓縮功能,對預算有限的站長來說非常划算。

設定方式很簡單。登入 Cloudflare 管理控制台,進入 Speed > Optimization 頁面,你會看到「Auto Minify」和「Brotli」兩個開關。Auto Minify 會自動移除 JavaScript、CSS 和 HTML 中的空白字元、換行和註解,進一步減少檔案體積。Brotli 則是比 GZIP 更先進的壓縮演算法,壓縮率更高。兩個選項都開啟即可獲得最佳效果。

CDN 層級壓縮的最大好處是減輕原始伺服器的 CPU 處理負擔。GZIP 壓縮在伺服器端執行時大約會消耗 1% 到 5% 的 CPU 資源。如果壓縮工作交給 Cloudflare 的邊緣節點處理,你的主機就能把 CPU 資源留給 WordPress 的 PHP 運算和資料庫查詢。

Cloudflare 還提供了 1.1.1.1 公共 DNS 服務,可以搭配使用來進一步提升 DNS 解析的速度和安全性。關於 DNS 設定對網站的影響,可以參考DNS Flag Day 重大更新說明

GZIP vs Brotli:該選哪種壓縮方式

Brotli 是 Google 在 2015 年推出的壓縮演算法,專門為 Web 傳輸場景設計。跟 GZIP 相比,Brotli 在壓縮相同內容時可以額外節省 15% 到 25% 的傳輸量。不過 Brotli 有一個限制:它只支援透過 HTTPS 加密連線傳輸的內容。如果你的網站還在使用 HTTP,Brotli 就派不上用場。

比較項目 GZIP Brotli
壓縮率 基準 比 GZIP 額外節省 15-25%
壓縮速度 較快 稍慢(壓縮等級高時差異明顯)
瀏覽器支援 所有瀏覽器 所有現代瀏覽器(需 HTTPS)
HTTPS 要求 不需要 必要條件
伺服器 CPU 負載 中等(高壓縮等級時)
適用場景 伺服器端通用壓縮 CDN 層級或靜態資源預壓縮

實務上最好的做法是兩者並行使用:在原始伺服器上啟用 GZIP(相容性最好、設定最簡單),然後在 CDN 層級啟用 Brotli。現代瀏覽器發送請求時,Accept-Encoding 標頭會同時包含 gzip, deflate, br,伺服器或 CDN 會根據瀏覽器支援能力自動選擇最適合的壓縮方式。這樣一來,舊版瀏覽器仍然能收到 GZIP 壓縮的內容,新版瀏覽器則能享受 Brotli 更高的壓縮率。

網站的安全性標頭設定也會影響整體的效能和安全性表現。你可以透過Security Header Scanner 工具來快速掃描網站的安全標頭是否設定正確,這些安全細節與壓縮優化搭配起來,能為使用者提供更安全也更快速的瀏覽體驗。

GZIP 壓縮常見問題與錯誤排解

啟用 GZIP 壓縮的過程不一定每次都一帆風順。以下是幾個最常遇到的問題和解決方式。

問題一:啟用後出現 500 Internal Server Error
這通常表示主機環境不支援 mod_deflate 模組,或者 .htaccess 語法有誤。請先檢查程式碼是否完整複製、沒有漏掉或多餘的字元。如果語法確認無誤,聯繫主機商技術支援確認 mod_deflate 是否已安裝並啟用。更多排解方法,可以參考500 Internal Server Error 完整解決方法

問題二:頁面內容顯示亂碼
幾乎都是雙重壓縮造成的。你可能同時透過 .htaccess 的 mod_deflate 規則和 PHP zlib 啟用了壓縮,導致內容被壓縮兩次。瀏覽器只會解壓縮一次,自然看到亂碼。解決方法:只保留一種壓縮方式,把另一種停用。

問題三:某些資源仍然沒有被壓縮
這通常是因為該檔案的 MIME type 沒有被包含在壓縮規則清單中。請檢查 .htaccess 中的 AddOutputFilterByType 或 nginx.conf 中的 gzip_types 設定,確保所有需要壓縮的文字型 MIME 類型都已涵蓋。

問題四:圖片沒有被壓縮
這是完全正常的行為。JPEG、PNG、GIF 等圖片格式本身已經過壓縮處理,GZIP 對它們幾乎無法產生進一步的效果。要優化圖片大小,應該使用 Compressor.io、Recompressor 等專門的圖片壓縮工具,或者考慮將圖片轉換為更有效率的 WebP 格式(可以透過 AnyWebP 來進行格式轉換)。

問題五:壓縮與快取外掛衝突
有些快取外掛會自行處理壓縮設定。如果你同時在 .htaccess 中手動加入了壓縮規則,就可能產生衝突。建議選定一種方式就好:要嘛全部交給外掛處理,要嘛手動設定伺服器端的壓縮規則並關閉外掛的壓縮選項。如果衝突已導致伺服器閘道錯誤,可以參考502 Bad Gateway Error 解決方法504 Gateway Timeout Error 修復教學

GZIP 壓縮對 SEO 的具體影響

先說結論:GZIP 本身不是 Google 搜尋引擎的直接排名因素,但它透過提升頁面載入速度,間接影響了多項與排名相關的核心指標。

Google 從 2018 年起正式將頁面速度納入行動搜尋結果的排名因素(Speed Update)。2021 年進一步推出 Core Web Vitals 計畫,將 LCP(最大內容繪製時間)、FID(首次輸入延遲)和 CLS(累積佈局偏移)納入 Page Experience 信號體系。GZIP 壓縮主要影響的是 LCP 和 FCP(首次內容繪製)這兩個指標,因為它實質性地減少了瀏覽器需要下載的資料量,讓頁面能更快完成首次渲染。

從實際案例來看,啟用 GZIP 壓縮後,一個典型的 WordPress 網站在 Google PageSpeed Insights 的評估分數通常可以提升 5 到 15 分。如果你原本的分數落在 70 到 80 分之間,這個提升幅度可能剛好讓你從橘色警告跨越到綠色通過的門檻。

除了 GZIP 壓縮之外,如果能搭配 WordPress SEO 外掛進行全面的頁面優化、使用 instant.page 預先載入技術來加快頁面切換速度、以及正確設定結構化資料標記,就能讓整體 SEO 表現更上一層樓。想要深入分析競爭對手的 SEO 策略,也可以安裝 Detailed SEO Extension 瀏覽器擴充功能來查看其他網站的 SEO 配置。

圖片壓縮與 GZIP 的搭配策略

GZIP 壓縮處理了 HTML、CSS、JavaScript 等「文字」資源的傳輸大小問題,但在一個典型的 WordPress 網頁中,圖片往往佔去最多的頻寬。根據 HTTP Archive 的統計資料,圖片平均佔了一個網頁總傳輸量的 50% 以上。光啟用 GZIP 還不夠,圖片優化同樣重要。

以下是推薦的圖片優化工具組合:

  • Recompressor — 免費線上圖片壓縮工具,採用智慧演算法自動找出最佳壓縮比例,同時支援 PNG 和 JPEG。
  • Squoosh — Google 開發的開源壓縮工具,支援多種圖片格式之間的互相轉換,而且可以離線使用。
  • Imagify — 提供 WordPress 專用外掛,安裝後可自動壓縮所有上傳的圖片,提供三種壓縮等級供選擇。
  • AI Image Enhancer — 運用 AI 技術增強圖片品質,適合需要在壓縮之後仍然維持高畫質的場景。

在圖片格式的選擇上,建議將網站中的圖片轉換為 WebP 格式。WebP 在相同視覺畫質的條件下,比傳統 JPEG 格式的檔案小 25% 到 35%,比 PNG 格式則可以減少約 26% 的檔案大小。你可以透過 AnyWebP 線上工具快速將現有圖片轉換為 WebP,或使用 Compressor.io 來壓縮 SVG 等其他格式。對於需要放大圖片的使用場景,AI Image Enlarger 能夠在放大的同時維持良好的清晰度。

如何確認 GZIP 壓縮效果達到最佳

啟用 GZIP 壓縮後,務必回頭驗證壓縮效果是否確實生效。你可以用以下步驟來判斷:

步驟一:使用 GTmetrixPingdom Tools 跑一次完整的速度測試,確認報告中「Enable GZIP Compression」評估項目是否滿分通過。

步驟二:用 Chrome DevTools 的 Network 標籤頁逐一檢查各個 CSS 和 JS 檔案的回應標頭,確認每個文字型資源都有 content-encoding: gzip 的標記。

步驟三:比較啟用前後的 PageSpeed Insights 評估分數變化,量化壓縮帶來的實際效果。

如果檢查過程中發現某些第三方資源(例如 Google Analytics 追蹤碼、Facebook Pixel 的 JavaScript)沒有被壓縮,那是正常現象。這些資源託管在第三方伺服器上,你無法控制它們的壓縮設定。你只需要專注在自己伺服器上託管的資源。

想確認你的網站目前託管在哪個主機商嗎?可以使用 Hosting Checker 線上工具來快速查詢。如果你正在評估更換主機服務商,建議參考我們整理的WordPress 虛擬主機推薦懶人包,裡面涵蓋多家熱門主機商的費用方案、速度測試和功能特色比較。

下一步行動建議

1. 立即檢查壓縮狀態:用 GiftOfSpeed 或 Chrome DevTools 確認你的網站目前是否已啟用 GZIP。如果已啟用,恭喜你,這一步可以跳過。預期結果:在 Response Headers 中看到 content-encoding: gzip

2. 選擇適合的啟用方式:如果你用的是 BluehostKinsta 等主流主機,大多數情況下安裝 WP Rocket 或確認主機預設設定即可。如果主機商不支援 .htaccess 修改,改用 PHP zlib 方式。判斷標準:能用外掛就用外掛,不能用外掛才手動改設定檔。

3. 跑一次完整速度測試:用 GTmetrix 跑一次完整測試,確認「Enable GZIP Compression」項目通過。同時檢查整體分數有沒有比啟用前提升。預期結果:GZIP 壓縮項目獲得滿分,PageSpeed 分數提升 5 到 15 分。

GZIP 壓縮常見問答 FAQ

GZIP 壓縮會增加伺服器 CPU 負載嗎?

會,但影響非常小。GZIP 壓縮大約增加 1% 到 5% 的 CPU 負載,以現代伺服器的硬體效能來說幾乎可以忽略。而且壓縮節省下來的頻寬和傳輸時間,帶來的效益遠大於那一點點額外的 CPU 開銷。如果主機資源真的非常有限(例如使用免費的 000Webhost5GBFree),可以考慮降低壓縮等級,或把壓縮工作交給 CDN 處理。

虛擬主機預設有啟用 GZIP 嗎?

很多主流 WordPress 主機商預設就有啟用 GZIP 壓縮,或至少提供一鍵開啟的選項。例如 Bluehost、SiteGround、A2 Hosting、FastComet 等大多都有預設啟用。但也不是每一家都會預設開啟,建議自行檢測確認。

啟用 GZIP 需要修改程式碼嗎?

不一定需要。使用 WP Rocket 等快取外掛可以在完全不接觸程式碼的情況下一鍵啟用。只有在你選擇手動修改 .htaccess 或 nginx.conf 時,才需要接觸程式碼。新手建議先用外掛方式啟用。

GZIP 和快取有什麼不同?

兩者的作用層面完全不同。GZIP 是減少每次檔案傳輸時的資料量大小,快取機制是讓瀏覽器避免重複下載已經取得過的資源。兩者是互補關係:GZIP 讓每次下載變得更快,快取則讓很多請求根本不需要再次下載。理想的做法是同時啟用,這也是為什麼像 WP Rocket 這樣的綜合型優化外掛會把兩個功能打包在一起。

Brotli 會完全取代 GZIP 嗎?

短期之內不會。雖然 Brotli 的壓縮率確實比 GZIP 更好,但它有 HTTPS 連線的必要條件限制,而且在壓縮等級較高的設定下,壓縮速度也比 GZIP 慢。截至 2026 年 5 月,最務實的做法仍然是兩者並行:伺服器端保持 GZIP 作為通用壓縮方案,CDN 端啟用 Brotli 來處理支援該協定的現代瀏覽器請求。

共享主機可以自己啟用 GZIP 嗎?

大多數共享主機都允許使用者透過 .htaccess 或外掛來啟用 GZIP 壓縮。只有極少數嚴格限制的主機方案可能不支援 .htaccess 修改,這時可以改用 PHP zlib 方式。如果以上方法都不行,建議考慮換一家對 WordPress 更友善的主機商。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 691

2 則留言

  1. 請問我已加入以上程式碼,可是測出來Enable gzip compression仍是F(0)
    請問要如何修正?

    • 這種情況發生的原因有很多種,或許是您的網站or主機擁有快取您尚未清除,也或者是您所使用的虛擬主機不支援or它自身擁有另外GZIP啟用的功能。

      除此之外,您的主機or網站所使用的壓縮方法可能是「br」(或許你有安裝一些優化外掛),因此用 GZIP 測出來的結果會是(0),但實際上您的網站已經有壓縮了(壓縮方法為 br)。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


目錄
Share to...