如何啟用GZIP壓縮以加速WordPress網站

加快WordPress網站速度的最簡單方法是消除所有不必要的資源。第二種最簡單的加速方法是壓縮所有需要的資源。在您的Web伺服器上啟用GZIP壓縮是實現這一目標的最簡單,最有效的方法之一。

默認情況下,所有現代瀏覽器均支持GZIP壓縮。但是,要不打擾地向用戶提供壓縮資源,必須正確配置伺服器。

在本文中,您將學習Web上數據壓縮的基礎知識,什麼是GZIP壓縮,其各種優點以及如何使用它來加快在不同伺服器設置上的WordPress網站的速度。

激動嗎 讓我們解壓縮!

Web數據壓縮的基礎

Web上的數據壓縮是減少網站傳輸的數據大小的過程。根據數據類型(文本,圖像,樣式表,腳本,字體),可以採用多種方式壓縮數據。

網頁主要組成部分的說明

網頁的主要組成部分

例如,最小化HTML,CSS和JavaScript是減少瀏覽器發送的數據量的簡單方法。在這裡,minifier通過從源代碼中刪除不必要的字元(例如注釋和空格)來壓縮文本。

在以下簡單HTML文檔的示例中,存在三種內容類型:HTML標記,CSS樣式和JavaScript代碼。

每種內容類型都有獨特的語法和語義。總體而言,此HTML文檔共有357個字元。

<html>
<head>
<style>
/ *僅在主頁上使用kinsta-banner * /
.kinsta-banner {font-size:150%}
.kinsta-banner {width:75%}
</ style>
</ style> </ head>
<body>
<!-kinsta橫幅START->
<div> … </ div>
<!-kinsta橫幅END->
<script>
kinstaScripts(); //頁面上使用的隨機腳本
</ script>
</ body>
</ html>

上面的代碼易於閱讀和遵循。是發展的理想選擇。但是,瀏覽器無需閱讀注釋並具有縮進的標籤。智能壓縮程序可以分析該文檔並從中刪除所有不必要的位。

<html> <head> <style> .kinsta-banner {font-size:150%; width:75%} </ style> </ head> <body> <div> … </ div> <script> kinstaScripts(); </ script> </ body> </ html>

縮小後,HTML文檔將減少為141個字元。這樣可以節省60.50%的字元數。看起來並不那麼容易,但這對瀏覽器來說並不重要。它仍然會向用戶顯示同一頁面。

為了利用這兩個版本,您可以將原始文檔維護為「開發版本」,但是在將其投入使用之前,請縮減所有代碼。

大多數WordPress性能插件會自動為您解決此問題。

未壓縮與最小化jQuery的文件大小比較

未壓縮與最小化jQuery的文件大小壓縮

例如,未壓縮版本的jQuery 3.5.1庫比同一文件的縮小版本大3倍以上。

同樣,上述相同的壓縮技術可以優化其他內容類型,例如圖像,視頻,字體等。減少此類特定於內容的內容是優化網站基於文本的資產大小的第一步。

但是,數據壓縮不僅限於壓縮。使用高級數學技術,數據壓縮演算法可以進一步減少數據大小。

這種數據壓縮方法最流行的例子之一就是GZIP。它可以實現高效的數據傳輸,並為使互聯網成為可行的全球通信媒介做出了巨大貢獻。

什麼是GZIP壓縮?

GZIP是GNU Zip的縮寫,是Web上最流行的無損數據壓縮方法。它允許您減小站點的HTML頁面,樣式表和腳本的大小。

除了是一種數據壓縮演算法外,GZIP還是文件擴展名(.gz)和用於文件壓縮/解壓縮的軟體。

它基於DEFLATE演算法,該演算法是LZ77編碼和Huffman編碼演算法的混合。

GZIP壓縮如何基於DEFLATE演算法的說明

GZIP壓縮基於DEFLATE演算法

GZIP壓縮器獲取一組原始數據並無損壓縮。原始數據可以來自任何文件類型,但是GZIP最適合基於文本的資產(例如HTML,CSS,JS)。

下一部分將深入介紹GZIP壓縮的工作原理。

