昨天下午喝了两杯拿铁,结果晚上睡不着,睡不着就想找点事做。打开电脑看了看自己这个博客,发现加载速度怎么越来越慢了,首页打开竟然要等个三四秒。我这人最受不了的就是等,于是心一横,干脆整顿一下吧。
说干就干,先看看主题。我这个主题都用了两年多了,以前觉得简洁好看,现在看怎么觉得有点老气。去了一趟wordpress.org,翻了一堆免费主题,最后找了个叫GeneratePress的,听说代码很干净。下载、上传、激活,一套下来居然还挺顺利。不过这主题默认的颜色有点素,我又自己撞着头调了半天配色,弄了个暗黑色的头部,感觉顺眼多了。
主题换好了,接下来就是缓存插件。之前用的是WP Super Cache,这玩意儿我用了好几年,以前觉得稳,但现在总觉得生成的静态文件有点乱,而且清理缓存的时候老是出现权限错误,每次都要手动去fTP里删文件,坑了我好几次。
这次我想换个试试。看了看LiteSpeed Cache,听说这个很强,但要服务器支持LiteSpeed才能发挥全部实力。我这服务器好像不是LiteSpeed,是Apache,于是就放弃了。后来又看了看WP Rocket,这个是付费的,以前朋友给我推荐过,说好用是好用,但要花钱我总是有点心疼。
最后折腾来折腾去,选了个W3 Total Cache。安装上之后发现设置界面好复杂,各种选项看得人头晕。我也算是老WordPress用户了,结果这个插件的设置页面还是把我整懵了。啥Page Cache、Object Cache、Database Cache、Browser Cache,还有一堆CDN设置,每个选项下面都有十几个子选项。
当时已经是凌晨2点多了,眼睛都快眯成一条缝了。我就是个不信邪的人,不信我搞不定一个插件。先把Page Cache开启,模式选的Disk Enhanced,这个我知道,就是在服务器上生成静态HTML文件,访问的时候直接读文件,不用跑PHP了。这个开了之后效果最明显,首页加载时间直接从3秒多降到1秒以内。
然后是Object Cache,我把它关了。为啥?因为我这虚拟主机没安装Redis,开了Object Cache它用的是磁盘缓存,说实话效果反而不好,还可能卡。Database Cache我也关了,因为开了Page Cache之后大部分页面都是静态的,数据库查询本来就少了。有些人喜欢把所有选项都打开,觉得这样才能最大化性能,其实不是的,有些功能你服务器环境不支持,开了反而拖累整体。
Browser Cache我开了,这个是让浏览器本地缓存一些静态资源,比如CSS、JS、图片什么的。开了之后用GTmetrix测了一下,那个Leverage Browser Caching的分数终于变绿了。之前总是提示让我添加Expires头,我懒得改.htaccess文件,现在插件直接帮我搞定了,省事。
不过中间也翻车了一下。开启JS压缩的时候,我把Minify和Combine全都开了,结果前台某些页面的交互效果不好使了。后来查了半天才发现是两个插件的JS冲突了,组合之后出问题。最后只好关了Combine,只保留Minify,这才正常。所以我想说的是,优化这东西不能急,要一项一项来,每开一个功能就刷新页面看看有没有问题,不然半夜调试真的很痛苦。
天快亮的时候我终于搞定了,整个站点的加载速度提升了不少。Google PageSpeed Insights里面,手机端跟电脑端都从之前的60多分涨到了80多分。虽然不是百分,但对于我这种个人博客来说已经够用了。
说实话,WordPress用了这么多年,我觉得它最大的问题就是速度。不是它自己慢,是插件和主题用多了就慢。很多人上来就装一堆花里胡哨的插件,结果站点越跑越卡。其实很多功能完全可以通过代码或者其他更轻量的方式实现,没必要每个都上插件。
比如我这次主题换成GeneratePress之后,就把之前那个用来添加自定义CSS的插件给卸载了,因为这个主题自带了自定义CSS框。还有那个用来生成目录的插件也去掉了,现在直接用一段简单的代码就能实现。插件数量从之前的16个减到了9个,站点自然就轻快了。
这么一通折腾下来,竟然快到早上6点才睡。睡了三个小时又起来干活,白天头都是晕的。不过看着站点页面跟飞一样打开,心里还是挺爽的。以后还是少喝点咖啡吧,半夜睡不着真的害人。