WordPress速度优化菜鸟实用版

2024年12月20日

WordPress的性能一直被大家所诟病,稍微高点并发就会导致服务器资源爆满。但是WordPress的建站生态一直很好,主题和插件非常之全,版本更新非常及时极少出现大规模漏洞这也导致大部分人离不开WordPress的生态。

今天整理下个人的速度优化经验给大家做一个参考。此优化教程是边整理边查找资料和测试写完的,所以时间跨度会长一些。另外后续过程如果发现文章错误的地方会做二次修改,大家如果按照本文内容做了相关操作,后期也可以关注下文章看是否有更新。

前言

在正式开始写优化教程之前,非常有必要先说下本人的操作思路和步骤。便于您理解并根据自己站点的实际情况进行调整。

不同站点的内容不同,所面对的群体也不一样,站点后期管理维护过程也不同。所以大部分人都不要照抄本文的操作方式,一定要按照自己的实际情况进行优化。

首先优化原则是尽可能提高页面加载速度,同时保证网站的“动态性能”。让网站的评论提交、商品购买等动态交互保证可用并提高响应速度。

在优化步骤上,优先保证后期的程序备份、升级、迁移、后期维护移交等操作的简便性。所以本文中对于WordPress以及服务器上PHP和MySQL等程序上的操作会优先使用插件,而尽量避免(并非不使用)在配置文件使用代码的操作。对于个人和企业站点,便于后期工作交接及站点过多导致长时间不维护后,遇到故障维护无法找到修改内容位置的情况。

一般来说常见3种类型站点:

1.本站这种偶尔更新,评论数量不多(评论全部人工审核显示,无其他提交表单)。会经常查看网站后台,没有其他动态交互内容的网站。

此类网站可以将页面进行全静态化处理,可以极大提高页面响应速度。

2.网站内容以展示为主,但需要一部分动态性能的站点(评论、询盘表单提交、内容搜索等需求)。

可以将大部分页面选择静态化,将表单提交等页面以动态展示。静态化页面内有评论需求的则设置评论后自动刷新关联页面。

3.网站内容需要经常更新,并且有 WooCommerce 等商店购买与支付、评论与表单提交等全动态站点。

此类站点大部分都是做电商的站点,优化上也是最费心,效果也是最差的。博主会尽量写一些能提高这类站点性能的文章。

优化对象有哪些?

根据本人的实际使用体验来说,常见占用资源的程序是MySQL和PHP程序。基本在服务器资源出现高占用时都是MySQL或者PHP导致的。

优化中也是尽量减少数据库查询以及PHP的执行。

再进行本站的优化步骤前,建议先备份网站文件和数据库

 

服务器的位置和性能选择

WordPress优化–服务器地理位置区域的选择

服务器位置尽量选靠近我们业务地区,详细的可以阅读上面文章来做选择。

CPU分数

服务器除了地理位置之外,我们还需要关注它的性能水平。我们买的VPS云主机99%都是超开的。比如物理机是32核32G的配置,开出来云主机一般会是64个1核1G的配置,甚至数量更多。我甚至见过一个E3 4核8线程处理器开出来60多个1核云主机的商家。

云主机的配置无法代表真实的性能水平,一般来说可以使用一些性能测试脚本来检测服务器性能。不过性能检测仅代表当时的性能参数,后续商家可能会继续在机器上新开其他云主机导致性能下降。

测试脚本可以用Yabs.sh、融合怪测评脚本、Unix Bench等。

CPU分数中 Sysbench、Geekbench 5 和 Geekbench 6 目前市面上都是这三种跑分,一般建议看 Geekbench 6 的分数,更贴近实际使用场景。Sysbench的分数要比Geekbench的高4倍,有时候高2倍不到差异较大。

Geekbench 6 能在1000分以上,都算是性能不错的机器了。6要比5版本的分数高,一般是参考 Geekbench 6 的分数比较准确,更贴近实际使用场景。一些商家的AMD 7950X和9950X CPU单核 Geekbench 6 能跑到3000的分数,这是性能非常好的服务器了。

Geekbench 6 测试可以使用 Yabs.sh 测试脚本。

宝塔面板自带的CPU跑分,一般是 Geekbench 6 测试的两倍甚至更多,建议统一参考 Geekbench 6 分数。

内存分数

内存一般不需要我们太关注分数,内存的速度都非常快。极少会成为我们的性能瓶颈。

如果您对内存有较高速度要求,可以在选购时买内存是 DDR4 及 DDR5 代的云主机。

磁盘分数

磁盘速度对我们的性能至关重要!我们所有的网站文件都要从磁盘读取,MySQL等程序也要大量使用磁盘存储。

其中大部分都是小文件的读写请求,所以我们使用任意测试脚本关注他的4K性能。

常规云主机的4K速度在 10MB/s 左右,一些性能较好的服务器4K速度能达到 几十MB/s 的速度,一般这些都是 NVME SSD 接口的磁盘,不是常规的SSD固态盘。