GZIP如何壓縮數據

GZIP壓縮原理的粗略說明

GZIP壓縮原理的粗略說明

首先,GZIP壓縮器對原始數據運行LZ77壓縮演算法,以去除冗餘。該演算法通過在預定義的滑動窗口(原始數據的一小部分)中找到重複的模式來工作。

然後,它將所有重複的字元串替換為元組以壓縮原始數據。

LZ77編碼演算法的說明

LZ77編碼演算法的說明

在上面的示例中,滑動窗口的大小僅為13個字元長(13個位元組)。但是,GZIP壓縮可以使用最大滑動窗口大小為32 KB(32,768位元組)。滑動窗口的大小在LZ77壓縮性能中起著關鍵作用。

在使用LZ77演算法壓縮原始數據後,GZIP壓縮器隨後使用霍夫曼編碼演算法對其進行進一步壓縮。它通過為出現頻率更高的字元分配最少的位數,而為稀有字元分配最大位數來實現此目的。

這種技術類似於摩爾斯電碼中使用的一種技術,其中英語中出現頻率更高的字母序列最短。

要了解霍夫曼編碼演算法的工作原理,請考慮單詞BOOKKEEPER。它長10個字元,但只有6個唯一字元。這個詞由單,雙和三字母組成。

幾乎所有網站都使用UTF-8字元編碼來表示字母和符號。UTF-8中的每個ASCII字元(還包括英語字母)都使用1個位元組(8位)。

「 BOOKKEEPER」一詞有很多重複的字母

「 BOOKKEEPER」一詞有很多重複的字母

一個10個字元的字元串(如BOOKKEEPER)將需要10個位元組(80位)的內存。您會看到它包含1個字母B,P,R實例,2個字母O和K實例以及3個字母E實例。

霍夫曼編碼演算法使用此知識來無損地壓縮字元串。它通過生成帶有每個唯一字母作為葉子的二叉樹來做到這一點。

頻率最低的字母(例如B,P,R)將發現自己在樹的底部,而頻繁出現的字母(例如E,O,K)則理想地將它們發現在樹的頂部。

樹中最頂層的節點是根,其值等於字元串中字元的總數。

霍夫曼樹的單詞「 BOOKKEEPER」

霍夫曼樹的單詞「 BOOKKEEPER」

生成霍夫曼樹後,所有左分支箭頭和右分支箭頭分別被賦予0和1的數字。然後,您可以通過跟蹤從根到葉的路徑並連接所有0和1,為任何字元生成霍夫曼代碼。

霍夫曼碼是每個字元的唯一二進位碼

霍夫曼碼是每個字元的唯一二進位碼

您會注意到,頻率最高的字母的霍夫曼碼的位數最小。

注意:霍夫曼編碼演算法可以通過對具有相同頻率的字元使用不同的排序策略來生成備用二進位代碼。但是,編碼字元串的總大小將保持不變。

80位字編碼為25位字元串

80位字編碼為25位字元串

這就是存儲原始單詞所需的內存減少68.75%。

將霍夫曼樹與0/1約定一起使用會生成滿足prefix屬性的二進位代碼。它確保任何特定字元的霍夫曼代碼都不是任何其他字元的代碼的前綴,從而使使用霍夫曼樹輕鬆解碼編碼的字元串成為可能。這在GZIP減壓速度中起主要作用。

就像上面的單詞一樣,GZIP壓縮器使用霍夫曼編碼演算法來進一步優化由LZ77演算法生成的元組。這將導致擴展名為.gz的高度壓縮文件。

如果您想了解有關GZIP工作原理的更多信息,請參閱此視頻以獲取快速概述。

GZIP壓縮有多好?

通常,對於小文件,GZIP的壓縮率約為70%,而對於較大的基於文本的資產,GZIP的壓縮率可高達90%。

各種CSS和JS庫的GZIP壓縮率比較

一些流行的CSS和JS庫的GZIP壓縮率

在上表中,您可以看到使用GZIP壓縮縮小的文件可以進一步減小文件的大小。

