Brotli壓縮:提升WordPress網(wǎng)站性能的利器
核心要點(diǎn):
- Google推出的新型壓縮算法Brotli能顯著提升WordPress網(wǎng)站性能,方法是減小文件大小,加快加載速度。
- 在服務(wù)器上安裝和配置Brotli可能比較復(fù)雜,因?yàn)樗形丛诹餍械腤eb服務(wù)器上正式發(fā)布,需要手動配置才能與WordPress完全集成。
- Brotli的壓縮率比另一種現(xiàn)代壓縮算法Gzip高出20-26%,從而產(chǎn)生更小的文件和更快的加載速度。
- 盡管Brotli有很多優(yōu)點(diǎn),但并非所有瀏覽器都支持它,而且只能在HTTPS上使用,這可能會給一些用戶帶來采用上的挑戰(zhàn)。
WordPress憑借易用性、強(qiáng)大的社區(qū)支持和可配置性等諸多優(yōu)勢成為優(yōu)秀的CMS。然而,WordPress用戶經(jīng)常面臨的一個難題是網(wǎng)站性能問題。本文將探討B(tài)rotli壓縮及其對WordPress性能的影響。
免責(zé)聲明:我為KeyCDN工作,此處引用了他們的一些文章和工具。
網(wǎng)上有很多關(guān)于“加速WordPress”的文章,它們提供了許多改進(jìn)網(wǎng)站加載速度的方法,包括使用插件進(jìn)行優(yōu)化。然而,自從Google發(fā)布了最新的壓縮算法Brotli以來,收集到的數(shù)據(jù)還不足以確定在WordPress網(wǎng)站上啟用它會帶來什么樣的性能提升。
在本文中,我們將通過在三種不同場景下測試WordPress性能來衡量Brotli壓縮的效果:
- 啟用Gzip的WordPress
- 啟用Brotli的WordPress
- 啟用Brotli 支持Brotli的CDN的WordPress
什么是Brotli壓縮?
Brotli(以一種瑞士烘焙產(chǎn)品命名)是Google在2015年發(fā)布的一種相對較新的壓縮算法。根據(jù)Google的說法,Brotli壓縮結(jié)合使用了現(xiàn)代LZ77算法變體、霍夫曼編碼和二階上下文建模。
Google使用Brotli壓縮算法進(jìn)行了各種測試,并將結(jié)果與其他現(xiàn)代壓縮算法進(jìn)行了對比。根據(jù)這項研究,Google發(fā)現(xiàn)Brotli在壓縮率方面平均比Zopfli(另一種現(xiàn)代壓縮算法)高出20-26%。在性能方面,文件壓縮得越小總是受歡迎的。
在服務(wù)器上安裝和配置Brotli
Brotli的一個小缺點(diǎn)是它尚未在任何流行的Web服務(wù)器上正式發(fā)布。這意味著,如果您今天想在服務(wù)器上啟用Brotli,則需要進(jìn)行一些配置工作。以下Brotli性能測試均在運(yùn)行Nginx的Ubuntu 16.04.2 LTS上進(jìn)行(需要了解如何使用Nginx?請查看SitePoint高級課程《使用Nginx加速網(wǎng)站》)。下面,我們將逐步介紹如何在相同的操作系統(tǒng)和Web服務(wù)器上運(yùn)行Brotli。
Ubuntu 16.04是第一個允許您使用apt-get安裝Brotli的Ubuntu發(fā)行版。為此,只需運(yùn)行:
$ apt-get update && apt install brotli
完成后,您需要為Brotli壓縮安裝Nginx模塊并編譯最新版本的Nginx(當(dāng)前版本為1.13.0):
$ apt-get update && apt install brotli
Brotli現(xiàn)在應(yīng)該已正確安裝在您的服務(wù)器上。接下來,您需要配置nginx.conf文件以指定所需的配置指令。以下指令用于這些性能測試;但是,您可以根據(jù)需要修改它們。
Brotli設(shè)置
$ git clone --recursive https://github.com/google/ngx_brotli ngx_brotli $ wget http://nginx.org/download/nginx-1.13.0.tar.gz $ tar zxvf nginx-1.13.0.tar.gz $ cd nginx-1.13.0 $ ./configure --add-module=../ngx_brotli $ make && make install
完整的指令列表可以在Nginx模塊Github頁面上找到。
由于修改了nginx.conf文件,因此最后一步是重新加載Nginx。為此,請運(yùn)行以下命令:
brotli on; brotli_comp_level 3; brotli_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
測試Brotli支持
Brotli現(xiàn)在應(yīng)該已安裝并配置在您的服務(wù)器上。要驗(yàn)證這一點(diǎn),您可以選擇兩種方法。
- 使用Brotli測試工具,該工具將根據(jù)域名檢查服務(wù)器是否支持Brotli。
- 使用Chrome瀏覽器,打開Chrome開發(fā)者工具并導(dǎo)航到“網(wǎng)絡(luò)”選項卡。刷新頁面并選擇一個資源。您應(yīng)該會看到content-encoding的值現(xiàn)在為br,代表Brotli。
配置Brotli以與WordPress配合使用
此時,您應(yīng)該能夠使用Brotli壓縮正確地交付WordPress資源。但是,如果您檢查HTML文檔的請求標(biāo)頭詳細(xì)信息,您可能會注意到content-encoding值仍然為“Gzip”。這是由于WordPress PHP代碼依賴于PHP設(shè)置zlib.output_compression
“On”。
不幸的是,目前無法使用WP過濾器更改此設(shè)置。但是,隨著Brotli的普及,WordPress可能會引入簡單的修復(fù)程序。目前,您需要手動禁用zlib.output_compression,方法是編輯php.ini文件(如果使用PHP 7.0,則位于/etc/php/7.0/fpm/php.ini)。只需將zlib.output_compression設(shè)置為Off,然后使用systemctl restart php7.0-fpm.service重新啟動PHP。
現(xiàn)在,在檢查網(wǎng)站的HTML文檔時,您應(yīng)該能夠看到content-encoding標(biāo)頭值br。
在WordPress上進(jìn)行Brotli性能測試
如上所述,我們的Brotli性能測試是在三種不同的場景下進(jìn)行的。
- 啟用Gzip的WordPress
- 啟用Brotli的WordPress
- 啟用Brotli 支持Brotli的CDN的WordPress
Brotli和Gzip壓縮級別均設(shè)置為“3”??梢愿鶕?jù)您喜歡的文件節(jié)省量與壓縮時間來修改壓縮級別。每個測試都使用運(yùn)行“2017”主題的普通WordPress安裝。默認(rèn)情況下,此主題加載14個資源并傳輸236KB的數(shù)據(jù)。
需要注意的是,上述測試網(wǎng)站中的并非所有資源都是可壓縮的。例如,圖像既不會被Gzip壓縮,也不會被Brotli壓縮,任何第三方資源(如字體)也不會被Brotli壓縮。因此,使用Gzip的所有壓縮資源的總大小的基線為84.7KB。為了考慮加載時間的變化,我們對每個頁面都進(jìn)行了三次硬刷新,并計算了每個測試場景的平均加載時間。這樣,所有資源都將從服務(wù)器加載,而不是從瀏覽器緩存加載。
下表概述了加載速度和壓縮資源大小的結(jié)果。
WordPress Gzip | WordPress Brotli | WordPress Brotli CDN | |
---|---|---|---|
加載速度 | 780 ms | 690 ms | 630 ms |
壓縮大小 | 84.7 KB | 81.7 KB | 81.7 KB |
正如結(jié)果所示,兩種Brotli壓縮方法的加載時間都比Gzip快,壓縮大小也更小。盡管頁面大小的差異并不顯著,但請記住,這些測試是在裸機(jī)WordPress安裝上進(jìn)行的。對于那些擁有許多資源的網(wǎng)站,多個資源上的少量節(jié)省肯定會累積起來。
此外,出于測試目的,我們將兩種壓縮方法都設(shè)置為最高級別,以觀察可壓縮資源大小的差異。結(jié)果如下:
- Brotli 11 – 壓縮大?。?7.7 KB
- Gzip 9 – 壓縮大?。?6.7 KB
盡管在這兩種情況下,將壓縮級別設(shè)置為最大可能并非必要(因?yàn)閴嚎s時間長得多),但值得注意的是,Brotli網(wǎng)站的可壓縮資源大小比Gzip網(wǎng)站的可壓縮資源大小小13.2%。
Brotli支持現(xiàn)狀
Brotli并非所有瀏覽器都普遍支持,盡管許多流行的瀏覽器目前都支持它(截至2017年5月)。
http://miracleart.cn/link/fc5f86251458722c799d1830fa0c2c1f
至于服務(wù)器支持,大多數(shù)流行的Web服務(wù)器都提供官方或社區(qū)創(chuàng)建的模塊。如本文的安裝過程所示,Nginx用戶必須安裝擴(kuò)展程序并使用Brotli支持編譯Nginx。同樣,Apache用戶可以使用mod_brotli模塊來交付Brotli壓縮的內(nèi)容。
Brotli的優(yōu)缺點(diǎn)
和任何事物一樣,使用Brotli也有其優(yōu)缺點(diǎn)。以下是一些需要考慮的幾點(diǎn)。
優(yōu)點(diǎn)
- 更小的壓縮結(jié)果
- 更快的加載時間
- 與Gzip相比,壓縮時間相當(dāng)
缺點(diǎn)
- 目前采用起來有點(diǎn)麻煩
- 并非所有瀏覽器都支持
- 需要手動配置才能與WordPress完全集成
此外,Brotli只能在HTTPS上使用,這既可以看作是優(yōu)點(diǎn),也可以看作是缺點(diǎn)。一方面,它正在幫助更多網(wǎng)站從HTTP遷移到HTTPS,從而創(chuàng)建一個更安全的互聯(lián)網(wǎng)。另一方面,它為那些想要啟用Brotli但仍在使用HTTP的用戶帶來了更多工作。
總結(jié)
如測試結(jié)果所示,在WordPress網(wǎng)站上實(shí)現(xiàn)Brotli在性能方面非常有益。在源服務(wù)器上實(shí)現(xiàn)Brotli允許在服務(wù)器端進(jìn)行壓縮,然后在支持Brotli壓縮的CDN上緩存該內(nèi)容,從而實(shí)現(xiàn)更快的資源交付。
盡管Brotli尚未被所有瀏覽器普遍支持,但重要的是要識別訪問者最常使用的瀏覽器,并通過提供更快的加載時間來滿足他們的需求。此外,對于那些使用尚未支持的瀏覽器的用戶,這些瀏覽器只會回退到使用Gzip——雙贏的局面。
關(guān)于WordPress Brotli壓縮的常見問題解答(FAQ)
Brotli和Gzip壓縮有什么區(qū)別?
Brotli和Gzip都是用于壓縮數(shù)據(jù)的算法,但它們有一些關(guān)鍵區(qū)別。由Google開發(fā)的Brotli是一種較新的算法,它比Gzip提供更好的壓縮率。這意味著它可以使文件更小,這可以加快網(wǎng)站的加載速度。但是,Brotli不像Gzip那樣得到廣泛支持,因此它可能無法在所有瀏覽器或服務(wù)器上運(yùn)行。
Brotli壓縮如何提高網(wǎng)站性能?
Brotli壓縮通過減小構(gòu)成網(wǎng)站的文件的大小來工作。這意味著當(dāng)用戶訪問您的網(wǎng)站時,他們的瀏覽器需要下載的數(shù)據(jù)更少,這可以加快加載速度。更快的加載速度可以改善用戶體驗(yàn),并對網(wǎng)站的SEO產(chǎn)生積極影響。
所有瀏覽器都支持Brotli壓縮嗎?
雖然包括Google Chrome和Firefox在內(nèi)的許多現(xiàn)代瀏覽器都支持Brotli壓縮,但并非所有瀏覽器都支持它。例如,Internet Explorer不支持Brotli壓縮。因此,在決定是否使用Brotli壓縮時,務(wù)必考慮您的受眾及其可能的瀏覽器使用情況。
如何測試我的網(wǎng)站是否正在使用Brotli壓縮?
有幾種可用的在線工具可以測試您的網(wǎng)站是否正在使用Brotli壓縮。這些工具通過向您的網(wǎng)站發(fā)送請求,然后分析響應(yīng)以查看它是否已使用Brotli進(jìn)行壓縮來工作。
我可以在我的WordPress網(wǎng)站上使用Brotli壓縮嗎?
是的,您可以在您的WordPress網(wǎng)站上使用Brotli壓縮。但是,實(shí)現(xiàn)Brotli壓縮可能比其他類型的壓縮更復(fù)雜,因?yàn)樗枰薷姆?wù)器配置。還有一些插件可以幫助您在WordPress網(wǎng)站上實(shí)現(xiàn)Brotli壓縮。
使用Brotli壓縮的潛在缺點(diǎn)是什么?
雖然Brotli壓縮可以提高加載時間,但它并非沒有潛在的缺點(diǎn)。首先,它不像其他壓縮方法(如Gzip)那樣得到廣泛支持。這意味著它可能無法在所有瀏覽器或服務(wù)器上運(yùn)行。此外,Brotli壓縮可能比其他方法更消耗資源,這可能會減慢服務(wù)器速度。
Brotli壓縮是如何工作的?
Brotli壓縮通過查找并刪除數(shù)據(jù)中的冗余來工作。它使用常用單詞和短語的字典來將重復(fù)數(shù)據(jù)替換為更短的表示形式,從而減小數(shù)據(jù)的整體大小。
Brotli壓縮會影響我的網(wǎng)站SEO嗎?
是的,Brotli壓縮可能會對您的網(wǎng)站SEO產(chǎn)生積極影響。這是因?yàn)樗阉饕嬖趯W(wǎng)站進(jìn)行排名時考慮的因素之一是加載時間。通過減小網(wǎng)站文件的大小,從而提高加載速度,Brotli壓縮可以幫助提高網(wǎng)站的SEO。
Brotli壓縮適用于所有類型的網(wǎng)站嗎?
Brotli壓縮可以使許多類型的網(wǎng)站受益,特別是那些擁有大量文本數(shù)據(jù)(如博客或新聞網(wǎng)站)的網(wǎng)站。但是,對于包含大量多媒體內(nèi)容的網(wǎng)站,它可能不太有益,因?yàn)榇祟悆?nèi)容通常已經(jīng)過壓縮,并且使用Brotli可能不會看到顯著的尺寸減小。
如何在我的服務(wù)器上實(shí)現(xiàn)Brotli壓縮?
在服務(wù)器上實(shí)現(xiàn)Brotli壓縮通常需要修改服務(wù)器的配置文件以啟用Brotli壓縮并指定應(yīng)壓縮的文件類型。確切的過程可能因服務(wù)器的操作系統(tǒng)和您使用的Web服務(wù)器軟件而異。
以上是測量Brotli壓縮對WordPress的影響的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

