如何减少 TTFB 以改善 WordPress 页面加载时间

已发表: 2017-01-26

当谈到您的 WordPress 网站的整体速度时,很多时候我们专注于前端性能和优化以提高页面加载速度。 但是,有时最好从您的网站最初开始加载的服务器端查看它。 今天我们将深入探讨TTFB(第一个字节的时间)如何影响您,并讨论一些如何减少它的简单方法。 TTFB 通常是一个被忽视的性能因素,但在测试站点速度时应该考虑到它。

  • 什么是 TTFB?
  • TTFB重要吗?
  • 如何测量您的 TTFB
  • 减少 WordPress 网站上 TTFB 的 4 种方法

什么是 TTFB?

TTFB 代表第一个字节的时间。 简而言之,这是浏览器在从服务器接收到第一个字节数据之前必须等待多长时间的度量。 获取该数据所需的时间越长,显示您的页面所需的时间就越长。 一个常见的误解是,这是在 DNS 查找时间之后计算的,然而,网络中 TTFB 的原始计算总是包括网络延迟。 这涉及一个 3 步过程,延迟和延迟可能发生在两者之间的任何地方,加起来就是您的总 TTFB。

等待ttfb
等待TTFB

1. 向服务器请求

当有人访问您的网站时,首先会发生 HTTP 请求从客户端(浏览器)发送到服务器。 在此步骤中,有多种因素会导致延迟。 缓慢的DNS 查找时间可能会增加请求的时间。 如果服务器位于地理上很远的地方,这可能会在数据必须传输的距离上引入延迟。 此外,如果您有复杂的防火墙规则,这可能会增加路由时间。 并且不要忘记客户的互联网速度。

2. 服务器处理

发送请求后,服务器现在必须处理它并生成响应。 这可能会引入许多不同的延迟,例如数据库调用缓慢、第三方脚本过多、未缓存您的第一个响应、代码或 WordPress 主题优化不佳以及磁盘 I/O 或内存等服务器资源效率低下

3. 对客户的回应

服务器处理完请求后,必须将其发送回客户端(或者更确切地说,发送回第一个字节)。 这在很大程度上受到服务器和客户端的网络速度的影响。 如果客户端的 Wi-Fi 热点网络速度较慢,它将反映在 TTFB 中。

TTFB重要吗?

重要的是要了解 TTFB(第一个字节的时间)与网站速度不同。 这实际上是对响应能力的衡量。 网络上有很多关于 TTFB 是否重要的​​讨论。 有人说它毫无意义(Cloudflare、LittleBizzy),也有人说它很重要(Ilya Grigorik,Google 的 Web 性能工程师)。 双方都提出了一些关于为什么或为什么它不重要的有效观点,以及关于它是如何实际计算的一些问题。

Moz 甚至对搜索排名和第一个字节的时间之间的相关性进行了深入研究。 但是,很难知道这是否是原因,或者 TTFB 较低的网站总体上是否也只是速度更快,而这反过来又可能受到 Google 的页面速度排名因素的影响。

TTFB重要吗? 它有助于您的整体速度,那么您怎么看? 点击推文

但是,与其花时间反复讨论它是否重要,我们宁愿专注于您可以做的优化来改进这个指标。 您所做的一切都可以提高 WordPress 网站的整体速度,而这反过来又会影响您的 TTFB。 在我们的测试中,具有更大 TTFB 的站点只是加载并感觉更慢。

一般来说,任何低于 100 毫秒的东西都很好 TTFB 。 Google PageSpeed Insights 建议服务器响应时间低于 200 毫秒。 如果您在 300-500 毫秒范围内,这是非常标准的。 如果您的时间超过 600 毫秒,您的服务器上可能配置错误,或者是时候升级到更好的 Web 堆栈了。 或者按照我们下面关于如何减少 TTFB 的建议进行操作。 请记住,SSL/TLS 协商也可能是一个因素。

如何测量您的 TTFB

您可以通过多种不同的方式测试您的 TTFB。 我们将在下面探讨几个。 但请记住,每种工具都会给出略有不同的结果,因此简单地使用一个工具并坚持使用它作为基线很重要。

使用 Google Chrome DevTools 测量 TTFB

您可以通过启动 DevTools 在 Google Chrome 中测量 TTFB。 但请记住,如果您在计算机上测试 TTFB 会受到网络延迟和 Internet 连接的影响。 因此,使用从数据中心进行测试的第 3 方工具(如下所示)可能更有效。

  • 从 Chrome 菜单中选择更多工具 > 开发者工具。
  • 右键单击页面元素并选择检查
  • 使用键盘快捷键Ctrl + Shift + I (Windows) 或Cmd + Opt + I (Mac)