注意:您可以使用GZIP壓縮任何文件類型,但是對於已經使用其他方法壓縮的資產(例如圖像,視頻),將不會節省任何費用。有時,它甚至可能會增加文件大小。

壓縮演算法的強度不僅取決於其壓縮率,還取決於其壓縮和解壓縮數據的速度和效率。這就是GZIP在大多數用例中都擅長的地方。

由於GZIP使用流演算法快速解壓縮,因此非常適合速度至關重要的Web協議。另外,GZIP使用最少的資源來壓縮和解壓縮數據,使其非常適合伺服器和客戶端。

使用WordPress,我們的流量增長了1,187%。
我們將向您展示如何。

加入20,000多個其他人,他們每周都會收到有關WordPress內部技巧的新聞!

現在訂閱

成功!感謝您的訂閱

您將在一周內收到下一期的Kinsta新聞通訊。

訂閱Kinsta新聞通訊

訂閱

我同意條款和條件以及隱私政策

brotli vs bzip2 vs GZIP vs xz的壓縮性能(來源:OpenCPU)

brotli vs bzip2 vs GZIP vs xz的壓縮性能(來源:OpenCPU)

上面的圖表比較了brotli,bzip2,gzip和xz壓縮演算法的壓縮性能。GZIP在壓縮率測試中略有損失,但在壓縮和解壓縮速度方面,它完全擊敗了競爭對手。

查看壓縮速度圖,我們可以得出結論,GZIP是HTTP伺服器和Web上其他數據流中實時壓縮的理想選擇。考慮到其在推進網路方面的所有積極作用,IETF批准了GZIP作為HTTP / 1.1壓縮的三種標準格式之一。

注意:許多流行的操作系統(Linux,macOS,iOS)和現代遊戲機(PlayStation 4,Wii U,Xbox One)均使用GZIP壓縮庫zlib的抽象形式。它也以無損PNG文件格式用於壓縮圖像。

GZIP壓縮的6個優點

讓我們仔細看看GZIP壓縮的最重要的優點。

提供不錯的壓縮比

如前所述,與競爭對手相比,GZIP沒有最佳的壓縮率。但這也離他們不遠。通常,它可以幫助您將基於文本的資源的大小減少70-90%。

超快速壓縮和解壓縮

對於數據壓縮和解壓縮速度,GZIP無疑是贏家。在HTTP伺服器和其他數據流中進行實時壓縮是非常理想的。

需要很少的內存

GZIP保留了最小的內存佔用空間,使其適用於內存容量有限的伺服器和系統。因此,即使最便宜的網路託管提供商也會為您提供支持。

即使在最壞的情況下也不會擴展太多

像GZIP這樣的無損數據壓縮演算法具有嚴格的限制,超過該限制,它們將無法壓縮數據。

通常,當資源已經被很好地壓縮時,或者如果資源很小,並且添加GZIP字典的開銷高於壓縮節省量時,就會發生這種情況。我們可以將此現象歸因於一個稱為熵編碼的概念。GZIP對此效果具有高度抵抗力。

免費使用和開源

GZIP主要是作為對早期Unix系統中使用的專利壓縮程序的免費開放源代碼替代而創建的。因此,它不受任何專利的約束,任何人都可以自由使用。

享有全民支持

據W3Techs稱,他們跟蹤的所有網站中有82%使用了GZIP壓縮,這使其成為Web上使用最廣泛的壓縮演算法。

幾乎所有伺服器和客戶端都支持GZIP。無論您在哪個伺服器上託管站點,都可以通過在其上啟用GZIP來加快速度。

網站速度測試工具中的GZIP警告

除了縮小之外,啟用GZIP是您可以在網站上實施的最簡單,最有效的速度優化之一。

這也是優化WordPress的最簡單方法之一。儘管如此,許多WordPress網站仍然不使用它。

當您訪問網站時,瀏覽器通過檢查content-encoding:gzip響應標頭來檢查Web伺服器是否啟用了GZIP。如果標頭存在,它將檢索壓縮文件,將其解壓縮,然後自動將較小的文件提供給您。

「內容編碼:gzip」響應標頭