使用Git管理WordPress項目時,應(yīng)只將主題、自定義插件和配置文件納入版本控制;設(shè)置.gitignore文件以忽略上傳目錄、緩存和敏感配置;利用webhook或CI工具實(shí)現(xiàn)自動部署并注意數(shù)據(jù)庫處理;采用兩分支策略(main/develop)進(jìn)行協(xié)作開發(fā)。這樣做可避免沖突、保障安全,并提升協(xié)作與部署效率。

創(chuàng)建Gutenberg塊的關(guān)鍵在于理解其基本結(jié)構(gòu)并正確連接前后端資源。1.準(zhǔn)備開發(fā)環(huán)境:安裝本地WordPress、Node.js和@wordpress/scripts;2.使用PHP注冊塊并用JavaScript定義塊的編輯和顯示邏輯;3.通過npm構(gòu)建JS文件以使更改生效;4.遇到問題時檢查路徑、圖標(biāo)是否正確或使用實(shí)時監(jiān)聽構(gòu)建避免重復(fù)手動編譯。按照這些步驟,可以逐步實(shí)現(xiàn)一個簡單的Gutenberg塊。

使用WordPress測試環(huán)境是為了確保新功能、插件或主題在正式上線前的安全性和兼容性,避免影響真實(shí)網(wǎng)站。搭建測試環(huán)境的步驟包括:下載安裝本地服務(wù)器軟件(如LocalWP、XAMPP),創(chuàng)建站點(diǎn)、設(shè)置數(shù)據(jù)庫和管理員賬號,安裝主題和插件進(jìn)行測試;復(fù)制正式網(wǎng)站到測試環(huán)境的方法是通過插件導(dǎo)出站點(diǎn)、導(dǎo)入測試環(huán)境并替換域名;使用時應(yīng)注意不使用真實(shí)用戶數(shù)據(jù)、定期清理無用數(shù)據(jù)、備份測試狀態(tài)、適時重置環(huán)境,并統(tǒng)一團(tuán)隊配置以減少差異問題。

