测试TTFB有两种主要方法;浏览器和速度测试。速度测试工具无法扫描 wp-admin 中的页面,因此如果您想测试这些页面,则需要使用浏览器方法。
注意:如果您在以管理员身份登录时测试 wp-admin 页面或测试任何页面,则该页面不会在服务器上缓存。与前端页面相比,它具有自然更高的 TTFB,可以从服务器缓存提供服务。
还有许多在线页面速度测试可以显示 TTFB。TTFB 通常位于其自己线路上的速度测试的瀑布区域内。一些常见的速度测试网站是:
WebPageTest
Pingdom的
GTmetrix
KeyCDN
Sucuri加载时间测试仪
始终考虑页面速度测试的位置,因为由于网络延迟,更接近的测试将提供更快的结果。如果您无法更改测试的位置,那么寻找不同的工具可能是明智之举,它可以让您从更靠近主要用户群的位置进行测试。
复制到暂存或开发站点,或者在继续之前简单地进行备份。
test.html
仅包含一些简单的测试措辞。
高 TTFB 最常见的罪魁祸首是动态内容生成。这是指 PHP 和数据库查询生成网页所需的时间。导致动态内容生成缓慢的主要因素是大文件、过多或缓慢的数据库查询以及自动加载数据。
如果您的网页正在加载大文件或太多文件,则浏览器在用户端下载这些内容也可能需要很长时间。
提供缩放图像— WP Smush或EWWW Image Optimizer Cloud等插件可以提供帮助
缩小你的 CSS 和 Javascript 文件——看看一个插件,比如WP Rocket
推迟您网站的 Javascript — 移动您的 JS 代码以在您的页面上向下加载。您还可以使用WP Rocket 之类的插件
WP Engine 的缓存系统通过将每个生成的页面作为静态文件存储在缓存中来帮助抵消提供动态页面所需的许多资源。然后可以更快地将此缓存版本提供给所有后续访问者。页面缓存每十分钟自动清除一次。由于页面缓存有助于抵消生成请求页面所需的大部分时间和资源,因此最好尽您所能提高页面可缓存性,以便从缓存中提供更多请求。这有助于确保您的网站快速且可扩展。我们还建议使用我们的对象缓存层,它缓存发送到数据库的查询结果,最大 1MB。这意味着当您的页面必须在未缓存的情况下生成时,可以更快地从缓存中提供查询。
另一个影响 TTFB 的重要因素是对数据库的查询。过多的查询、运行时间过长的查询或未完成的查询都会直接影响页面的高效加载能力。
安装像Query Monitor这样的诊断插件可以帮助您找到影响加载时间的插件、主题或设置。
一个更强大的工具,称为 New Relic,还可以允许在代码级别进行挖掘以查找任何导致问题的查询。
自动加载的数据是您的数据库中的信息,WordPress 告诉它在每个页面上加载。这对于诸如 URL、活动主题和插件之类的东西很有用,但是当太多数据被告知要自动加载时,这就会成为一个问题。过多的自动加载数据会很快导致在每次页面加载时增加数百万字节的多余数据。
我们建议自动加载的数据不超过800,000 字节(约 0.8MB)以获得最佳性能。
此限制在启用对象缓存时尤为重要,因为它只有 1MB 的缓冲区大小。高自动加载数据与对象缓存相结合可能会导致即时 502 错误。
自动加载的数据始终存储在 wp_options 表中。在该表中有一个名为“autoload”的列,每个对应行的值设置为yes或no。
将一行设置为yes将为该值启用自动加载。
将一行设置为 no将禁用该值的自动加载。
注意:在对数据库进行任何更改之前,一定要创建一个检查点。
可以从phpMyAdmin或使用远程数据库连接运行以下查询。
计算总自动加载数据:
SELECT SUM(LENGTH(option_value)) FROM wp_options WHERE autoload = 'yes';
找到最大的自动加载行:
SELECT LENGTH(option_value),option_name FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 20;
看起来很简单,插件和主题作者经常在他们的更新中添加优化。这意味着更新您的插件可以通过使用新的、更高效的插件查询和 PHP 代码来优化您的网站。
不仅要及时掌握这些更新以确保您的网站保持安全,而且确保您的网站保持快速运行也很重要。
注意:一些高级主题和插件不会在您的 wp-admin 的插件页面上列出它们的更新。定期检查插件本身或与插件作者联系。
动态生成页面时,Apache Web 服务器正在处理 PHP 代码以执行此操作。Apache 有一个标记为.htaccess的配置文件,用于定义特定站点的 Web 服务器配置。此文件必须与对您网站的每个未缓存请求一起加载,因此优化此文件将降低您网站的 TTFB。只要有可能,请尽可能保持 .htaccess 文件简短和干净。
将所有重定向添加到用户门户并从 .htaccess 文件和重定向插件中删除它们。
当重定向被放置在用户门户中时,它们在必须由 Apache 加载之前被处理,从而使它们预先占用的资源少得多。
您可能希望在 .htaccess 文件中包含一些 PHP 指令。但是,其中许多(如缓存指令、gzip 指令等)已经在服务器上配置更高,不需要在此文件中设置。
我们建议不要自定义默认的 .htaccess 规则。在WordPress默认规则应该始终存在。
网络延迟是指一位数据从一个位置传输到另一个位置所需的时间。当您请求一个网站时,该请求会离开您的浏览器,并且必须通过您的 Internet 服务提供商 (ISP) 进行多次跳转才能到达服务器。如果这些“跃点”中的任何一个遇到问题或出现故障,则可能会中断您与站点的连接。
您可以使用跟踪路由来帮助确定本地连接的其中一个跃点是否遇到延迟。
您的网站获得的流量很大程度上超出了您的控制范围。但是,您可以控制流量与服务器资源的交互方式。这称为站点的可扩展性,以整体缓存能力为中心。
具有高可缓存性意味着从缓存中处理更多请求,并且您的站点一次可以处理的请求越多。随着更多流量的增加,高缓存性站点也具有高度可扩展性。
具有低缓存能力的站点意味着该站点正在返回大量未缓存的请求。过多的未缓存请求会增加 CPU 负载、减慢响应时间并最终增加 TTFB。随着更多流量的增加,低缓存性站点的可扩展性也很差,并且会遇到性能问题。
使用页面性能测试您的网站以确定您的缓存分数。