微信扫码登录

正在生成二维码...

请使用微信扫描二维码登录

等待扫码...

WordPress 性能《最强》的一套优化方案

在超过 5 年的 WordPress 开发经验中,我尝试过几乎所有的 WordPress 性能优化插件。无论是最知名的 WP Rocket 和 LiteSpeed Cache,还是处于上升期的 Cache Enable,只要对站点有一丝一毫性能提升的插件都进行了实际站点测试。以下我会从功能全面性轻量程度这两个维度分析,得出对站点性能最佳的优化插件组合。

为什么要使用性能优化插件?

众所周知,WordPress 站点非常容易臃肿,导致前后端加载速度缓慢。其中影响最严重的是后端(管理后台)加载速度。前端页面加载速度通常采用静态缓存后还可以接受,但是后台只会因为插件的堆积而越来越慢,严重消耗维护人员的耐心。这不是一个健康的、可持续发展的站点应有的状态。

所以我不仅仅需要前端缓存插件,还需要对后台加载速度负责,同时再对数据库查询进行优化。这是一个复杂的过程,但也是有趣的探索。

前端静态缓存

前端静态缓存有一系列的插件可以选择,强如付费插件 WP Rocket,又或者免费插件 W3 Total Cache,它们的功能都非常强大,设置项非常繁多。同时,这也意味着插件体积越大,例如上述插件中 WP Rocket 约 4.3MB,W3 Total Cache 约 9.1MB,这都会严重影响到后台加载速度。

在我看来,前端静态缓存中最重要的三个功能分别是:

  1. 移动端单独缓存:移动端单独缓存是为了让 WordPress 的 wp_is_mobile() 函数可以正常使用。
  2. CSS & JS 优化:删除或推迟未使用的 CSS 和推迟 JS 对前台页面的速度影响非常大。
  3. 图片懒加载:图片懒加载同样会非常影响首屏加载速度。

后台速度影响

后台速度影响最主要的问题点就在于插件的尺寸。其实插件的尺寸对后端性能并没有直接的影响,而是插件尺寸大非常考验开发者的优化技巧,并且功能越多优化起来越复杂。所以我们不能把希望寄托于未知的开发者,而是要经过一系列的调研、分析,进行插件组合,搭配出最合适、最稳定的性能优化方案。

数据库查询优化

Redis 缓存逻辑

Redis 缓存逻辑

数据库查询优化一般有两种方案: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 得分,如有疑惑可评论一起讨论。