如何优化 TTFB 加载时间过长?
对于WordPress网站的整体加载速度,多数情况下,我们都只是专注于前端性能的优化来提高页面加载速度。但是,却忽略了从原始的运维网站的服务器端进行优化。这也是本文中WPPOP要和WordPress外贸建站用户深入探讨,并最终提供更好的优化和改善服务器网站加载响应时间的解决方案。
我们在进行WordPress网站优化(其实,不止WordPress,所有网站都会碰到)时,可能会遇到 TTFB(Time To First Byte)加载时间过长的问题。对于没有进行服务器端优化的WordPress 网站来说,TTFB 的载入时间往往会超过整个网站正常的下载时间,从而导致网站访客在进入网站时浪费时间等待网站加载显示。
什么是Waiting TTFB?
TTFB 是 Time to First Byte 的缩写,是指浏览器开始收到服务器响应数据的时间(后台处理时间 + 重定向时间),也就是当使用者的滑鼠点击网站的那一刻开始,到接收到一个数据资料之间所等待的时间。TTFB 是反映服务端响应速度的重要指标。
导致Waiting TTFB 时间过长的原因
对于需要读取数据库来生成的动态网页来说,服务器收到用户发送的请求时,首先要从数据库中读取该页面需要的数据,然后把这些数据传入到网站程序中,网站程序执行命令并渲染后,再返回给浏览器端用户。由于查询数据和执行命令都需要花费时间,在这个过程没有完成之前,浏览器就会一直处在等待接收服务器响应的状态。
作个更易懂的举例:比如你的主机服务器位置是在欧美,在国内用户访问你的网站页面时,国内访客每次操作都要从国内发送请求到位于欧美洲的主机服务器,服务器接收并处理完请求后,再传送数据并展示给位于国内访客,这一个过程就会明显增加 Waiting TTFB 时间,导致 TTFB 时间过长。
Waiting TTFB 统计的花费时间涉及3步交互过程,也就是影响 TTFB 的三大因素:
- 请求服务器:访问者传送请求到服务器的时间
- 服务器处理:服务器接收请求抓取资料的时间
- 对访客回应:服务器回传资料给访问者的时间
1. 请求服务器
当有人访问您的网站时,首先发生的是将HTTP请求从客户端(浏览器)发送到服务器。在此过程中,有多种因素会导致延迟。缓慢的DNS查找时间可能会导致请求时间增加。如果服务器位于地理位置较远的地方,这可能会导致数据必须经过的距离增加延迟。另外,如果您有复杂的防火墙规则,则可能会增加路由时间。另外,还包括访客使用的网络联网速度。
2. 服务器处理
服务器接收到用户发送来的请求后,服务器现在必须对其进行处理并生成响应。这可能会引入许多不同的延迟,例如缓慢的数据库调用,太多的第三方脚本,未缓存您的第一个响应,优化的代码或WordPress主题质量不佳以及服务器资源(例如磁盘I / O或内存)效率低下等。
3. 对访客回应
服务器处理完请求后,它必须将其发送回客户端(浏览器)。这受服务器和客户端的网络速度的影响。
如何检测网站的 TTFB 时间
我们可以使用多种不同的方法来测试网站的 TTFB 时间。但是,不同的方法,在不同时间可能都会产生略有不同的结果,因此,简单地使用一种工具并坚持使用它作为基准非常重要。我们这里主要介绍使用Google Chrome浏览器中的 开发者工具来检测TTFB时间。
打开要测试的网站,依次点击 鼠标右键 > 检查 后,切换到里面的 Network 标签,在这里可以看到每一个资源的载入时间,点选到你的网站首页,即可看到网站的Waiting (TTFB)的载入时间。如下图所示:
当你的TTFB 越少时,用户访问你网站的速度就会越快。
此外,还可以实现以下工具来检查网站的 TTFB 加载时间:
- Geekflare提供的TTFB工具
- WebPageTest测量TTFB
- GTmetrix测量TTFB
网站的 TTFB 时间为多少时更好?
由于每个主机与网路环境不同,因此每个主机的TTFB 也会根据主机位置与使用者的地区不同而有所变动。
如果你想要了解目前的主机服务器 TTFB 的最佳化时间,可以在根目录底下建立一个静态的HTML 页面,接着查看这个页面的TTFB 时间,假设时间为60 ms,那么这个TTFB 的时间就是你优化WordPress网站的目标数值。
通常,任何小于100毫秒的情况都是不错的TTFB。Google PageSpeed Insights建议服务器响应时间不超过200毫秒。如果您处于300-500毫秒范围内,这是相当标准的。如果您的网站服务器TTFB时间超过600毫秒,则可能是服务器上的配置错误,或者可能是时候升级到更好的服务器了。
如何优化减少WordPress网站的TTFB时间?
综上所述,我们知道了影响网站TTFB时间的原因,那么,如果去优化并减少网站TTFB时间呢?缩短服务器响应时间,把 PHP 和 MySQL 的执行时间最小化,使用缓存插件把页面静态化缓存等,具体我们可以在以下几个方面去进行优化。
优化TTFB 方法 1:选择好的虚拟主机(服务器)
减少TTFB的最简单直接的方法就是使用更好的WordPress专用主机。比如:SiteGround专用WordPress主机,SiteGround是美国知名的主机服务商,也是WordPress官网推荐合作的服务商。
不同的主机环境所产生的TTFB 时间也会有所不同,因此你会发现有的主机商所提供的主机性能比较好,那么在上面托管的网站也会比较快,就是因为每个主机针对他们的网路环境与主机设备的优化差异有关。选择适合的主机,能够直接帮助你改善网站的TTFB 时间。
优化TTFB 方法2:网站缓存
减少TTFB的第2种方法(可能也是最简单的方法之一)是利用WordPress网站上的缓存。许多人只认为缓存可以帮助减少加载时间,但实际上,它还可以减少TTFB,因为它可以减少服务器处理时间。我们在不运行缓存的情况下再次运行了一些测试。每个测试运行5次,取平均值。
推荐一款WordPress页面缓存插件 – Cachify,Cachify 是一款专门为 WordPress 网站开发的智能简单的缓存插件,以静态页面的形式把内容存储到数据库、硬盘、或者 Memcached 中、用户再次访问这个页面的时候,服务器直接从内存里面读取缓存过的页面,发送给用户,给用户的感觉就是瞬间打开。
另外一款WordPress静态化缓存插件 – WP Super Cache 是 WordPress 官方开发人员 Donncha 开发,是当前最高效也是最灵活的 WordPress 静态缓存插件。它把整个网页直接生成 HTML 文件,这样 Web 服务器就不用解析 PHP 脚本,通过使用这个插件,能使得你的 WordPress 博客将显著的提速。 WP Super Cache 则直接产生 HTML 文件,所以服务器不用解析甚至一行 PHP 代码,所以缓存之后的速度就和访问你服务器上的一张图片一样快。
优化TTFB 方法3:使用CDN加速
减少TTFB的另一种简便方法是利用内容分发网络(CDN)。如果您有一个网站服务于该国不同地区或全球的访客,则可能会大大降低您的TTFB。正如我们在上面看到的,位置非常重要。我们进行了一些测试,以显示与KeyCDN作为CDN提供程序的区别。每个测试运行5次,取平均值。
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
优化TTFB 方法4:选择好的DNS 服务
许多人可能会忽略DNS 的重要性。在TTFB 过长的原因当中,其中一项就是解析网域名称与主机IP 位置的这个过程。
因此,若你所使用的DNS 主机效能过于缓慢,那么就会导致使用者造访网站时,网域名称转换IP 地址的这一段时间拉长,进而影响整体TTFB 的时间。
结语
通过以上文章内容关于Waiting TTFB 的介绍,以及如何优化改善网站的TTFB时间,您应该掌握了如何优化改善Waiting (TTFB) 页面加载时间过长的方法了。这些都是相当合理且对应普通用户来说易于实施的,将为您的WordPress外贸网站带来最快的性能提升。
另外,如果您是自己的独立服务器,还可以通过优化或修复许多其他方法来减少TTFB,例如数据库缓存,磁盘IO,交换使用率,RAM,PHP设置,MySQL设置,网络设置,TLS开销等。
当我们想要优化WordPress 网站,提升WordPress 网站的速度时,不仅仅要优化网站架构本身,同时也要考量到主机服务器性能与网路环境的问题,这样才能让使用者获得最好的网站浏览体验。