您可以启动网络窗口并查看站点的性能。

谷歌浏览器开发工具 ttfb
谷歌浏览器开发工具 TTFB

使用 Geekflare 的工具测量 TTFB

Geekflare 拥有一系列很棒的免费工具,可用于测试和排除网站上的问题。 Geekflare 的 TTFB 工具简单、快速,可让您从全球三个位置查看第一个字节的时间有多快(低)。

Geekflare TTFB 测试工具
Geekflare TTFB 测试工具

使用 WebPageTest 测量 TTFB

您还可以使用 WebPageTest 测量您的 TTFB。 根据他们的词汇表,目标时间是 DNS、socket 和 SSL 协商所需的时间 + 100ms。 超出目标每 100ms 将扣除一个字母等级。 正如您在下面的测试中看到的那样,该站​​点的测量时间为 0.256 秒或 256 毫秒 TTFB。

网页测试ttfb
网页测试首字节时间

用 Pingdom 测量 TTFB

Chrome 和 WebPageTest 将其称为 TTFB。 但是,如果您使用的是 Pingdom,它实际上被称为“等待”时间。 请务必查看我们关于如何使用 Pingdom 的深入指南。

等待时间
Pingdom 工具中的等待时间

用 GTmetrix 测量 TTFB

在 GTmetrix 中,就像 Pingdom 一样,TTFB 被称为等待时间。 请务必查看我们关于如何使用 GTmetrix 的深入指南。

在 GTmetrix 中测量 TTFB
在 GTmetrix 中测量 TTFB

使用 KeyCDN 中的工具测量 TTFB

KeyCDN 有一个很棒的 Web 性能测试工具,您可以在其中同时从 14 个不同的位置测量您的 TTFB。 正如您在下面的测试中看到的那样,TTFB 在美国较低,而在海外则高得多。 这是因为我们的服务器实际上位于美国。 这在这里证明了延迟和距离对 TTFB 有影响。

keycdn ttfb 测试
KeyCDN TTFB 测试

还有一些其他各种测量 TTFB 的工具,例如 Sucuri Performance Tool 和 ByteCheck。 你知道吗? 甚至 Google Analytics 也有一个部分可以查看您的平均响应时间。 只需单击“行为 > 站点速度 > 概述”即可。

谷歌分析 ttfb
TTFB 的 Google Analytics(分析)报告

减少 WordPress 网站上 TTFB 的 4 种方法

现在让我们深入探讨如何减少 WordPress 网站上的 TTFB。

1. 使用快速的 WordPress 主机

减少 TTFB 的第一种方法是确保您使用的是快速的 WordPress 主机。 我们比较了第 3 方共享主机的 TTFB(位于亚利桑那州凤凰城)和 Kinsta 的 TTFB(位于爱荷华州康瑟尔布拉夫斯)。 我们使用完全相同的设置并运行默认的 27 主题。 请记住,Kinsta 现在拥有所有 29 个 Google Cloud Platform 位置,因此战略性地将您的 WordPress 站点放置在更靠近访问者的位置非常重要。

切换到更快的主机可以将您网站的 TTFB 降低多达 200%。 免费试用 Kinsta。

Kinsta 还在所有托管计划中包含 Google Cloud Platform 的高级网络。 许多其他托管服务提供商使用 Google Cloud 的标准层网络,这会导致速度较慢。

共享主机 TTFB

在所有地区,平均 TTFB 为 520 ms 。 在美国和加拿大,平均 TTFB 为 240 毫秒

共享主机 ttfb
共享主机 TTFB

金斯塔 TTFB

在所有地区,平均 TTFB 为 412 毫秒。 在美国和加拿大,平均 TTFB 为 164 ms 。 如果您使用 Kinsta 托管,您还可以选择在欧洲或亚洲托管您的 WordPress 网站。 请参阅 Google Cloud 数据中心位置列表。

托管 wordpress 主机 ttfb
托管 WordPress 托管 TTFB

因此,仅通过使用更快的主机,我们就看到全球TTFB 下降了 20% 。 美国和加拿大的 TTFB 下降了 32% 。 拥有一个经过深思熟虑的架构的优秀 WordPress 主机对于降低 TTFB 至关重要。 这也为仔细选择位于客户所在地区的地点提供了一个很好的案例。 如果您的大多数客户都在美国,请不要在欧洲托管您的服务器(尽管 CDN 可以帮助消除其中的一些问题)。

2. 实施 CDN