Chrome DevTools中的「 content-encoding:gzip」響應標頭

如果瀏覽器未檢測到GZIP響應標頭,則會下載未壓縮的文件。在大多數情況下,頁面載入速度的差異可能是幾秒鐘。因此,如果您未啟用GZIP,則會在網站速度測試工具中看到警告。

Google PageSpeed Insights / Lighthouse中的GZIP警告

如果您的網站上未啟用任何文本壓縮功能,則Google PageSpeed Insights會發出警告。

注意:Google PageSpeed Insights和Google Lighthouse是兩個單獨的網站性能測試工具。直到2018年Google升級PageSpeed Insights以使用Lighthouse作為其分析引擎時,他們彼此獨立工作。因此,PageSpeed Insights和Lighthouse現在是一回事。

Google PageSpeed Insights中的「啟用文本壓縮」警告

Google PageSpeed Insights中的「啟用文本壓縮」警告

在上面的示例站點中,壓縮基於文本的資源可以使頁面權重降低78%以上,並將頁面載入時間縮短2.1秒。

注意:PageSpeed Insights依賴於伺服器返回給瀏覽器的響應頭。有時,即使啟用了GZIP壓縮,它也可能顯示錯誤的警告。可能是因為在使用中間代理伺服器或安全軟體的計算機上運行了速度測試。它們可能會干擾從外部伺服器下載壓縮文件。

GTmetrix中的GZIP警告

如果您的網站不提供壓縮的基於文本的資源,GTmetrix將顯示警告。像Google PageSpeed Insights一樣,它還會向您顯示可以實現的潛在節省。

GTmetrix中的「啟用壓縮」警告

GTmetrix中的「啟用壓縮」警告

注意:GTmetrix正在升級其速度測試演算法,以使用最新的Google Lighthouse指標替換舊的PageSpeed Insights和YSlow庫。您可以期望它的GZIP壓縮警告類似於Lighthouse所顯示的警告。

Pingdom工具中的GZIP警告

Pingdom Tools會發出直接警告,提示您使用GZIP壓縮您的網站組件。

Pingdom工具中的「使用GZIP壓縮組件」警告

Pingdom工具中的「使用GZIP壓縮組件」警告

在說明部分,Pingdom Tools還為您提供了有關GZIP重要性的一些統計信息。涼豆!

WebPageTest中的GZIP警告

如果WebPageTest檢測到未以最優化的方式提供任何可壓縮的響應,則會在其「性能查看」選項卡中顯示警告。

WebPageTest中的「使用GZIP壓縮」警告

WebPageTest中的「使用GZIP壓縮」警告

WebPageTest還將給出評分,以顯示警告的嚴重程度。例如,它將上面的警告23評定為100,這意味著您應將其作為優先順序進行修復。

如何檢查是否啟用了GZIP壓縮

有效的所有現代瀏覽器均支持Accept-Encoding:gzip,deflate HTTP標頭。因此,大多數Web主機(包括Kinsta)默認情況下在其所有伺服器上啟用GZIP壓縮。

當Web伺服器看到瀏覽器發送的此標頭時,它們會識別瀏覽器對GZIP的支持,並使用content-encoding:gzip標頭以壓縮的HTTP響應進行響應。

但是,如果您使用的是其他WordPress託管服務提供商,或者僅想確認您的網站是否正確提供了GZIP壓縮內容,請始終檢查是否已啟用。

以下是檢查GZIP壓縮的幾種簡單方法。

1.在線GZIP壓縮測試工具

使用在線工具是檢查網站上是否啟用GZIP壓縮的最簡單方法。我建議使用免費的Check GZIP壓縮或HTTP壓縮測試工具。只需輸入您的網站URL,然後單擊「檢查」或「測試」按鈕。

這兩個在線工具都將向您簡要報告是否啟用了GZIP,以及通過在啟用了GZIP壓縮的情況下提供測試URL來保存(或可能保存)的數據傳輸量。

第一個工具還將向您顯示其他相關信息,例如網站的伺服器類型,內容類型和壓縮時間。

使用Check GZIP壓縮工具測試Kinsta的主頁

