本文将来探讨什么是TTFB?导致TTFB缓慢的原因有哪些?Google的建议以及如何降低TTFB时间以使你的网站加载速度更快。
什么是TTFB?
TTFB 是 Time To First Byte的缩写,是指从访客打开网站页面到网页内容开始呈现之间的等待时间。
TTFB时间由三个部分组成:
1. 浏览器发送HTTP请求所花费的时间
TTFB时间从HTTP请求开始。服务器接收到请求所需的时间取决于DNS查找所需的时间,用户网络的速度,用户与服务器的距离等。
2. 服务器处理请求所花费的时间
服务器收到请求后,必须对其进行处理并生成响应。这涉及后端程序的启动过程,数据库调用,运行脚本以及与网络上的其他系统进行通信等。
3. 服务器将响应的第一个字节发送回浏览器所花费的时间
最后,服务器需要将响应发送给用户。此步骤消耗的时间取决于服务器和用户的网络情况。如果用户的Wi-Fi连接速度较慢,则会影响TTFB。通过网络传输请求和响应时间占TTFB的近40%。
请求发送到服务器,服务器处理请求并将其发送回用户浏览器所花费的时间越长,用户看到页面所花费的时间就越长,也就是网站速度显得慢。
为什么TTFB很重要?
TTFB是影响网站速度的一个因素,所以它也是我们做网站速度优化时的一个重要指标。注意,不要将TTFB与页面速度搞混淆了,TTFB只是一个指标,只代表网站服务器的响应速度。
关于TTFB重不重要,Google的网络性能工程师Ilya Grigorik表示TTFB“绝对重要”,而Cloudflare则表示不需要担心TTFB。
Moz的研究发现,更快的TTFB与更高的搜索排名有着明显的相关性。虽然无法完全证明两者之间的联系,但Moz认为两者之间存在足够的相关性,至少是值得讨论的。
个人认为,不论哪种观点正确,至少 TTFB 改善后它是可以加快网站速度的。那么,为什么不优化它呢?
更少的TTFB时间意味着:
用户等待网站开始加载的时间更少,可以改善用户体验。
加载速度越快,跳出的可能性更低,意味着更高的参与度和保留度。
好的TTFB应该是多长时间?
Google建议移动网站使用TTFB的时间应低于1.3秒。当浏览器等待服务器相应时间超过600毫秒时,Lighthouse审核将失败。
rackAID进一步的研究指出,建议纯静态网站的 TTFB 应该在100ms以下,动态网站(例如WordPress网站)TTFB应该在500ms以内。
一个WordPress的动态网站的TTFB则包括了WordPress程序发生的事情。例如,发出请求时,PHP脚本必须调用许多包含的文件,建立与数据库的连接,解析结果,然后发送回最终的HTML页面。推荐阅读:《如何安全地测试WordPress网站上的变化》
如果你的网站TTFB超过600ms,那么就需要关注一下服务器是否存在性能瓶颈,以及及时进行WordPress性能优化,优化方式下面会说到。
TTFB慢的原因是什么?
网站 TTFB 慢,可能是受以下几个因素影响:
- 网络延迟
- 流量高
- 服务器配置和性能
- 动态内容
- DNS响应时间
解决流量高或网络问题的方法不多。 但是,可以通过以下方法优化服务器配置,动态内容和DNS响应时间。
如何测量 TTFB 时长?
要弄清WordPress网站的TTFB时间为何如此之高,第一步就是对其进行测量。可以通过下面三个方法进行测量:
1.GTmetrix
在 Gtmetrix 的结果中打开 waterfall 标签页。 将鼠标悬停在第一个结果上时,就能看到加载指标,包括等待时间(又称TTFB)。
2.WebPageTest
WebPageTest 的测试结果将显示TTFB的字母等级,并以秒为单位显示TTFB。
3.Pingdom
Pingdom 的测试结果滚动到“文件请求”部分,可以看到网站的等待时间。
如何优化 TTFB?
优化网站 TTFB 有下面几个方面可以做,让我们看一下优化 WordPress 网站 TTFB 慢的方法。
1. 使用更快速的 WordPress 主机
使用更快速的 WordPress 主机或者更高配置的VPS主机,毫无疑问是可以大大减少TTFB的。WordPress 专用主机是专门为 WordPress 程序优化后的主机,因此可以不必担心动态内容,这些都是会被优化的。
WordPress 主机的数据中心位置也很重要。如果您的大多数用户位于欧洲,那么选择欧洲的数据中心比美国的数据中心更有意义,更短的网络请求距离,必然可以减少 TTFB。
另外,虽然我们无法控制网站的流量,但可以控制网站的扩展性。如果网站未来的流量会很高的话,那么要确保你的主机在未来能能够迅速的扩展以能扛住巨大的流量,从而降低 TTFB waiting 时间。
2. WordPress、插件、主题等及时更新到最新版本
WordPress 核心团队以及插件和主题作者通常会在其新版本中添加性能优化。有时,这意味着他们已经优化了其代码运行到数据库的查询,或者进行了影响PHP代码效率的更新。推荐阅读:《WordPress插件如何创建呢》
最佳做法是仅保留所需的插件和主题,然后删除那些用不到的,新版本发布后一周内更新到最新版本。(更新之前记得备份!)
3. 减少查询
网站从数据库查询数据的数量可能会导致浏览器 Waiting 时间长 。为了定位数据库查询瓶颈,可以尝试安装 Query Monitor 插件,或考虑使用功能更强大的工具(例如New Relic)。
后者将帮助你找到最耗时或查询时间最慢的数据库查询,以便你揪出究竟是哪些插件,主题或设置正在影响网站的速度。
4. 使用缓存
优化 TTFB 的最简单方法之一就是在 WordPress 网站上安装缓存插件,缓存插件的作用就是将动态的页面缓存为静态页面,这样每次访问的时候,就不需要再去请求数据库一类的操作了,可以大大降低服务端程序的相应速度。
WordPress 上的免费缓存插件有:W3 Total Cache、SuperCache、WP Fastest Cache、LiteSpeed Cache,付费的 WP-Rocket,均可以减少服务器处理请求时间,从而有助于降低 TTFB。
本站使用的是 WP-Rocket 付费插件,wp-rocket 它会给每个动态页面都生成静态的 Html 文件缓存到服务器中,让网站像静态站点一样,所以打开速度才会这么快!此外,它还提供代码压缩,js/css文件合并,图片懒加载等等超实用功能。如果手头宽裕的话,强烈推荐!!!它会是你用的最后一个缓存插件。
5. 使用 CDN
使用 CDN 可以把网站的静态内容(图像、CSS、JS文件等)分发到全球各地的 CDN 服务器上,可以让全球各地的用户访问网站时可以就近获得静态内容。
通过 CDN 可以减少站点服务器和访问者之间的网络延迟。推荐阅读:《CDN加速有什么作用? BlueHost CDN加速功能介绍》
6. 使用好的 DNS 服务
许多人可能会忽略DNS的重要性。
在 WordPress TTFB 慢的原因当中,其中一项就是DNS服务器解析网站域名与虚拟主机 IP 位置的这个过程。
因此,如果你所使用的 DNS 性能过于缓慢,那么将会导致用户访问网站时,解析域名获得 IP 地址的这个过程拉长,影响整体 TTFB 的时间。推荐相关阅读:《什么是 DNS 劫持/重定向攻击》
最后
本文中介绍了 6 个降低 TTFB 的方法都相对易于实现,并且优化 TTFB 会为你带来不错的收益。虽然对于 Network TTFB 时间长短是否是有意义尚无定论,但仍然值得去优化TTFB。因为我们的最终目标就是让网站更快地向访问者显示内容。