网站加载中的TTFB时间太长解决办法

4.8
(11)

不知道各位有没有好奇过,为啥自己网站加载很慢。而通过F12发现,ssl加载速度正常,网页下载速度正常,唯独一个TTFB时间超级长,甚至高达一秒以上。通俗点说,TTFB就是你服务器生成当前页面所需要的时间。很明显,如果想要加快TTFB时间,就需要针对服务器进行一系列优化。今天,我们就以Wordpress为例,告诉你到底如何优化服务器,可以极大程度的缩小TTFB时间。

TTFB是发出页面请求到接收到应答数据第一个字节所花费的毫秒数

我们知道Wordpress是由php查询数据库而动态生成的页面,即动态页面。然后包含一些html、css、js、图片等各种资源的加载过程。如果你想缩短这个TTFB时间,那么就需要缩短php解析时间、缩短数据库查询时间。html页面优化,这个很明显,如果你的页面没那么大,那页面生成时间会很快。

网站加载中的TTFB时间太长解决办法

这里顺便说下,浏览器加载网页的整个过程:

DNS查找服务器地址-https证书验证-服务器解析网页-浏览器下载网页-浏览器下载网页内各项资源。

事实上,TTFB时间还跟服务器资源有一定关系,比如服务器访问量过大,那么就有可能造成请求被堵塞,这个又需要另一种服务器优化方式来解决。

下面,我们开始分别讨论如何解决TTFB时间过长的问题(本文仅提供思路,以及个别已经写好的教程):

加快PHP解析过程

这一步你只需要在PHP里添加Opcache扩展即可,它会自动缓存你的php解析结果。如此,用户每次访问网页,有些内容就不需要每次都实时解析,而是直接利用opcache获取php的解析结果缓存。安装也很简单,直接宝塔后台搜索安装即可,无需任何设置。如果你没用宝塔,那就自己去找找怎么开启的方法吧。

网站加载中的TTFB时间太长解决办法

数据库查询缓存

如果用户每次访问你的网站,php都要从数据库里查询字符,有些页面甚至高达200次查询。那么这个速度确实会受到影响,而且数据库进程占用系统资源也会很高。一般,可以通过redis或者memcached来达到缓存数据库查询的结果。我这里比较推荐memcached,相关教程可以点击链接访问:WordPress使用Memcached缓存数据库查询结果

网站加载中的TTFB时间太长解决办法

到此,基本上动态页面生成的时间已经有所缩短。如果你的Wordpress网站经过这两个步骤,还是很慢,你就要考虑是不是主题或者某个插件的问题导致了。

页面优化整合

这一步,你需要下载一个插件,可以整合页面内CSS、JS、html资源的插件,比如autoptimize(国内服务器用这个插件,它的设置页面会有点慢,因为它要链接它的订阅服务,设置界面内右侧的类似广告性质的东西,可以通过修改php文件,加快速度),或者其他类似插件。

网站加载中的TTFB时间太长解决办法

当然,其实这一步作用还是挺大的,它可以压缩CSS、JS、html,并且整合碎片资源文件。

动静分离

这一步,主要是把图片放在云存储或者其他地方,防止过多请求服务器,毕竟都是小宽带,经不起这么消耗的。我这里用的是又拍云,相关插件使用的是:WPUpYun(又拍云云存储插件),加入又拍云联盟,每年都会送点流量的,小站足够你用了。

网站加载中的TTFB时间太长解决办法

静态页面缓存

这一步就是锦上添花了,使用WP Super Cache等缓存插件,可以把动态页面直接缓存成静态页面。相当于,把Wordpress网站转换为html静态页面,体验会更上一层楼。这里,具体的,可以参考我之前写的教程:WP Super Cache缓存插件详细设置教程。WP Super Cache里有个开启预压缩的设置,记得开启,那个就是gzip压缩。如果你不想使用这个插件,也要记得自己开通gzip压缩功能。

网站加载中的TTFB时间太长解决办法

基本上Wordpress层面,能做的就这么多了。下面再介绍点容易被忽略的加速手段吧

服务器开启BBR,防止请求阻塞

,这是Google开发的算法,用于解决服务器短时间内的请求阻塞问题,可以理解为它可以减小服务器的丢包率。而这个BBR在Linux系统内核4.9以上会自带,但是需要你去开启以下,基本的开启代码如下:

lsmod | grep bbr
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

如此,就开启完成了,可以通过以下命令验证是否开启成功:

lsmod | grep bbr

如果得到的结果包含bbr,那么就可以了。如果还是不懂,可以参考我之前写的两篇教程:Centos 8.2升级系统5.9内核及bbr的开启 以及Centos7新版内核安装bbr教程

网站加载中的TTFB时间太长解决办法

终极优化

支付 ¥5 后解锁剩余的内容,购买后请刷新页面

共计11人评分,平均4.8

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

原创文章,作者:古哥,如若转载,请注明出处:https://iymark.com/website/wordpress-ttfb-long.html

发表评论

登录后才能评论

评论列表(6条)

  • 太耀
    太耀 2021年02月01日 23:33

    前些天刚和古哥聊过这个问题,没想到古哥就写出来了,特赞。
    其实我也有点小想法,应该还可以加入cnd来加速不同地域的反应速度。
    从autoptimize排除脚本哪儿,古哥能复制发出来一下嘛。

    • 古哥
      古哥 2021年02月01日 23:35

      @太耀每个人这里都不太一样,有些插件不能合并js,所以要排除。还有一些是针对管理员后台的css也要排除(前端顶部管理员工具条那个)。我的内容如下:
      js:wp-includes/js/dist/, wp-includes/js/tinymce/, js/jquery/jquery.js, wp-content/plugins/enlighter/cache/, js/jquery/jquery.min.js
      css:wp-content/cache/, wp-content/uploads/, admin-bar.min.css, dashicons.min.css

    • 太耀
      太耀 2021年02月02日 10:17

      @古哥古哥,justnews主题的话,可以直接抄吗?

    • 古哥
      古哥 2021年02月02日 10:39

      @太耀可以的

  • 30 ℃
    30 ℃ 2021年02月04日 00:27

    挺好

    本站APP
    本站APP
    京东好物
    分享本页
    返回顶部
    如果觉得文章对你有帮助,请在文末点赞支持本站