WordPress 并不是插件越多速度越慢而是劣质插件越多速度越慢

2022-11-18 15:53:04 浏览数 (1)

有关 WordPress 速度优化经常听到的就是“ WordPress 用的插件越多越慢”的说法,甚至明月也经常说。其实严格意义来说这句话是很片面的,这句话本来的目的是让大家尽量少用插件,以免影响 WordPress 运行性能而已,谁知道现在被人当成一种要求了,说实话真有点儿矫枉过正了。

那么插件越多是不是速度就越慢呢?

回答这个问题首先要从 WordPress 插件运行原理说起了。简单理解,就是除了WordPress核心程序之外,额外添加的任何程序代码都可以被理解为插件。甚至包括向 functions.php 中添加的代码,也可以视作为插件的另外一种形式。

插件本身就是向 WordPress 添加额外程序代码,这些代码会随着 WordPress 一起运行。

例如以下代码:

代码语言:javascript复制
function my_wp_head() {
echo "<!-- 注释:纯粹测试 -->";
}
add_action('wp_head', 'my_wp_head');

将代码添加到 functions.php 中或者做成一个插件形式,都是在所有页面的 head 部分添加一段HTML注释代码。

不论是哪种方式添加,对性能和实现的目的都没什么区别。WordPress 每次执行程序的时候都会将这段代码添加并运行。

所以这里可以得出一个结论,只要是需要额外添加程序代码,不论是直接写入 functions.php 函数文件中还是使用插件,对 WordPress 运行的效率影响是一样的

从 WordPress 插件运行原理来看,无论是代码还是插件对 WordPress 速度的影响几乎是没有的,唯一有可能产生影响的其实也就是代码或者插件的代码质量了,我们都知道 WordPress 核心程序提供了很多的内置函数和钩子,它们本身就是 WordPress 的一部分,对于插件开发者而言,要尽量使用这些内置函数与钩子来进行开发,即可节省代码编写时间又能提高程序执行效率和安全性。

如果插件完全符合 WordPress 官方插件手册中的编码要求,那么执行效率是不俗的。

另外程序功能如果相对简单的话,采用面向过程编程的插件执行效率较高。功能较复杂的插件,一般采用面向对象编程,虽然便于维护和扩展,但执行效率较低一些。

但PHP代码的运行效率在有了OPCache扩展的加持后其实已经没有多大的差异了,就算有差异也是微乎其微的,这时候我们就要从插件要实现的功能上来判断是否会影响 WordPress 的速度了,WordPress 插件中的程序代码可以分为3种:

  1. 仅在前端执行的程序代码
  2. 仅在后台执行的程序代码
  3. 所有地方执行的程序代码

WordPress 会根据插件中所设定的条件加载代码执行,真正影响网站前端速度的只有1和3两种,大部分的功能型插件虽然代码看似很多,但在前端加载的代码其实不多,那样的话对网站速度影响不大。

那么 WordPress 插件越多速度越慢这个说法依据是啥呢?

依据就是几乎99%的插件都不会主动明说的数据库读和写,甚至可以说凡是会影响 WordPress 速度的插件几乎百分百有数据库读写的行为,影响的大小拒绝取决于数据库读写的频率高低,这类插件一个最好的判断方法就是启用后就会在数据库里创建至少一个或者多个数据库表(这里建议参考【一定要了解的 WordPress 数据库中默认 12 个表】一文),插件随着 WordPress 运行后,数据库的读写也就开始了,这样 WordPress 速度不受影响才怪呢,数据库拥堵了,代码质量再高也是无用功。

什么样的插件对网站速度影响较小

如果以上内容都认真阅读了,相信你已经有了一定的了解。下面我们总结一下,对网站速度影响较小的插件主要特点:

  • 代码轻量化的插件。
  • 前端输出的CSS或JS经过优化,且有仅在需要的地方加载的判断规则或功能选项。
  • 插件的功能有清单且有控制开关选项,未开启的功能代码不会被执行。
  • 符合 WordPress 编码规范。
  • PHP 代码质量较高。
  • 不需要数据库操作,没有频繁的数据库读写
  • 能保持更新、升级的插件。

就明月的经验来看,只要一个插件没有数据库操作对 WordPress 速度的影响是极其有限的,甚至都可以忽略的。这也是明月判断插件是否劣质的一个很重要的标准,更是我1G1H的最便宜云服务器一次拖着5个站点可以用这么多年的原因之一,并且影响 WordPress 运行速度的从来不是 WordPress 和PHP,很多时候都是数据库这个瓶颈,毕竟没有几个站点舍得花钱另购独立的云服务器,都是服务器自带的数据库拿来就用了,稍微不注意就会拥堵也自然是正常的了。

0 人点赞