WordPress 性能优化:为什么我的博客比你的快

经常看我爱水煮鱼博客的同学,有没有发现我的博客非常快 , 而你的博客比较慢呢?那是因为我的博客经过了优化 。
开始文章之前,插播一句,首先需要将 WordPress 更新到 6.1,因为 WordPress 6.1 无需插件即可实现站点 0 SQL 。
WordPress 很慢?
很多人都会觉得 WordPress 很慢?
作为全世界最通用的建站和博客系统 WordPress 来说,在设计上肯定不会有太大的性能问题,WordPress 开发团队也肯定也考虑到这个问题 。
那么 WordPress 效率问题主要是在哪里呢?
根据我多年 WordPress 建站和维护的经验,很多性能的问题都是 WordPress 使用不当造成的,比如安装太多效率低下的插件,使用代码质量低下的主题,没有正确处理 WordPress 的缓存等等,所以提高 WordPress 性能,就要从这些方面入手 。

WordPress 性能优化:为什么我的博客比你的快

文章插图
今天就给大家讲讲自己多年总结的 WordPress 优化经验和技巧:
动静态分离
不管 WordPress 博客还是其他 CMS 建的站点,优化的第一步一定是动静态分离,这也是腾讯 , 淘宝等大网站 , 他们图片的域名和网站的域名不是同一个的原因 。
网站的静态文件一般有两种:
第一种是网站的 CSS,JS 和一些主题的常用背景图片和按钮文件,这些图片如果网站不进行改版或者其他改动,基本上是不会修改的 。
第二种是每天更新的网站内容时上传的图片或者附件,这些图片文件也是基本不会改动的 。
解决好静态文件的存储和加速,网站性能就首先能得到基本的保证了,WordPress 构建的网站和博客也是一样的 。对于这些静态文件来说 , 最好的解决方案永远是使用 CDN 网络进行加速,这样服务器的压力将大大降低,因为访问页面只有当前页面是在自己的服务器上 , 其他所有图片,JS 和 CSS 都是从 CDN 上获取的 。
WordPress 博客怎么使用 CDN 服务,我写的 WPJAM Basic 插件的「CDN 加速」功能,已经支持主流的云存储服务:阿里云OSS 和腾讯云COS 等,只要你安装了WPJAM Basic 插件 , 就可以一键实现 WordPress 博客静态文件 CDN 加速 。
服务器优化
优化好静态文件之后 , 就要开始对网站的动态内容进行优化,优化动态内容,首先要有一个稳定网络环境,稳定的主机供应商和服务器性能的优化 。
选择一个靠谱的主机托管商,个人推荐 BGP 或者多线机房,让全国用户访问都能有不错的速度,然后尽量选择独立的服务器,再不济 , 也得 VPS, 因为你没有服务器的 Root 权限很多东西是无法进行的,国内一般推荐:阿里云 和 腾讯云 。
服务器问题解决之后,服务器可以做如下优化:
安装 Memcached 和 PHP Memcached 扩展,参考:使用 Memcached 来缓存 WordPress 数据 。PHP 开启 OPCache:把经过编译后的 PHP 代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用 。MySQL 设置 MySQL Query Cache , 可以保存保存查询结果,同样的查询不再从数据库检索,对速度有很大的提升 。WordPress 缓存和优化
要彻底明白和搞懂 WordPress 性能优化 , 首先要理解 WordPress 缓存机制,WordPress 默认是一种叫做 WordPress Object Cache 的对象缓存机制,它是把需要缓存的内容按照 Key-Value 这样的模式进行缓存(和 No-SQL 的 key-value 的有点类似),当然它还支持按照 Group 来划分和避免缓存的内容冲突 。
所以最基础的 WordPress 缓存插件就是 , 把 WordPress 产生的 Key-Value 存起来,如果是使用 Memcached,就是存到内存,如果使用文件就是存到硬盘中 。
当然高级的 WordPress 插件还能做更多,比如 WP Super Cache WordPress 各种缓存插件介绍和应用把整个页面缓存到硬盘中,下次直接访问静态的 HTML 文件 , 让服务器直接绕过 PHP,节约 CPU 时间 。Batcache 会把整个页面当做一个对象存到内存里面 。我个人推荐使用 Memcached 足够 。
Memcached 会把 WordPress 的对象存到内存里面 , 服务器的内存足够大,读取和存储速度也够快,并且内存缓存命中率也大于 99% 。另外我们 WordPress 程序经过优化之后,每个页面的查询一般在 2 条左右 , 所以整个网站效率很高,首页甚至做到 0 SQL,页面生成只需要 0.0013秒 。
WPJAM Basic 插件已经集成了 Memcached,下载 WPJAM Basic之后,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下即可 。
WordPress 各种用不上的功能,或者可能影响性能的功能,如果可能也尽量关闭,WPJAM Basic 的优化设置功能 , 已经把这一块做到了极致,点击这里查看一下优化设置功能介绍 , 这也是我一直推荐 WPJAM Basic,是真正的优化插件 。
WordPress 性能优化:为什么我的博客比你的快

文章插图
主题和插件优化
主题和插件优化优化也是基于 WordPress Object Cache 的机制对 WordPress 插件和主题的代码进行优化,主要经验有以下几点:
大家都能掌握的:
只使用必须的 WordPress 插件,安装太多的 WordPress 插件很容易引起性能问题,并且如果从一些不明途径下载插件,可能还有安全问题 。
从正规站点下载 WordPress 主题,这样下载的主题才能保证质量和安全,推荐我和 xintheme 发布的收费的 Autumn-Pro 和免费的 Sweet 主题,关于主题这一块可以还可以深度了解一下:WordPress 性能优化的基础是一款速度够快的主题 。
如果你会写程序:
WordPress 主题和插件尽量使用模板函数,因为 WordPress 模板函数如果可能都已经做好了 WordPress Object Cache 。
比如 get_the_terms 和 wp_get_object_terms 这两个函数,功能基本一样,但是 get_the_terms 直接从对象缓存中取数据,无 SQL 查询,而 wp_get_object_terms 每次都从数据库中取数据 。
WordPress 插件和主题如果一定要直接查询数据库,请做好 Object Cache,将查询的结果使用 wp_cache_set 存到 Object Cache 中 , 下次直接使用 wp_cache_get 获取 。
【WordPress 性能优化:为什么我的博客比你的快】