- A+
自从使用了阿里云共享虚拟主机搭建了wordpress博客网站后,各种折腾从未停止。换装各种wordpress主题,安装无数插件如:SEO优化tag标签、图片alt,function增加各种功能,以及样式美化鼠标、背景音乐等等。但是这样整下来发现一个很大的问题,网站变慢了,网页一直打不开,加载缓慢,耗时特别长。其中的有一个特别的问题就是网页waiting TTFB时间太长。因此,爱在灵灵久博客具体说说是什么情况、问题原因以及如何解决wordpress博客网站打开网页缓慢,请求加载等待过长的问题。
一、问题描述
wordpress博客安装各种插件、自定义function功能或css样式后出现网页打开缓慢的问题,有时需要好几秒才能打开,这是严重不能忍受的。通过按住F12(右键审查元素),切换到控制台中的网络network,然后刷新网页后发现,主要耗费时间是在document、js、cs以及文章图片文件上面,尤其以document最为耗时。继续点击document发现,占用绝大多数时间的是waiting(TTFB)以及Content Download。其中,waiting(TTFB)占用最多时间,需要重点进行优化;而Content Download则与服务器的性能以及带宽有很大的关系,基本上是固定了,如需要优化则需要提升服务器性能和带宽。
二、原因分析
TTFB (Time To First Byte),是最初的网络请求被发起到从服务器接收到第一个字节这段时间,它包含了 TCP连接时间,发送HTTP请求时间和获得响应消息第一个字节的时间。
通过百度相关知识了解到,TTFB即是请求发起到接收第一个字节的时间。当服务器收到用户打开一个页面的请求时,首先从数据库中读取该页面需要的内容,然后将这些数据传入到模版并渲染,最后再返回给用户。由于查询数据和渲染模版需要需要一定的时间,在这个过程没有完成之前,浏览器就一致处于等待接收服务器响应的状态。当服务的性能比较低,数据库查询较多,没有优化好,这个时候TTFB时间就会很长。另外,用户与服务器距离较远(如跨多省、国)或者服务器处理需要处理较多cookie请求也会导致TTFB等待时间过长。
三、解决方法
知道了网页打开慢的原因就可以从如下几个方面进行逐步优化了:
一是排查问题,主题、插件、function或样式等是哪个耗时较长,可以采用懿古今boke112导航的思路,逐步确定问题到底是出在插件、主题或增加的功能上:
停用所有插件,启用默认主题。速度上去了,说明是主题或者插件的原因;
启用默认主题,逐一测试插件,速度基本不变,说明插件没有问题;
停用所有插件,启用 DUX 主题,速度慢下来了,说明主题有问题?
备份主题,后台删除 DUX 重新安装主题,速度上去了,说明原版 DUX 主题没问题,自己折腾的东西有问题。
二是采用缓存,将网页静态化,或将数据库SQL查询结果缓存起来,最小化PHP 和 MySQL 的执行时间。这里推荐采用wp super cache缓存插件,具体设置方法见:wordpress网站静态缓存插件之WP-Super-Cache详细安装与配置说明教程,其中有个“稍后初始化,在 WordPress 加载后显示缓存文件。”不要勾选。
三是使用cdn加速,将css、js以及图片文件进cdn加速,爱在灵灵久博客采用的是wordpress七牛云存储加速的,感觉很好用,而且免费使用。
四、问题总结
wordpress博客的主题丰富、插件多样,可玩性非常强。在使用时首先需要选择一个非常好的且性能优秀的主题,这一点很重要。其次安装的插件不要太多,不要使用非正规的插件(容易被挂马),且安装完一个插件后多检查网站有没有什么异样,如:网页错乱、打开缓慢、莫名其妙的弹窗以及网页错误(决不能忍受网页出现错误,不然心里发痒),然后再逐步增加其他插件或功能,最后忍住各种折腾的想法,一门心思好好写内容吧。