使用Check GZIP壓縮工具測試Kinsta的主頁

使用HTTP壓縮測試工具測試Kinsta.com

使用HTTP壓縮測試工具測試Kinsta.com

您應該注意,GZIP優化不僅在您的網頁上停止,而且還包括其基於文本的靜態資產,例如樣式表,腳本和字體。如果您正在使用CDN來提供這些資產,則需要確保CDN也在啟用GZIP壓縮的情況下為它們提供服務。

大多數現代CDN(例如Cloudflare,Kinsta CDN,KeyCDN和CloudFront)都支持GZIP壓縮。您可以通過直接鏈接到資產來測試CDN服務的資產以進行GZIP壓縮。

CDN託管資產的GZIP壓縮測試

CDN託管資產的GZIP壓縮測試

在上面的報告中,您可以看到Kinsta CDN使用KeyCDN引擎,這是傳統的pull CDN。如果您使用Kinsta託管WordPress網站,則不必擔心GZIP壓縮問題,因為默認情況下它已啟用。

信息

Kinsta上的所有WordPress託管計劃都包括對Kinsta CDN的免費支持。

2.「內容編碼:gzip」 HTTP響應標頭

驗證網站是否提供GZIP壓縮內容的第二種方法是通過驗證content-encoding:gzip HTTP響應標頭。

您可以打開Chrome DevTools或Firefox Developer Tools,然後在「網路」部分下查找此響應標頭。

厭倦了低於答案的1級WordPress託管支持?試試我們世界一流的支持團隊!查看我們的計劃

前面已經介紹了Chrome DevTools中的外觀。這是在Firefox開發人員工具中的外觀。

Firefox開發人員工具中的「 content-encoding:gzip」標頭

Firefox開發人員工具中的「 content-encoding:gzip」標頭

您還可以在Chrome DevTools設置面板中啟用「使用大請求行」選項,以查看頁面的原始大小和壓縮大小。如下所示,使用GZIP壓縮後,原始頁面的大小從118 KB減小到僅22.9 KB。

在Chrome Devtools中查看壓縮和未壓縮的頁面大小

在Chrome Devtools中查看壓縮和未壓縮的頁面大小

3.網頁速度測試工具

大多數網站速度測試工具都會警告您不要使用GZIP之類的壓縮來服務您的網頁。正是由於這些GZIP警告,才引起本文的許多讀者來臨,我上面已經詳細討論了其中的許多警告。

各種網頁速度測試工具中的GZIP警告

各種網頁速度測試工具中的GZIP警告

您可以使用PageSPeed Insights,GTmetrix,Pingdom Tools和WebPageTest之類的工具來檢查是否在WordPress網站上啟用了GZIP壓縮。

如何啟用GZIP壓縮

如果您的Web伺服器上未啟用GZIP壓縮,則有很多方法可以啟用它。確切的方法取決於您用來託管網站的Web伺服器。

重要:與往常一樣,在編輯站點和伺服器配置文件之前,請對其進行備份。

使用WordPress插件啟用GZIP

在WordPress網站上啟用GZIP壓縮的最簡單方法是使用緩存或性能優化插件。

例如,如果您將WordPress站點託管在Apache Web伺服器上,則W3 Total Cache在其「瀏覽器緩存」設置面板下包括啟用GZIP壓縮的選項。

同樣,WP Rocket允許您自動添加GZIP壓縮規則。這些插件通過將Apache的mod_deflate模塊添加到.htaccess文件來啟用GZIP壓縮。

在W3總緩存中啟用GZIP壓縮

在W3總緩存中啟用GZIP壓縮

WordPress插件需要許可權才能修改Web伺服器上的文件。如果他們沒有正確的許可權,那麼他們將失敗或顯示錯誤。

在這種情況下,您需要使用以下代碼片段與託管提供商聯繫或手動修改Web伺服器的配置文件。

注意:Kinsta已針對高性能,可靠性和安全性對其平台進行了優化。這還包括默認情況下為其所有託管計劃啟用GZIP壓縮。