在WordPress中,當(dāng)新增自定義文章類型或修改固定鏈接結(jié)構(gòu)后,需手動刷新重寫規(guī)則,此時可通過代碼調(diào)用flush_rewrite_rules()函數(shù)實(shí)現(xiàn)。1.可在主題或插件激活鉤子中添加該函數(shù)以自動刷新;2.僅在必要時執(zhí)行一次,如添加CPT、分類法或修改鏈接結(jié)構(gòu)后;3.避免頻繁調(diào)用以免影響性能;4.多站點(diǎn)環(huán)境下需視情況為每個站點(diǎn)單獨(dú)刷新;5.某些托管環(huán)境可能限制規(guī)則保存。此外,訪問“設(shè)置>固定鏈接”頁面點(diǎn)擊保存也可觸發(fā)刷新,適合非自動化場景。

tosetupredirectsinwordpressingthe.htaccessfile,locateThEfileInyourSite'sRootDirectorectoryAndDrectRectrulesabovethe#beginWordPresssection.forbasic301redirects,USETHEETHEETERECTREFTATRECTATREDERTREFTATREDERTREFTATRECTRECTATRECTRECTATREDECT301/OLD-PAGEHTTPS:

UsingsMtpForWordPresseMailSimProvesDeliverabilitialComparedComparedTothEdeDefaultPhpMail()函數(shù).1.smtpauthenticateswithyouremailserver.2.somemomehostsdisablesablephpmail()

