WordPress網站使用Gzip壓縮提升網站載入速度教程

Gzip壓縮可以減少了HTML檔案,JavaScripts,CSS樣式表和XML檔案的大小。 通常,使用WordPress外掛啟用(使用)Gzip壓縮可以減少60%到80%的站點大小。

在WordPress中通過.htaccess啟用Gzip壓縮可以減少伺服器響應時間和伺服器傳送到Web瀏覽器的資料量。 當然,壓縮頁面大小有助於減少傳輸的響應和資料。 啟用壓縮的最佳方法是在WordPress站點伺服器的 .htaccess檔案中使用mod_gzip或mod_deflate。 你只需要通過在您網站的WordPress安裝目錄下的 .htaccess檔案中新增一個簡單的程式碼來啟用Gzip壓縮。

如果您不想通過.htaccess檔案啟用壓縮,我們還可以使用一些外掛來實現,比如如W3 Total Cache,WP Super Cache外掛均支援啟用WordPress中的Gzip壓縮。

文章閱讀導航

什麼是Gzip壓縮?

Gzip是一個檔案壓縮器,用於壓縮和解壓縮檔案。 它提供了壓縮文字檔案(如CSS樣式表,HTML和JavaScript檔案)的最優版本。 在網站上啟用時,Gzip會在從伺服器傳輸檔案之前壓縮檔案。 因此,它改善了頁面速度,載入時間並且還節省了使用者請求的資料量。 如果您希望進一步瞭解更多有關Gzip壓縮的資訊,請檢視這些連結 [1, 2]。

Gzip壓縮如何工作?

Gzip壓縮的概念非常簡單。 它使用的演算法僅在一個位置組織重複的字串,而不是一次又一次地儲存那些相同的字串。 並且它在壓縮和從壓縮檔案中檢索資料時管理具有位置值的字串。 Gzip壓縮適用於樣式表和網頁,因為這些資原始檔都有許多重複的字串。 由於其壓縮技術,Gzip能夠將檔案大小減少70-90%。

讓我們看一下以下的例子來理解Gzip壓縮……

假設你的HTML檔案內容是這樣的……

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<h3>Enable Gzip Compression in WordPress </h3>
<h3>Enable Gzip Compression in WordPress </h3>
<h3>Enable Gzip Compression in WordPress </h3>

然後,經過壓縮後的版本為如下示例。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Hkg6dkGhJkjsdHkgHjL
Hkg6dkGhJkjsdHkgHjL
Hkg6dkGhJkjsdHkgHjL

但是,如果您的HTML檔案內容重複字串如下…

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<h3>Enable Gzip Compression in WordPress</h3>
<h3>Enable Gzip Compression in WordPress via .htaccess</h3>
<h3>Enable Gzip Compression in WordPress</h3> <h3>Enable Gzip Compression in WordPress via .htaccess</h3>
<h3>Enable Gzip Compression in WordPress</h3>

<h3>Enable Gzip Compression in WordPress via .htaccess</h3>

然後,Gzip壓縮將重複的字串壓縮為一段程式碼,然後再對非重複的字串壓縮後,得到的內容如下所示。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Hkg6dkGhJkjsdHkgHjL/GjDVjs
Hkg6dkGhJkjsdHkgHjL/GjDVjs
Hkg6dkGhJkjsdHkgHjL/GjDVjs

WordPress的DEFLATE壓縮和Gzip壓縮

您可能已經在網上閱讀過有關Gzip壓縮和DEFLATE壓縮的內容。 如果你還沒有,我們來簡單瞭解一下。 Gzip和DEFLATE兩種壓縮演算法不同,用於不同的伺服器。 Gzip壓縮用於Apache和Nginx伺服器,而DEFLATE僅用於Apache伺服器。

開始之前

首先,您應該檢查WordPress網站上是否啟用了Gzip壓縮。 Google Gzip壓縮測試工具或varvy gzip檢測工具提供這樣的服務。 如果壓縮已應用於您的網站。 然後,您可以檢查是否正確啟用了壓縮。 或者還有更多的壓縮空間嗎? (誰能做到更高的壓縮比誰的技術就更好)。

