为了避免逻辑上的误解,这标题必须把「装过太多插件」特别先拿出来说。
字意上来看就是 WordPress 因为装过太多插件而变慢,但可能有人还是会没反应过来说「我现在插件很少啊,怎还是慢?」 ,这时候请回想过去是否拿这个网站「尝试」过很多插件实验过很多功能呢? 如果有,那就符合这个条件了!
这件事就要从插件的开发角度说起。 插件开发时有不少的参数状态要记录,这时候就会写到 WordPress 的一个数据表 ,到这边都还很正常,不过如果不想用这插件的时候,插件又没有实作把这些自带设定移除选项的「擦屁股」功能的话,那就开始不正常了~wp_options
这数据表中每笔数据有一个参数会决定每次 WordPress 启动时是否要顺便把该笔数据也读取出来暂存,用以达到加速网站之后功能的加载。autoload
如此好心的设计,会因为尝试过多的插件,且插件又没有做好这块解除安装功能的话,时间一长,安装过的数量一多,网站哪怕没有多少内容或浏览量也会越来越慢。 (读取数据越来越大)
对一般非技术背景的人来说,学习 WordPress 也要养成良好习惯是「永远不要在正式的网站上测试」。
在自己电脑测试,或是开过一个网站测试,都没问题确定要上线了后才移植到正式的网站上!
当然也不是说有技术背景就可以,而是自己要理解该项操作的技术成本高低,评估正要使用的插件弹性,来第一时间为这网站做好规划。
很多东西说破不值钱,但一步一步扎扎实实的基本功夫才是堆叠出好网站的开始~
如果网站已经给你玩到很慢了怎办? WP Engine 团队有写了一篇很实用的「如何优化 WordPress 数据库」一文可以参考。
其中本文说明的部分在该文章里「AUTOLOADED DATA」段落有很详尽的整理方式,安装过太多插件进而影响效能的部分也大多在这。
找到前 20 大主动装入且过肥的数据 :
SELECT LENGTH(option_value),option_name FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 20;
找到后想怎么处理就看情况了~ 这块操作也是要非常谨慎,弄一个不好可是会把网站搞挂的!
文末特别补充:只有说插件其实不算公平,布景主题其实也算是一种插件,只是一个网站只能启用一个。 而过去曾经套用过不少主题的话也非常有可能造成这数据表过肥的问题。
另外个人经验是Yaost SEO这套插件也真是有办法成为你那前20名肥大数据的主因,所以效能也是我后来改用All in One SEO的考量。
上面这句话不是我说的,我都不用Yaost SEO、All in One SEO了。
本人在十多年的WordPress主题开发和使用经验告诉我,选择插件需要适用即可,不是说这些插件不好,也不是说不好,只有适用自己才是好的!
我目前已经废除大部分非必要插件:SEO插件、主题的性能优化功能(30多项),这些都已经自己直接写在functions.php
中,网站速度当然快多了。