什么是 TTFB (首字节时间) ?如何降低 TTFB?

测试过 pagespeed insights的网站,都会遇到 “Reduce initial server response time(减少初始服务器响应时间)”的提示。初始服务器响应时间能影响网页加载时间和性能指标,比如最大内容绘制,核心 Web 生命指标等,也会影响 PageSpeed 分数。也就是 TTFB 越小越好。

在对打开缓慢的网站排除故障时,首字节时间 (TTFB)是一个比较重要的指标。如果你正在寻找有效降低 WordPress 网站和服务器 TTFB 时间的办法,本文能给你提供一些有价值的方向和思路。

什么是 TTFB(首字节时间)?

TTFB全称:Time to First Byte。等什么呢?除了等待服务器传递响应所花费的时间之外,还包括到服务器往返的延迟。

指的是从访客发出 HTTP 请求(如打开域名)到用户的浏览器接收到第一个字节之间的时间。这个过程大体是这样的:访客发出访问请求,从域名解析定位到CDN节点,或主机服务器。读取网站数据再返回到用户浏览器中,直到看到页面内容加载。

简而言之,TTFB 是从你打开网页开始到页面呈现那一刻的时间,顾名思义就是一段“等待”的时间。

下面是服务器的动作:WordPress 这类的内容管理系统 (CMS),服务器要执行页面的所有静态(文字、图片、视频)、动态内容(php文件、数据库),其中比较耗费时间的是 php计算和读取数据库。PHP 服务加载网站 MySQL 数据库、获取内容、计算出 HTML 输出并将其返回给网站访问者。

TTFB 包括三段:

1、发送HTTP请求的时间

TTFB 从访客发送 HTTP 请求开始,服务器接收请求的时间主要在于查找 DNS 的时间、用户网络速度、和服务器之间的地理距离以及连接中可能的中断。

2、处理请求的时间

服务器收到请求后,会处理请求并响应。包括启动php进程、进数据库搜索调用、运行js脚本、css样式表及与其他网络系统通信。

3、服务器将响应的第一个字节发送回浏览器所需的时间

服务器将响应发送给用户。取决于服务器和用户的网络速度。

上述这些步骤都需要时间,如果优化的不好好那么网站的 TTFB 就会非常高,比如超过10秒或更长时间。

说向服务器发送请求、处理请求并把处理好的数据发送回用户浏览器所需的时间越长,显示网页需要的时间就越长,我们称之为 TTFB过大,需要进行优化。

但不一定是主机慢,也有可能是安装了太多的插件(我见过安装50+插件的,还有更多的说一下),没用缓存系统,使用了性能低下的 PHP5.6 版本(特殊情况除外)。

我们管不了用户那头,只能想办法优化服务器端和 CDN部分(管好自己)。

TTFB 多大算正常?

Google 建议 TTFB 低于 200 ms。Lighthouse 认为请求超过 600 毫秒就不合格。

如果 TTFB 超过 1秒甚至更大,那就代表服务器存在一些性能瓶颈,需要查找问题所在并优化。

如图所示,魏艾斯笔记的 TTFB 大约在 500ms多。

魏艾斯笔记的 TTFB 大约在 500ms多

测量 TTFB数值

一般可以用 Gtmetrix网站来测试你网站的 TTFB数值,并作为参考使用。

感兴趣请看GTmetrix网站性能测试详细介绍,了解具体测试方法。

很多国外网站都可以测试 TTFB数值,知道有这回事就行了。

国内网站选择【中国香港】节点测试;国外网站选择【加拿大】或【美国】节点测试。

导致 TTFB 高的原因

WordPress 网站有多个因素会影响第一个字节的时间:DNS 响应时间、网络延迟、服务器配置和性能、动态内容。

我们用下面 9种方法在 WordPress 中降低 TTFB (首字节时间)。

使用快速的网络主机

使用稳定、快速的主机服务器,会大大降低 TTFB。

比如魏艾斯笔记的大部分访问都在国内,那么就选择了腾讯云服务器作为网站基础平台。

选择访客较多的主机节点,物理位置更靠近用户所在地,会有效降低 TTFB。

另外国内还可以选择阿里云服务器,同样具备优秀的素质。

而外贸网站、跨境电商网站的大多数用户位于美国,那么建议把网站托管在美国节点。如果大多数用户在欧洲,那就托管在欧洲节点。如果美国、欧洲客户都有,那还是放到美国节点。