要實(shí)現(xiàn)響應(yīng)式WordPress主題設(shè)計,首先要使用HTML5和移動優(yōu)先的Meta標(biāo)簽,在header.php中添加viewport設(shè)置以確保移動端正確顯示,并用HTML5結(jié)構(gòu)標(biāo)簽組織布局;其次,利用CSS媒體查詢實(shí)現(xiàn)不同屏幕寬度下的樣式適配,按移動優(yōu)先原則編寫樣式,常用斷點(diǎn)包括480px、768px和1024px;第三,彈性處理圖片和布局,為圖片設(shè)置max-width:100%并使用Flexbox或Grid布局替代固定寬度;最后,通過瀏覽器開發(fā)者工具和真實(shí)設(shè)備進(jìn)行充分測試,優(yōu)化加載性能,確保響應(yīng)

TOINTEGRATETHIRD-PARTYAPISINTOWORDPRESS,關(guān)注臺詞:1.SelectAutableabepianDobtainCredentialslikeapikeYsoroAuthtoKensByEnterRegisteringThemSecure.2.ChooseBeteBetB??eteBetB??eteBetB??etebetInpliCityOorcustimplicityOrcustomPliCoseTompliCoseTomploomcoseusionfunctionfunctionfunctibunitiacuciencipuity forfunigation。