由於第三方緩存插件可能會與Kinsta的內部性能優化產生衝突,因此Kinsta不允許在伺服器上使用大多數插件。有關更多信息,您可以查看Kinsta禁止的插件的完整列表。

在Apache Web伺服器上啟用GZIP

根據Netcraft,A​​pache提供的活動站點比當今使用的任何其他Web伺服器都要多。它也是WordPress推薦的兩個Web伺服器之一。

要在Apache伺服器上啟用GZIP壓縮,您需要使用其mod_filter和mod_deflate模塊,並使用正確的指令正確配置它們。他們將指導Apache壓縮伺服器輸出,然後再通過網路將其發送給客戶端。

您有兩個選項可根據您具有的訪問級別來編輯Apache的伺服器配置:

  1. 如果可以訪問主伺服器配置文件(通常稱為httpd.conf),則建議使用它來配置Apache,因為.htaccess文件會降低Apache的速度。
  2. 如果您無法訪問主伺服器配置文件(大多數WordPress共享託管提供商通常是這種情況),那麼您需要使用.htaccess文件配置Apache。

第一個選項僅適用於sysadmin,因為託管提供程序很少允許您編輯主伺服器配置文件。解釋如何以這種方式進行操作超出了本文的範圍。您可以參考HTML5 Boilerplate項目和Apache文檔共享的示例Apache伺服器配置以開始使用。

第二個選項是大多數WordPress網站所有者的理想選擇,因為許多共享的託管服務提供商都允許您編輯.htaccess文件。

首先,請使用SFTP或主機的在線文件管理器在WordPress網站的根目錄中找到.htaccess文件。然後將以下代碼片段添加到其中。

要點:確保mod_filter模塊在伺服器上處於活動狀態。大多數Web主機默認情況下都啟用了該功能,但如果未啟用它,則AddOutputFilterByType指令將不起作用,並且可能會引發HTTP 500錯誤。添加下面的代碼段後,如果有任何問題,可以檢查伺服器的錯誤日誌。

<IfModule mod_deflate.c>
#壓縮HTML,CSS,JavaScript,文本,XML和字體
AddOutputFilterByType DEFLATE應用程序/ javascript
AddOutputFilterByType DEFLATE應用程序/ rss + xml
AddOutputFilterByType DEFLATE應用程序/vnd.ms-fontobject
AddOutputFilterByType DEFLATE應用程序/ x字體
AddOutputFilterByType DEFLATE應用程序/ x-font-
opentype AddOutputFilterByType DEFLATE應用程序/ x-font-otf
AddOutputFilterByType DEFLATE應用程序/ x-font-truetype
AddOutputFilterByType DEFLATE應用程序/ x-font-ttf
AddOutputFilterByType DEFLATE應用程序/ x-javascript
AddOutputFilterByType DEFLATE應用程序/ xhtml + xml
AddOutputFilterByType DEFLATE應用程序/ xml
AddOutputFilterByType DEFLATE字體/ OpenType字體
AddOutputFilterByType DEFLATE字體/ OTF
AddOutputFilterByType DEFLATE字體/ TTF
AddOutputFilterByType DEFLATE圖像/ SVG + xml的
AddOutputFilterByType DEFLATE圖像/ X-圖標
AddOutputFilterByType DEFLATE文本/ CSS
AddOutputFilterByType DEFLATE text / html的
AddOutputFilterByType DEFLATE文本/ JavaScript的
AddOutputFilterByType DEFLATE文本/無格式
AddOutputFilterByType放下text / xml 

#刪除瀏覽器錯誤(僅
舊版瀏覽器需要)BrowserMatch ^ Mozilla / 4 gzip-only-text / html
BrowserMatch ^ Mozilla / 4.0 [678] no-gzip
BrowserMatch bMSIE!no-gzip!gzip-only-text / html
標題附加更改用戶代理
</ IfModule>

僅在.htaccess文件的現有指令之後添加以上代碼。保存文件,然後檢查它是否在伺服器上啟用了GZIP壓縮。

啟用GZIP壓縮後的Apache .htaccess文件示例

啟用GZIP壓縮後的Apache .htaccess文件示例