外贸B2B网站、跨境电商网站建议选择 SitegroundHostinger虚拟主机等平台。2C网站建议选择 Vultr主机建站。

主机服务器非常重要,这是建站的基石。基石如果不稳定、性能差,你再怎么优化也会事倍功半。

使用 CDN

使用 CDN可以帮助网站通过遍布全球的缓存服务器节点,更快地将网站静态内容发送给用户。

比如你的主机放在美国主机上,当欧洲用户访问时,他们将从比较近的荷兰阿姆斯特丹 CDN 节点缓存服务器中调用网站内容,而无需去你美国主机中访问,这样就节省了欧洲到美国的来回时间。有效降低了网站主机和访问者之间的网络延迟。

更多内容请看云服务器还用 CDN加速吗?什么网站要用CDN?

高级 DNS 服务

普通的 DNS 不提供高级 DNS功能,也就是说域名商提供的 DNS服务是免费的,而付费 DNS套餐可以提供更多台 DNS解析器节点,让DNS解析更快。好的 DNS 提供商会使用遍布全球的 DNS 服务器网络以低延迟回答 DNS 查询,减少 TTFB。

魏艾斯笔记购买了腾讯云DNS解析套餐,比普通的免费 DNS解析要更快应答访问请求。

感兴趣请移步DNS 解析和 CDN 加速的区别与联系

开启缓存

降低 TTFB 的简单方法是在 WordPress 网站中添加缓存。缓存能减少服务器处理时间来帮助减少 TTFB。

对于服务器来说,启用 memcachedredis 是必须的。对于虚拟主机来说,安装一款 WordPress 缓存插件就可以了。

相关阅读:宝塔面板安装memcached的误区及正确方法

WP Rocket 插件安装部署设置详细图文教程

WordPress缓存加速优化插件 WP Fastest Cache(支持中文)

WordPress缓存加速插件 W3 Total Cache安装配置详细指南

LiteSpeed cache插件安装设置图文教程

WP Super Cache缓存插件优化设置过程

SG Optimizer插件加快网站速度

开启 GZIP 压缩

开启 GZIP 压缩后,大大减小 HTML、CSS 和 JS 文件大小,下载页面资源会更快,降低 TTFB。

云服务器使用宝塔面板建站, 宝塔面板默认启用 GZIP 压缩。

国外虚拟主机都默认支持 GZIP,不需要我们操心。

不知道自己的主机是否支持 Gzip?请看检测网页Gzip压缩是否成功的多种方法

优化数据库

常见的数据库垃圾,比如文章修订版本、已删除和垃圾评论以及插件创建的临时文件等,都会影响服务器响应时间。

强烈建议定期优化数据库大小和进行清理垃圾工作。

大家可以定期使用以下插件清理数据库垃圾:WP-OptimizeOptimize DatabaseAdvanced Database Cleaner

比较热门的 wp-rocket插件自带清理数据库功能,还能节省一个插件。

及时更新 WordPress、插件和主题

WordPress 程序、插件和主题更新,会影响代码运行到数据库的查询或影响 PHP 代码的运行效率。

请定期检查插件和主题,建议只保留用到的插件和主题,删除不用的。

选择合适的主题、插件也是一个很有技巧的事情。插件、主题的代码质量会影响 TTFB,有些插件会在后台运行,间隔一段时间就检查网站情况。有的主题代码中查询数据库次数过多,都会增加 TTFB。

总体来说定期更新 WordPress、插件和主题还是有必要的。

减少数据库查询

WordPress 多次读取数据库,查询次数过多会影响 TTFB。

可以安装 WordPress检查检测插件 Query Monitor,深入了解最耗时或查询时间最慢的数据库查询,找到哪些插件、主题或设置正在影响网站的页面速度。

PHP版本

PHP7.4 的性能比之前所有版本都要快很多,使用新版本可以有效提升 TTFB。

出于特殊情况,有些旧程序只支持 PHP 5.6,那么就无法享受 php7.4带来的飞快感觉。

很多插件、主题还没有支持 PHP8.0,所以 PHP7.4是比较合适的选择。

总结

在网站上使用上述方法后,能有效降低和改善 TTFB,给网站性能带来巨大提升。

网站打开速度快了,访客体验就得到了有效改善,这是我们的终极目标。

温馨提示: 本文最后更新于2024-06-16 18:10:07,某些文章具有时效性,若有错误或已失效,请在下方 留言或联系 Ferry资源网
© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容