另一种减少 TTFB 的简单方法是利用内容交付网络 (CDN)。 如果您的网站为该国不同地区或全球的访问者提供服务,这可能会大大降低您的 TTFB。 正如我们在上面看到的,位置非常重要。 我们运行了一个小测试来展示 KeyCDN 作为我们的 CDN 提供商的区别。 每个测试运行 5 次并取平均值。

TTFB 无 CDN

我们首先在禁用 CDN 的情况下运行测试,您可以看到我们的总加载时间为 1.45 秒,资产的平均 TTFB 约为 136 毫秒。

ttfb 在 cdn 之前
添加 CDN 之前的 TTFB

TTFB 与 CDN

然后我们启用我们的 CDN 并再次运行测试。 如您所见,我们的总加载时间下降到 788 毫秒,我们的平均 TTFB 现在是 37 毫秒! CDN 可以带来多大的改变。 另一个需要注意的重要事项是,我们选择了斯德哥尔摩地点来执行此测试。 为什么? 因为我们想向您展示通过减少物理距离可以实现的真正改进。 斯德哥尔摩有一个 CDN POP,所以我们的内容是从斯德哥尔摩提供的。

cdn后的ttfb
添加 CDN 后的 TTFB

注意:如果您使用 Cloudflare,您的 TTFB 可能会稍高一些。 这很可能是由于运行完全代理服务的额外开销和复杂性。 请记住,Cloudflare 具有一些 CDN 提供商没有的附加防火墙和其他功能。 因此,您需要下定决心,这可能会使您受益更多。 如果您的整个网站没有得到适当的优化,那么在略高的 TTFB 上受到打击可能是值得的。

但是,您可能还想查看 WP Bullet 关于使用 Cloudflare 页面缓存降低 TTFB 的指南。 这可能需要一些额外的设置和测试。 确保运行您自己的测试,因为每个环境都不同。

建议阅读:如何为 WordPress 设置 Cloudflare APO。

3. WordPress 缓存

第三种方法,可能是减少 TTFB 的最简单方法之一是在 WordPress 网站上使用缓存。 许多人只认为缓存可以帮助减少加载时间,但实际上,它也有助于减少 TTFB,因为它有助于减少服务器处理时间。 我们在运行和不运行缓存的情况下再次运行了一些测试。 每个测试运行 5 次并取平均值。

没有缓存运行

我们通过 Pingdom 运行该站点,并且在没有缓存运行的情况下,我们的站点获得了 1.17 秒的加载时间和 560 毫秒的 TTFB。

非缓存 ttfb
非缓存 TTFB

启用缓存

然后我们启用缓存并再次通过 Pingdom 运行该站点。 这次我们的网站获得了 643 毫秒的加载时间和 57 毫秒的 TTFB。

wordpress 缓存 ttfb
启用了 WordPress 缓存的 TTFB

因此,通过启用缓存,我们能够将TTFB 减少高达 90%! 您可以阅读有关 Kinsta 缓存的更多信息。 我们在服务器级别执行此操作,这意味着不需要缓存插件。 如果您不使用托管 WordPress 主机,我们建议您使用免费的缓存插件,例如缓存启动器。

4. 使用高级 DNS 提供商

最后但同样重要的是,DNS 也在 TTFB 中发挥作用。 很难准确计算它受到的影响有多大,但您仍然可以看到整体 DNS 查找时间,并看到那里有更快和更慢的提供商。 我们使用 SolveDNS 速度测试工具进行了几次测试。 这是使用 NameCheap 的免费 DNS 和响应时间的域示例。

免费名称Cheap DNS

免费的DNS速度
免费的DNS速度

下面是使用 Amazon Route 53 的高级 DNS 的示例。 如您所见,亚马逊的 DNS 查找时间要快得多。 通常,高级 DNS 提供商的速度会更快。 Cloudflare 是一款免费的,也具有出色的性能。

Amazon Route 53 DNS

亚马逊高级 dns
亚马逊高级 DNS 速度

请务必查看我们关于为什么应该使用高级 DNS 提供商的帖子。 我们在 Kinsta 与 Amazon Route 53 合作,所有客户均可免费使用。

概括

您可以优化或修复许多其他事情以减少 TTFB,例如数据库缓存、磁盘 IO、交换使用、RAM、PHP 设置、MySQL 设置、网络设置、TLS 开销等。但上面提到的那些是相当的易于实施,并将为您提供最快的性能提升。 因此,下次有人问您如何减少 TTFB 时,请记住快速的 WordPress 主机、CDN、缓存和 DNS 都发挥着重要作用。 修复或改进这些瓶颈就可以解决问题。

您对 TTFB 的体验如何? 我们很想在下面听到它。