您的Web伺服器現在應該為上面列出的所有文件擴展名提供壓縮文件。您可以使用前面提到的任何方法來確認這一點。

如果要確保客戶端上的代理和安全軟體不干擾GZIP壓縮,則可以將下面的代碼片段替換為上面的代碼片段。

<IfModule mod_deflate.c>
#強制壓縮處理「接受編碼」請求標頭的客戶端
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng | X-cept-Encoding | X {15} | 〜{15} |-{15})$ ^((gzip | deflate)s * ,? s *)+ | [X〜-] {4,13} $ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding「 gzip,deflate 「 env = HAVE_Accept-Encoding
</ IfModule>
</ IfModule>

#使用以下文件擴展名之一壓縮所有輸出
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE「 application / atom + xml」
「 application / javascript」
「 application / json」
「 application / ld + json」
「 application / manifest + json」
「應用程序/ rdf + xml」
「應用程序/ rss + xml」
「應用程序/ schema + json」
「應用程序/ geo + json」
「應用程序/vnd.ms-fontobject」
「應用程序/ wasm」
「應用程序/ x-font-ttf 「
」應用程序/ x-javascript「
」應用程序/ x-web-app-manifest + json「
」應用程序/ xhtml + xml「
」application / xml「
」 font / eot 「 」 font / opentype「
」 font
/ otf「
」 font / ttf「
」圖像/ bmp「
「圖像/ svg + xml」
「圖像/vnd.microsoft.icon」
「文本/緩存清單」
「文本/日曆」
「文本/ css」
「文本/ html」
「文本/ javascript」
「文本/普通」
「文本/ markdown「
」 text / vcard「
」 text / vnd.rim.location.xloc 」 text / vtt「
」 text /
x-component「
」 text / x-cross-domain-policy「
」 text / xml「
</ IfModule >

#定義媒體類型並將其映射到適當的編碼類型
#強烈建議使用SVG格式(可縮放矢量圖形)來
#載入徽標,圖標,文本和簡單圖像。您可以
進一步使用GZIP壓縮.SVG文件#來創建.SVGZ文件。但是,大多數瀏覽器都不
知道#如果
沒有適當的「內容編碼」 HTTP響應標頭,則必須先解壓縮它們(如果沒有提供)因此,
#這些圖像不會顯示在瀏覽器中。因此,此模塊。

<IfModule mod_mime.c>
AddType圖片/ svg + xml svg svgz
AddEncoding gzip svgz
</ IfModule>

</ IfModule>

您可以通過轉到其代碼存儲庫並跟蹤其中鏈接的所有資源,來了解有關此處使用的所有指令的更多信息。

在Nginx Web伺服器上啟用GZIP

根據Netcraft,Nginx是面向Web的計算機中使用最多的Web伺服器。如果當前的趨勢持續下去,它將很快取代Apache,成為活躍站點中使用最多的Web伺服器。甚至Kinsta也使用Nginx為WordPress提供性能優化的託管解決方案。

您可以使用ngx_http_gzip_module中定義的指令在Nginx Web伺服器上啟用GZIP壓縮。

首先,將下面給出的指令添加到您的nginx.conf文件中。通常,您可以在伺服器的/etc/nginx/nginx.conf位置中找到此文件。

#啟用GZIP壓縮
gzip;

#壓縮級別(1-9)
#6是CPU使用率和文件大小
gzip_comp_level 6之間的良好折衷

#最小文件大小限制(以位元組為單位),以免產生負面的壓縮結果
gzip_min_length 256;

#壓縮通過代理
gzip_proxied any連接的客戶端的數據

#指示代理在其上緩存資產
gzip_vary的常規和GZIP版本

#為不支持GZIP的
瀏覽器禁用GZIP壓縮gzip_disable「 msie6」;