一些商家还使用NVME的磁盘做了磁盘阵列速度会更快,高达590MB/s的4K速度。

内存盘

如果您的服务器内存比较大,但是磁盘速度比较慢。可以使用宝塔面板Linux工具箱里的内存盘将内存分出一部分,挂载到文件的缓存目录。

内存盘在服务器断电时会丢失数据,请不要将它作为长期文件存储。建议作为网站页面缓存的目录,这即便文件丢失也不会影响我们的数据安全。

服务器环境程序优化

选择了一台高性能的服务器之后,我们还需要对服务器上安装的环境程序做一些设置。

比如宝塔我们在安装完需要的程序后,建议开启离线模式,可以提高宝塔面板操作的流畅性。

然后就是PHP核MySQL的优化了,其中MySQL的设置最为重要。后期使用当中,大部分是MySQL降低了我们网站的响应速度。

调整 MySQL 和 PHP 参数

WordPress优化–MySQL数据库参数调整

WordPress优化–PHP性能参数调整

使用 Redis 缓存

Redis可以极大的减少我们对数据库的使用,实测可以提高很多响应速度。

下面是一些关于Redis的使用文章。

宝塔linux面板环境wordpress网站安装开启Redis缓存
上面这个文章里面的WordPress Redis插件建议使用下面的 Redis Object Cache Pro

WordPress 数据库缓存插件 Redis Object Cache Pro

Redis数据淘汰策略设置

宝塔Linux面板Redis进程守护(使用Supervisor)

如果网站 MySQL 数据库和网站 PHP 文件是分开不同服务器使用的。

将 Redis 和网站 PHP 文件放在一台服务器上,尽量避免PHP远程调用数据库的行为。Redis放在本地可以提高我们数据的响应速度。

如果网站比较庞大,Redis单独使用了一台主机,要保证Redis和PHP在一个内网上,通过内网1ms及以下的延时来互相通讯。

 

网站程序优化

设置好了服务器的网络和程序,我们就需要继续对网站程序进行优化设置了。

网站速度检测

一般是先对网站测个速,看看自己站点的实际情况,然后再针对性的设置。

网站的速度检测与网站速度慢的原因排查可以查看下文。

WordPress优化–网站速度的检测与原因判断

合并CSS和JS文件

WordPress优化–合并CSS和JS文件

合并这些文件可以降低页面请求数量,一些不适合合并的资源需要我们手动排查下,将其加入排除列表。

使用页面缓存插件

WordPress优化–使用页面缓存插件

页面缓存插件是提升我们网站响应速度的利器。开启页面缓存,如果您是一个不经常更新的博客,它可以将你的网站提升到几乎和静态网站一样的速度。

不同的缓存插件设置有些不同,上面文章没有介绍每个插件的设置,需要您自己设置一下。

使用CDN加速网站

在处理了服务器和网站程序的设置后,我们可以再开启CDN来加速我们的网站。

国内加速

如果您是面向国内用户访问,可以考虑阿里腾讯这些大公司的CDN产品。

个人推荐国内使用腾讯的 EdgeOne CDN ,这个产品有免费的网站防护功能。而且计费合理,对于一些攻击流量不会产生计费。如果被攻击消耗了很多流量可以发工单找客服免掉这些流量。

EdgeOne CDN 设置可以看:腾讯云 EdgeOne CDN设置介绍

国际加速

国际加速仅推荐 CloudFlare CDN 免费而强大,在全球都分布有加速节点,抗攻击性能极其出色。

需要注意考虑CDN回源问题,如果你网站服务器在大陆境内,CloudFlare的回源速度会比较慢,建议网站服务器也放到境外地区。比如美国和欧洲地区,或是香港和新加坡也可以考虑。

CDN缓存设置

CDN加速各家有一些不用设置,这里说下网站基础的加速规则,在各家CDN都通用。

静态文件加速

jpg、jpeg、png、gif、svg、webp、bmp、tif、avif、ico、mp3、mp4、webm、zip、7z、rar、exe、gz

上面这些文件可以设置为最长的缓存时间,此类文件基本不会二次修改。

css、js、woff、woff2、xml

这类文件修改的频率就相对高了一些,每次我们更改网站设置和页面都会产生变动,一般是设置7天左右的缓存时间。如果是不更新的站点,可以将此类似文件时间提高。

节点缓存

各家CDN都有设置节点缓存时间的选项,节点缓存可以设置为1天或7天。你设置高了也没有用,CDN厂商那里不会一直缓存你的文件。如果网站更新少,也可以设为30天。

浏览器缓存

建议设置为12小时,这个是在访客浏览器本地缓存的文件,设置过高可能影响访客下次打开页面的内容更新。

 

其他可选优化设置

Redis Object Cache Pro 除了默认之外,还有一个高性能模式可以查看下面文章来开启。

WordPress优化–使用 Redis Object Cache Pro 高性能模式

 

Posted by 柴郡猫