您還需要找出您的Web主機正在使用的Web伺服器軟體(Apache或Nginx)。 因為Gzip壓縮方法啟用對於兩個伺服器有所不同。

通過Web伺服器配置開啟WordPress的Gzip壓縮

要通過WordPress網站的.htaccess啟用Gzip壓縮,您只需要開啟WordPress安裝根目錄下的.htaccess檔案,複製並貼上以下程式碼並儲存更改。 然後再次前面所說的檢查壓縮測試工具的網站,經測試後你會發現Gzip壓縮已經減少您的網站頁面大小,並將提高頁面載入速度。

在Apache伺服器上壓縮

Gzip壓縮 – 在您網站的WordPress根目錄下的.htaccess檔案中新增以下程式碼。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# BEGIN GZIP COMPRESSION
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
# END GZIP COMPRESSION
# BEGIN GZIP COMPRESSION <IfModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </IfModule> # END GZIP COMPRESSION
# BEGIN GZIP COMPRESSION
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
# END GZIP COMPRESSION

DEFLATE壓縮 – 將以下程式碼複製並貼上到您網站的WordPress根目錄下的.htaccess檔案中。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# BEGIN DEFLATE COMPRESSION
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE "application/atom+xml" \
"application/javascript" \
"application/json" \
"application/ld+json" \
"application/manifest+json" \
"application/rdf+xml" \
"application/rss+xml" \
"application/schema+json" \
"application/vnd.geo+json" \
"application/vnd.ms-fontobject" \
"application/x-font-ttf" \
"application/x-javascript" \
"application/x-web-app-manifest+json" \
"application/xhtml+xml" \
"application/xml" \
"font/eot" \
"font/opentype" \
"image/bmp" \
"image/svg+xml" \
"image/vnd.microsoft.icon" \
"image/x-icon" \
"text/cache-manifest" \
"text/css" \
"text/html" \
"text/javascript" \
"text/plain" \
"text/vcard" \
"text/vnd.rim.location.xloc" \
"text/vtt" \
"text/x-component" \
"text/x-cross-domain-policy" \
"text/xml"
</IfModule>
# END DEFLATE COMPRESSION
# BEGIN DEFLATE COMPRESSION <IfModule mod_filter.c> AddOutputFilterByType DEFLATE "application/atom+xml" \ "application/javascript" \ "application/json" \ "application/ld+json" \ "application/manifest+json" \ "application/rdf+xml" \ "application/rss+xml" \ "application/schema+json" \ "application/vnd.geo+json" \ "application/vnd.ms-fontobject" \ "application/x-font-ttf" \ "application/x-javascript" \ "application/x-web-app-manifest+json" \ "application/xhtml+xml" \ "application/xml" \ "font/eot" \ "font/opentype" \ "image/bmp" \ "image/svg+xml" \ "image/vnd.microsoft.icon" \ "image/x-icon" \ "text/cache-manifest" \ "text/css" \ "text/html" \ "text/javascript" \ "text/plain" \ "text/vcard" \ "text/vnd.rim.location.xloc" \ "text/vtt" \ "text/x-component" \ "text/x-cross-domain-policy" \ "text/xml" </IfModule> # END DEFLATE COMPRESSION
# BEGIN DEFLATE COMPRESSION
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE "application/atom+xml" \
"application/javascript" \
"application/json" \
"application/ld+json" \
"application/manifest+json" \
"application/rdf+xml" \
"application/rss+xml" \
"application/schema+json" \
"application/vnd.geo+json" \
"application/vnd.ms-fontobject" \
"application/x-font-ttf" \
"application/x-javascript" \
"application/x-web-app-manifest+json" \
"application/xhtml+xml" \
"application/xml" \
"font/eot" \
"font/opentype" \
"image/bmp" \
"image/svg+xml" \
"image/vnd.microsoft.icon" \
"image/x-icon" \
"text/cache-manifest" \
"text/css" \
"text/html" \
"text/javascript" \
"text/plain" \
"text/vcard" \
"text/vnd.rim.location.xloc" \
"text/vtt" \
"text/x-component" \
"text/x-cross-domain-policy" \
"text/xml"
</IfModule>
# END DEFLATE COMPRESSION

