轉:记录一次WordPress网站优化经历
优化前的情况描述
优化目标站:懂司机评测
服务器配置:1H1G1M100%CPU阿里云服务器三年,刚好错过双十二活动,花了不少冤枉钱,阿里云双十二活动点击进入:阿里云双十二嘉年华活动
服务器环境:oneinstack一键web环境安装包安装,PHP7.2+mysql5.6+Nginx1.12。另外PHP扩展安装了字节码缓存opcache、Memcached内存缓存系统。
测速结果:首页耗时3s多,文章页耗时5S多。
作为新站,基本没有多少内容,看了下是关于手机赚钱软件的文章,基本是些文字图片很少,体积也不大,这个速度对于WordPress来说还算正常(没开启缓存),下面是我对这个懂司机评测网站进行的优化。
服务器环境配置优化
服务器的硬件我们没办法改变,只能从服务器的环境着手,看了下服务器的环境安装的程序都是最新版本,基本不需要做什么,查看了下GZIP、opcache、Memcached缓存服务都是开着的估计是没有启用WordPress缓存机制。
通过FTP连接上网站后,WordPress插件目录果然没有WordPress对象缓存的文件,随手下载了一个扔了上去,再去wp-config.php添加如下代码启用:
define(‘ENABLE_CACHE’, true);
define(‘WP_CACHE’, true);
上面两行代码有一个是老版本的,为了以防万一,一起加上吧。
再使用Ctrl+F5强刷后发现速度已经达到了1秒左右,偶尔能到1s内。打开WordPress查询次数与查询内容后发现是主题的代码不够规范,这个主题是他自己做的,所以有很多结构上的问题,简单修改后基本能在1秒内,首页查询数降低至9个。
自定义缓存内容
为了继续降低查询数量,我对他的主题使用了WordPress自带的自定义缓存函数wp_cache_set,具体使用方法请看:WordPress缓存提速优化进阶学习目标0sql查询。手动写了几个缓存函数对导航栏这种不会被WordPress缓存机制缓存的内容进行缓存,WordPress有个导航菜单更新钩子,通过这个钩子我们可以在更新时刷新缓存,完全不会影响到我们正常使用。
这一通修改页面查询次数降低到了4次,时间在600ms左右。之所以不完全缓存,是因为他需要一些动态交互,缓存了反而不美。让我有些奇怪的是,4次查询好时0.04秒,浏览器却需要600ms才能解析出来,通过浏览器的F12看了下网页加载情况,发现TTFB有点高,花了400ms。猜测可能是我的网络问题,再挂上CDN后,使用各大机房测速显示如下图所示。
基本上网页加载完成耗时都在0.4-1秒左右,个别在2秒内,这次优化还是非常简单的,关键在于对速度慢问题产生的原因进行分析,才能找到相应的解决办法,这里就不多说了,前面我已经讲过很多了,需要的可以学习下。