在超过 5 年的 WordPress 开发经验中,我尝试过几乎所有的 WordPress 性能优化插件。无论是最知名的 WP Rocket 和 LiteSpeed Cache,还是处于上升期的 Cache Enable,只要对站点有一丝一毫性能提升的插件都进行了实际站点测试。以下我会从功能全面性和轻量程度这两个维度分析,得出对站点性能最佳的优化插件组合。
为什么要使用性能优化插件?
众所周知,WordPress 站点非常容易臃肿,导致前后端加载速度缓慢。其中影响最严重的是后端(管理后台)加载速度。前端页面加载速度通常采用静态缓存后还可以接受,但是后台只会因为插件的堆积而越来越慢,严重消耗维护人员的耐心。这不是一个健康的、可持续发展的站点应有的状态。
所以我不仅仅需要前端缓存插件,还需要对后台加载速度负责,同时再对数据库查询进行优化。这是一个复杂的过程,但也是有趣的探索。
前端静态缓存
前端静态缓存有一系列的插件可以选择,强如付费插件 WP Rocket,又或者免费插件 W3 Total Cache,它们的功能都非常强大,设置项非常繁多。同时,这也意味着插件体积越大,例如上述插件中 WP Rocket 约 4.3MB,W3 Total Cache 约 9.1MB,这都会严重影响到后台加载速度。
在我看来,前端静态缓存中最重要的三个功能分别是:
-
移动端单独缓存:移动端单独缓存是为了让 WordPress 的 wp_is_mobile()
函数可以正常使用。 -
CSS & JS 优化:删除或推迟未使用的 CSS 和推迟 JS 对前台页面的速度影响非常大。 -
图片懒加载:图片懒加载同样会非常影响首屏加载速度。
后台速度影响
后台速度影响最主要的问题点就在于插件的尺寸。其实插件的尺寸对后端性能并没有直接的影响,而是插件尺寸大非常考验开发者的优化技巧,并且功能越多优化起来越复杂。所以我们不能把希望寄托于未知的开发者,而是要经过一系列的调研、分析,进行插件组合,搭配出最合适、最稳定的性能优化方案。
数据库查询优化
数据库查询优化一般有两种方案:Memcached 和 Redis。
在此我们采用 Redis,因为它支持多种数据结构和持久性,同时具有更灵活的功能。
首先需要在服务器上安装 Redis 服务,其次在 WordPress 后台安装 Redis Object Cache 插件,并在 wp-config.php
中配置服务,即可实现数据库查询缓存。如有不明白可以留言,后续会出教程。
最优的一套优化方案
那么根据上述的功能需求来分析,我在经过大量的实际测试后得出的最终解决方案是:
-
优化插件:付费插件 Perfmatters -
静态缓存:免费插件 Cache Enable -
数据库缓存:免费插件 Redis Object Cache
其中优化插件 Perfmatters 是非常重要的,它具备常规的多种优化功能。
其次,静态缓存插件我们只需要一个核心功能——移动端单独缓存。Cache Enable 刚好有这个功能并且没有其他额外的臃肿功能,非常适合搭配优化插件 Perfmatters。而数据库缓存插件使用免费的 Redis Object Cache 即可。
以上这个搭配是我在经过多年测试后得出的最优解。其中有不少设置需要探索,例如通过预加载提升 Google Pagespeed 得分,如有疑惑可评论一起讨论。