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

WordPress 性能问题,一直是 WordPress 被诟病最多的地方,这也是知乎这类问答网站大家问得最多的问题之一,类似「WordPress 这么慢,为什么大家还用它做网站之类」,还有一些用户直接给 WordPress 判了死刑,觉得它的性能问题已经无救了。

WordPress 很慢?

是的,很多人觉的 WordPress 很慢!

但是经常看我爱水煮鱼博客的同学,还是发现我的博客是不是非常快,之前我在介绍我做的 WordPress 项目案例中,也提到,我们做的「花生小店」这个小程序电商平台,上万个 WordPress 站点,也只用了两台服务器(一个服务器和一台数据库)就搞定了,这些都说明 WordPress 本身并不慢。

往大的说,作为全世界最通用的建站和博客系统 WordPress 来说,在设计上肯定不会有太大的性能问题,WordPress 开发团队也肯定也考虑到这个问题。

那么 WordPress 效率问题到底在在哪里呢?

根据我多年 WordPress 建站和维护的经验,很多性能的问题都是 WordPress 使用不当造成的,比如安装太多效率低下的插件,使用代码质量低下的主题,没有正确处理 WordPress 的缓存等等,所以提高 WordPress 性能,就要从这些方面入手。

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

今天就根据我自己博客的优化以及我做大型 SaaS 电商平台花生小店得到的经验,给大家讲讲自己多年总结的 WordPress 优化经验和技巧。

更新到最新版

这是很多人忽略的一点,每次 WordPress 新版更新,WordPress 开发团都会发布会前端和后端代码的性能优化提升的像介绍文档,每次都有不错的提升,比如 WordPress 更新到 6.1 之后,无需插件即可实现站点 0 SQL

动静态分离

不管 WordPress 博客还是其他 CMS 建的站点,优化的第一步一定是动静态分离,你也可以去看看腾讯、淘宝等大网站页面的源代码,会发现它们的图片的域名和网站的域名不是同一个,图片的域名可能是使用 cdn.主域名.com 或者 image.主域名.com 等这类子域名,这是这些大网站对图片放到不同的服务器进行 CDN 加速。

我们先分析下网站的静态文件的特别点,网站的静态文件一般有两种:

第一种是网站的 CSS,JS 和一些主题的常用背景图片和按钮文件,这些文件如果网站不进行改版或者其他改动,基本上是不会修改的。

第二种是每天更新的网站内容时上传的图片或者附件,这些图片文件也是基本不会改动的。

解决好静态文件的存储和加速,网站速度首先就解决了一大半,WordPress 构建的网站和博客也是一样的。

对于这些静态文件来说,最好的解决方案永远是使用 CDN 网络进行加速,这样服务器的压力将大大降低,因为这样自己服务器只要负责当前页面的请求,其他所有图片,JS 和 CSS 都是从 CDN 上获取的。请求数可以降到当前的 1/10,甚至更低,所以能不快吗?

WordPress 博客如何使用 CDN 服务,我写的 WPJAM Basic 插件的「CDN 加速」功能,已经支持主流的云存储服务:阿里云OSS腾讯云COS 等,只要你安装了WPJAM Basic 插件,就可以一键实现 WordPress 博客静态文件 CDN 加速

云服务链接
阿里云OSShttps://wpjam.com/go/aliyun 
腾讯云COShttps://wpjam.com/go/qcloud

服务器优化

实现动静态分离之后,就要开始对网站的动态内容进行优化,优化动态内容,首先要有一个稳定网络环境,稳定的主机供应商和服务器性能的优化。

选择一个靠谱的主机托管商,个人推荐 BGP 或者多线机房,让全国用户访问都能有不错的速度,然后尽量选择独立的服务器,再不济,也得 VPS, 🙂 因为你没有服务器的 Root 权限很多东西是无法进行的,国内一般推荐:阿里云腾讯云

云服务链接
阿里云OSShttps://wpjam.com/go/aliyun 
腾讯云COShttps://wpjam.com/go/qcloud

服务器问题解决之后,服务器可以做如下优化:

  • 安装 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把整个页面缓存到硬盘中,下次直接访问静态的 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 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 性能优化服务

总结一下:优化 WordPress,首先下载和安装 WPJAM Basic 插件。然后选择好的服务器和托管商,对 WordPress 程序进行优化,并且使用 Memcached 做好缓存。

WordPress 性能优化服务

WordPress 效率其实很高的,加上 WordPress 本身的灵活性和功能强大,WordPress 作为各种建站绝对是非常不错的选择,所以我一直使用 WordPress 建站

当然我们的 WordPress Jam 也提供 WordPress 性能优化外包服务,只要你的服务器有 root 权限,请直接联系我的 denis@wpjam.com,或者加我的微信:chenduopapa


©我爱水煮鱼,本站推荐使用的主机:阿里云,国外主机建议使用BlueHost

本站长期承接 WordPress 优化建站业务,请联系微信:「chenduopapa」。