#壓縮標有以下文件擴展名或MIME類型的輸出
#文本/ html MIME類型默認情況下處於啟用狀態,無需包含在其中
gzip_types
application / atom + xml
application / geo + json
application / javascript
application / x-javascript
application / json
應用程序/ ld + json
應用程序/清單+ json
應用程序/ rdf + xml
應用程序/ rss + xml
應用程序/vnd.ms-fontobject
應用程序/ wasm
應用程序/ x-web-app-manifest + json
應用程序/ xhtml + xml
應用程序/ xml
字體/ eot
字體/ otf
字體/ ttf
圖像/ bmp
圖像/ svg + xml
文本/緩存清單
文本/日曆
文本/ css
文本/ javascript
文本/降價
文本/純
文本/ xml
文本/ vcard
文本/vnd.rim.location.xloc
文本/ vtt
文本/ x組件
文本/ x-cross-domain-policy;

如果您的站點提供較大的JS和CSS文件,則可以通過向nginx.conf文件中添加以下指令來增加用於壓縮的緩衝區大小:

#設置用於GZIP壓縮的緩衝區的「數量」和「大小」
#默認緩衝區大小為4K或8K,具體取決於平台
gzip_buffers 16 8k;

保存完nginx.conf文件後,請不要忘記重新載入Nginx。

sudo服務nginx重新載入

最後,您應該進行測試以查看伺服器是否啟用了GZIP壓縮。您可以參考Nginx文檔以獲取所有ngx_http_gzip_module指令的最新列表。

在IIS Web伺服器上啟用GZIP

Microsoft的Internet信息服務(IIS)是當今使用的第三流行的Web伺服器。IIS主要部署在Windows上運行的企業環境中,尤其是用於設置公司特定的Intranet和Extranet伺服器。

由於各種兼容性問題,它很少用於託管WordPress網站。

但是,如果您遇到需要在IIS上啟用GZIP壓縮的罕見情況之一,則可以參考Microsoft的文檔以開始使用。您可能還會發現此堆棧溢出線程很有幫助。

GZIP壓縮的替代方法

網路上數據壓縮的世界一直在發展。隨著平均頁面權重大小的不斷增加,Web技術也在努力追趕它,以提高在Web上傳輸數據的效率。

頁面權重大小隨時間增加(來源:HTTPArchive)

頁面權重大小隨時間增加(來源:HTTPArchive)

在過去的幾年中,一種新的壓縮演算法獲得了廣泛的普及:Brotli。最初,壓縮WOFF2 Web字體是Brotli的主要重點,但自那時以來,它已擴展為支持對任何類型的數據進行壓縮。

與GZIP相比,Brotli壓縮數據的性能更好,但是壓縮數據需要大量的時間和資源。但是,它的解壓縮時間與GZIP的解壓縮時間相當,儘管它仍然慢一點。

Brotli在各種瀏覽器中的支持

Brotli在各種瀏覽器中的支持

今天,大多數瀏覽器都支持Brotli,但在WordPress網站上使用它仍然有些複雜。您必須使用支持Brotli或允許您安裝Brotli庫的託管提供程序來託管站點。大多數託管的WordPress主機尚不完全支持它,但是,如果您使用Cloudflare或KeyCDN等CDN,則可以輕鬆啟用它。

Brotli對壓縮靜態資產顯示出巨大的希望。Akamai發表了一篇詳細的文章,比較了Brotli與GZIP。您可以查看以了解有關Brotli的更多信息。

概要

最佳化的網站適合所有人。用戶喜歡快照網站,網站所有者喜歡降低的託管費用,網站託管者喜歡在其伺服器上實現的優化。像GZIP這樣的壓縮技術是縮短訪問者頁面載入時間的最佳方法之一。

WordPress網站所有者可以通過啟用GZIP壓縮來立即加速其網站。默認情況下,Kinsta在其所有伺服器上啟用它,但是對於其他伺服器,本文介紹了在各種Web伺服器上啟用GZIP壓縮的多種方法。

速度對於任何網站都至關重要。只是壓縮!

如果您喜歡這篇文章,那麼您會喜歡Kinsta的WordPress託管平台。加速您的網站並獲得我們經驗豐富的WordPress團隊的24/7支持。我們基於Google Cloud的基礎架構專註於自動擴展,性能和安全性。讓我們向您展示Kinsta的與眾不同!查看我們的計劃

相關文章