提到 WordPress 網(wǎng)站優(yōu)化,一般我們可以通過提高服務(wù)器硬件配置、圖片優(yōu)化、頁(yè)面優(yōu)化、緩存快取等方面來(lái)進(jìn)行改善。對(duì)于沒有進(jìn)行優(yōu)化的 WordPress 網(wǎng)站來(lái)說(shuō),TTFB 的載入時(shí)間往往超過了整個(gè)網(wǎng)站正常的下載時(shí)間,因此會(huì)導(dǎo)致出現(xiàn)用戶進(jìn)入網(wǎng)站等待時(shí)間加長(zhǎng)的情況。那么什么是網(wǎng)站TTFB??jī)?yōu)化TTFB有什么方法?
一、什么是網(wǎng)站TTFB
TTFB 是 Time To First Byte 的縮寫,意思是 Web 瀏覽器在訪問網(wǎng)站后,接收到服務(wù)器回應(yīng)數(shù)據(jù)的時(shí)間,也就是當(dāng)用戶的鼠標(biāo)點(diǎn)擊網(wǎng)站的那一刻開始,到接收到第一個(gè)數(shù)據(jù)資料之間所等待的時(shí)間。換一個(gè)角度說(shuō),是從訪客打開網(wǎng)站頁(yè)面到網(wǎng)頁(yè)內(nèi)容開始呈現(xiàn)之間的等待時(shí)間,稱之為 TTFB。
二、TTFB 時(shí)間多長(zhǎng)算長(zhǎng)
因?yàn)槊總€(gè)服務(wù)器的硬件和網(wǎng)絡(luò)環(huán)境都不盡相同,每個(gè)服務(wù)器的 TTFB 時(shí)間也不相同。如果想知道你的服務(wù)器優(yōu)化可以到什么程度,大家可以上傳一些靜態(tài)的 HTML 頁(yè)面到服務(wù)器,然后打開這些靜態(tài)頁(yè)面,看一些這些頁(yè)面的 TTFB 時(shí)間,大多數(shù)服務(wù)器的 TTFB 時(shí)間都在 50 ms 以下,這個(gè)時(shí)間就是我們優(yōu)化時(shí)候可以追求的時(shí)間。以下是服務(wù)器的靜態(tài)和動(dòng)態(tài)網(wǎng)頁(yè) TTFB 等待時(shí)間示例。
靜態(tài)網(wǎng)頁(yè) Waiting (TTFB)時(shí)間
動(dòng)態(tài)網(wǎng)頁(yè) Waiting (TTFB)時(shí)間
根據(jù)測(cè)試,TTFB 時(shí)間如果超過了 500 ms,用戶在打開網(wǎng)頁(yè)的時(shí)候就會(huì)感覺到明顯的等待,那么我們可以把 500 ms 以上認(rèn)為是 TTFB 時(shí)間過長(zhǎng)。
三、瀏覽器查看TTFB速度
我們可以通過Chrome瀏覽器查看TTFB速度,先打開網(wǎng)站,然后按F12,在右邊彈出的開發(fā)者工具介面中選擇“Network”,再F5刷新頁(yè)面重新加載一次,接著鼠標(biāo)移到“Time”第一條,在彈出的界面中“Waiting for server response”即顯示服務(wù)器響應(yīng)時(shí)間,如下圖:
四、TTFB時(shí)間的組成
1、瀏覽器發(fā)送HTTP請(qǐng)求所花費(fèi)的時(shí)間
TTFB時(shí)間從HTTP請(qǐng)求開始。服務(wù)器接收到請(qǐng)求所需的時(shí)間取決于DNS查找所需的時(shí)間,用戶網(wǎng)絡(luò)的速度,用戶與服務(wù)器的距離等。
2、服務(wù)器處理請(qǐng)求所花費(fèi)的時(shí)間
服務(wù)器收到請(qǐng)求后,必須對(duì)其進(jìn)行處理并生成響應(yīng)。這涉及后端程序的啟動(dòng)過程,數(shù)據(jù)庫(kù)調(diào)用,運(yùn)行腳本以及與網(wǎng)絡(luò)上的其他系統(tǒng)進(jìn)行通信等。
3、服務(wù)器將響應(yīng)的第一個(gè)字節(jié)發(fā)送回瀏覽器所花費(fèi)的時(shí)間
最后,服務(wù)器需要將響應(yīng)發(fā)送給用戶。此步驟消耗的時(shí)間取決于服務(wù)器和用戶的網(wǎng)絡(luò)情況,如果用戶的Wi-Fi連接速度較慢,則會(huì)影響TTFB。通過網(wǎng)絡(luò)傳輸請(qǐng)求和響應(yīng)時(shí)間占TTFB的近40%。
請(qǐng)求發(fā)送到服務(wù)器,服務(wù)器處理請(qǐng)求并將其發(fā)送回用戶瀏覽器所花費(fèi)的時(shí)間越長(zhǎng),用戶看到頁(yè)面所花費(fèi)的時(shí)間就越長(zhǎng),也就是網(wǎng)站速度顯得慢。
五、為什么TTFB很重要
TTFB是影響網(wǎng)站速度的一個(gè)因素,所以它也是我們做網(wǎng)站速度優(yōu)化時(shí)的一個(gè)重要指標(biāo)。注意,不要將TTFB與頁(yè)面速度搞混淆了,TTFB只是一個(gè)指標(biāo),只代表網(wǎng)站服務(wù)器的響應(yīng)速度。Moz的研究發(fā)現(xiàn),更快的TTFB與更高的搜索排名有著明顯的相關(guān)性。雖然無(wú)法完全證明兩者之間的聯(lián)系,但Moz認(rèn)為兩者之間存在足夠的相關(guān)性,至少是值得討論的。
個(gè)人認(rèn)為,TTFB 改善后可以加快網(wǎng)站速度。更少的TTFB時(shí)間意味著:用戶等待網(wǎng)站開始加載的時(shí)間更少,可以改善用戶體驗(yàn);加載速度越快,跳出的可能性更低,意味著更高的參與度和保留度。
六、好的TTFB應(yīng)該是多長(zhǎng)時(shí)間
Google建議移動(dòng)網(wǎng)站使用TTFB的時(shí)間應(yīng)低于1.3秒。當(dāng)瀏覽器等待服務(wù)器相應(yīng)時(shí)間超過600毫秒時(shí),Lighthouse審核將失敗。rackAID進(jìn)一步的研究指出,建議純靜態(tài)網(wǎng)站的 TTFB 應(yīng)該在100ms以下,動(dòng)態(tài)網(wǎng)站(例如WordPress網(wǎng)站)TTFB應(yīng)該在500ms以內(nèi)。如果你的網(wǎng)站TTFB超過600ms,那么就需要關(guān)注一下服務(wù)器是否存在性能瓶頸,以及及時(shí)進(jìn)行WordPress性能優(yōu)化。
七、TTFB 過長(zhǎng)的原因
我們知道,對(duì)于動(dòng)態(tài)網(wǎng)頁(yè)來(lái)說(shuō),服務(wù)器收到用戶打開一個(gè)頁(yè)面的請(qǐng)求時(shí),首先要從數(shù)據(jù)庫(kù)中讀取該頁(yè)面需要的數(shù)據(jù),然后把這些數(shù)據(jù)傳入到模版中,模版渲染后,再返回給用戶。由于查詢數(shù)據(jù)和渲染模版需要需要一定的時(shí)間,在這個(gè)過程沒有完成之前,瀏覽器就一致處于等待接收服務(wù)器響應(yīng)的狀態(tài)。有些服務(wù)的性能比較低,或者優(yōu)化沒做好,這個(gè)時(shí)間就會(huì)比較長(zhǎng)。
當(dāng)然,如果服務(wù)器到用戶之間的網(wǎng)絡(luò)不好,(比如,服務(wù)器在歐洲,用戶在中國(guó),用戶打開網(wǎng)頁(yè)的時(shí)候,請(qǐng)求需要跨越千山萬(wàn)水才能達(dá)到服務(wù)器),服務(wù)器接收到用戶請(qǐng)求的時(shí)間過長(zhǎng),也是導(dǎo)致 TTFB 時(shí)間過長(zhǎng)的原因。
有時(shí)候,頁(yè)面在用戶的瀏覽器中保存了過多的 Cookie,每次請(qǐng)求,這些 Cookie 都要發(fā)送到服務(wù)器,服務(wù)器都要處理這些 Cookie,這也是導(dǎo)致 TTFB 時(shí)間過長(zhǎng)的原因之一。
八、優(yōu)化TTFB的方法
優(yōu)化網(wǎng)站 TTFB 有下面幾個(gè)方面可以做,讓我們看一下優(yōu)化 WordPress 網(wǎng)站 TTFB 慢的方法。
1、使用更快速的 WordPress 主機(jī)
使用更快速的 WordPress 主機(jī)或者更高配置的VPS主機(jī),毫無(wú)疑問可以大大減少TTFB。WordPress 專用主機(jī)是專門為 WordPress 程序優(yōu)化后的主機(jī),因此可以不必?fù)?dān)心動(dòng)態(tài)內(nèi)容,這些都會(huì)被優(yōu)化。
WordPress 主機(jī)的數(shù)據(jù)中心位置也很重要。如果你的大多數(shù)用戶位于歐洲,那么選擇歐洲的數(shù)據(jù)中心比美國(guó)的數(shù)據(jù)中心更有意義,更短的網(wǎng)絡(luò)請(qǐng)求距離,必然可以減少 TTFB。另外,雖然我們無(wú)法控制網(wǎng)站的流量,但可以控制網(wǎng)站的擴(kuò)展性。如果網(wǎng)站未來(lái)的流量會(huì)很高的話,那么要確保你的主機(jī)在未來(lái)能能夠迅速的擴(kuò)展以能扛住巨大的流量,從而降低 TTFB waiting 時(shí)間。
2、WordPress、插件、主題等及時(shí)更新到最新版本
WordPress 核心團(tuán)隊(duì)以及插件和主題作者通常會(huì)在其新版本中添加性能優(yōu)化。有時(shí),這意味著他們已經(jīng)優(yōu)化了其代碼運(yùn)行到數(shù)據(jù)庫(kù)的查詢,或者進(jìn)行了影響PHP代碼效率的更新。最佳做法是僅保留所需的插件和主題,然后刪除那些用不到的,新版本發(fā)布后一周內(nèi)更新到最新版本。(更新之前記得備份!)
3、減少查詢
網(wǎng)站從數(shù)據(jù)庫(kù)查詢數(shù)據(jù)的數(shù)量可能會(huì)導(dǎo)致瀏覽器 Waiting 時(shí)間長(zhǎng) 。為了定位數(shù)據(jù)庫(kù)查詢瓶頸,可以嘗試安裝 Query Monitor 插件,或考慮使用功能更強(qiáng)大的工具(例如New Relic)。后者將幫助你找到最耗時(shí)或查詢時(shí)間最慢的數(shù)據(jù)庫(kù)查詢,以便你揪出究竟是哪些插件,主題或設(shè)置正在影響網(wǎng)站的速度。
4、使用緩存
優(yōu)化 TTFB 的最簡(jiǎn)單方法之一就是在 WordPress 網(wǎng)站上安裝緩存插件,其作用就是將動(dòng)態(tài)的頁(yè)面緩存為靜態(tài)頁(yè)面,這樣每次訪問的時(shí)候,就不需要再去請(qǐng)求數(shù)據(jù)庫(kù)一類的操作了,可以大大降低服務(wù)端程序的相應(yīng)速度。
WordPress 上的免費(fèi)緩存插件有:W3 Total Cache、SuperCache、WP Fastest Cache、LiteSpeed Cache,付費(fèi)的 WP-Rocket,均可以減少服務(wù)器處理請(qǐng)求時(shí)間,從而有助于降低 TTFB。WP-rocket 會(huì)給每個(gè)動(dòng)態(tài)頁(yè)面都生成靜態(tài)的 Html 文件緩存到服務(wù)器中,讓網(wǎng)站像靜態(tài)站點(diǎn)一樣,所以打開速度很快!此外,它還提供代碼壓縮,js/css文件合并,圖片懶加載等實(shí)用功能。
此外,通常較好的 WodPress 主機(jī)商都會(huì)有緩存功能,例如:A2Hosting 主機(jī)提供自行研發(fā)的 Turbo 高速緩存(最高可提速 20 倍),SiteGround 主機(jī)提供 SuperCacher 緩存功能。
5、使用 CDN
使用 CDN 可以把網(wǎng)站的靜態(tài)內(nèi)容(圖像、CSS、JS文件等)分發(fā)到全球各地的 CDN 服務(wù)器上,可以讓全球各地的用戶訪問網(wǎng)站時(shí)可以就近獲得靜態(tài)內(nèi)容。通過 CDN 可以減少站點(diǎn)服務(wù)器和訪問者之間的網(wǎng)絡(luò)延遲。
6、使用好的 DNS 服務(wù)
許多人可能會(huì)忽略DNS的重要性。在 WordPress TTFB 慢的原因當(dāng)中,其中一項(xiàng)就是DNS服務(wù)器解析網(wǎng)站域名與主機(jī) IP 位置的這個(gè)過程。因此,如果你所使用的 DNS 性能過于緩慢,那么將會(huì)導(dǎo)致用戶訪問網(wǎng)站時(shí),解析域名獲得 IP 地址的這個(gè)過程拉長(zhǎng),影響整體 TTFB 的時(shí)間。
兩種最劃算的使用最好的DNS服務(wù):
1) 使用 CloudFlare 的 DNS 服務(wù),既免費(fèi)、好用且安全,同時(shí)他又能提供基本的 CDN 服務(wù),這對(duì)于 TTFB 來(lái)說(shuō)又更加有利。
2) 在 Name.com 上注冊(cè)域名,直接使用 name.com 的 DNS 解析服務(wù)。Name.com 的 DNS 可以說(shuō)是最頂尖的那部分 DNS 服務(wù)了,只要你在 Name.com 注冊(cè)域名就能使用。在 Name.com 注冊(cè)域名的時(shí)候,使用 PRIVACYPLEASE 這個(gè)優(yōu)惠碼,可以免費(fèi)獲得隱私保護(hù)。
想要查詢你的DNS速度,可以使用以下兩個(gè)工具:
www.ultratools.com/tools/dnsHostingSpeed
www.solvedns.com/dnsspeedtest/
另外,還可以通過在 WordPress 網(wǎng)站上設(shè)置 DNS Prefetching。使用 DNS Prefetching,瀏覽器會(huì)在用戶瀏覽網(wǎng)頁(yè)時(shí)在后臺(tái)預(yù)先執(zhí)行 DNS 查找。
以上是今天對(duì)什么是網(wǎng)站TTFB及TTFB如何優(yōu)化的方法介紹。當(dāng)我們想要優(yōu)化 WordPress 網(wǎng)站、提升打開的速度時(shí),不僅僅要優(yōu)化網(wǎng)站架構(gòu)本身,同時(shí)也要考量到主機(jī)性能與網(wǎng)路環(huán)境的問題,方方面面做到位才能讓用戶獲得最好的網(wǎng)站瀏覽體驗(yàn)。