在Nginx伺服器上壓縮

Gzip壓縮 – 將以下程式碼貼上到託管的網站的Nginx伺服器上的配置檔案(一般位置在/usr/local/nginx/conf/nginx.conf)。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_disable "MSIE [1-6].(?!.*SV1)";
gzip_vary on;
gzip on; gzip_comp_level 2; gzip_http_version 1.0; gzip_proxied any; gzip_min_length 1100; gzip_buffers 16 8k; gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_disable "MSIE [1-6].(?!.*SV1)"; gzip_vary on;
gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_disable "MSIE [1-6].(?!.*SV1)";
gzip_vary on;

應用壓縮後的結果

閃電博Wbolt.com託管在Nginx伺服器上,所以網站使用Gzip壓縮。 啟用Gzip後網頁規模縮小了72%。 最初,我的網頁大小是62,299位元組(沒有壓縮),壓縮後網頁大小隻有17,671位元組。 當然還有很大的壓縮空間,但我們為了保證網站的圖片適配4K顯示器,都使用了2X的高清圖片。
WordPress網站使用Gzip壓縮提升網站載入速度教程配圖
WordPress啟用Gzip壓縮技術 | Test Wbolt.com

推薦閱讀:網站測速效能測試深入淺出教程

使用W3 Total Cache快取外掛實現Gzip壓縮

W3 Total Cache是WordPress平臺上最常用的快取外掛之一。 如果您使用此外掛,則可以通過此外掛啟用Gzip壓縮。 按照以下步驟使用WordPress外掛-W3 Total Cache啟用Gzip壓縮 – W3總快取

  • 進入 W3 Total Cache 快取外掛設定頁面
  • 進入 Browser Cache 選項卡
  • 勾選中 Enable HTTP Compression 選項
  • 最後不要忘記儲存設定。

Enable-Gzip-Compression-with-WordPress-Plugin-W3-Total-Cache

使用WordPress快取外掛 – W3 Total Cache 啟用Gzip壓縮

使用WP Super Cache快取外掛實現Gzip壓縮

WP Super Cache是另一款主流的快取外掛。 啟用Gzip壓縮也非常簡單,參照以下步驟使用WP Super Cache外掛啟用Gzip壓縮。

  • 進入 WP Super Cache 外掛設定介面
  • 點選 Advanced 選項卡
  • 勾選Miscellaneous(其他設定)中的第一個選項
  • 最後儲存設定即可

Enable-Gzip-Compression-with-WordPress-Plugin-WP-Super-Cache

使用WordPress快取外掛 – WP Super Cache 啟用Gzip壓縮

另外一款WordPress網站優化外掛-Autoptimize也非常受歡迎,有興趣的站長不妨也可以嘗試以下!

寫在最後

Gzip壓縮是最常用的檔案壓縮技術之一。 除此之外,它也是老站長推薦的PageSpeed優化推薦方法之一。 如今,一般情況下許多伺服器提供商都預設開啟了Gzip壓縮。 但是,如果您使用的是VPS伺服器或者獨立伺服器(部分虛擬主機)預設情況下可能未啟用它,則可以根據上面的教程啟用Gzip壓縮。 如果你有這方面的疑問,歡迎留言與我們討論。又或者,告訴我們你通過啟用Gzip壓縮,實現了多大比例的壓縮?

此外,Gzip壓縮只是網站優化的一小部分,如果要對網站進行全面優化,你可能還需要壓縮圖片,設定瀏覽器快取CDN加速JavaScript和CSS優化高效的快取策略……

評論留言

脣槍舌劍 (3)