记WordPress博客优化过程

hurry 发布于 2025-11-21 67 次阅读


记WordPress博客优化过程

零.结果

受限于机器的带宽和硬件,优化后测速itdog快速测评只能做到良的水平,但是缓慢测评(没有并发限制),能跑出全国全深绿且无任何访问出错的情况。

image-20251121205715586

image-20251121205756493

在没有套CDN的情况下,可以看到平均延迟不到0.25s,意味着网页就是秒开。

特别说明:1.本文章分享的是该博客的优化过程,并不适合所有WordPress博客,仅起到参考作用。

2.本文章借鉴https://www.cheshirex.com/wordpress-speeds (WordPress终极优化指南 | 柴郡猫)想要每个参数的更详细的解释以及设置可以参考他的文章,本教程基于自己的实际情况做了取舍。

一.前期准备

你需要以下WordPress插件:

(1)**Autoptimize **通过优化 CSS, JS, 图像, Google字体等来使您的网站更快。

注:本来一开始用的是WP Rocket,但是这个插件老是卡Bug,而且配置不会生效,所以就换用了这个Autoptimize插件。

(2)**Nginx Helper **Cleans nginx's fastcgi/proxy cache or redis-cache whenever a post is edited/published. Also does few more things.

(3)Object Cache Pro A business class Redis object cache backend for WordPress.

你需要以下PHP扩展:

(1)opcache

(2)memcached

(3)redis

你需要以下软件:

(1)redis

二.设置

注:本教程均基于宝塔面板

(1)先安装Redis,并记住密码

image-20251121222825557

(2)到软件商店安装三个PHP扩展

image-20251121222904082

(3)打开网站根目录下的wp-config.php,加入以下代码

define('WP_REDIS_CONFIG', [
'token' => 'XXXX', //自行获得
'host' => '127.0.0.1',
'port' => 6379,
'password' => '88888888', //如果没有设置密码,可以删掉这一块
'database' => 0,
'maxttl' => 3600 * 24 * 7,
'timeout' => 1.0,
'read_timeout' => 1.0,
'prefetch' => true,
'split_alloptions' => true,
'strict' => true,
'debug' => false,
]);
image-20251121225000146

(4)安装三个WordPress拓展,配置可以不用动

三.调整软件配置

(1)打开宝塔mysqld配置

image-20251121225335532

按照自己的配置选,我这里选4-8G

(2)更改Mysqld配置

image-20251121225423877

query_cache_size这项改成0

(3)重启Mysql

(4)打开redis配置,然后找到第599行

image-20251121225601600

把前面的#号去掉,把后面修改成allkeys-lru

(5)保存并重启redis。

四.禁用XML-RPC

打开 wp-include/functions.php,添加以下代码

add_filter( 'xmlrpc_enabled', '__return_false' );

将以下代码加入到.htaccess,添加以下代码

<Files xmlrpc.php>
  <IfModule mod_authz_core.c>
    Require all denied
  </IfModule>
  <IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
  </IfModule>
</Files>

五.后续

(1)

image-20251121225849861

本来,我以为一切都大功告成了,然后我在查看网页请求的时候,发现有几个JS请求失败了。

image-20251121230015916

然后,这应该是我这个主题的bug,或者是插件的bug,有一些JS文件会压缩失败,但是插件又会请求他压缩后的文件,所以就会报错,所以我就到主题的目录把js文件都拷贝到了他请求的目录,404的问题就解决了。(每个JS压缩后只会降低0.0几KB,所以我就没有压缩了)

(2)

本来我以为一切再次大功告成了。然后我使用浏览器控制台检测我网页的覆盖率,发现有一个CSS覆盖率只有0.06%,几乎没有使用,然后有10多KB,所以我尝试把这个CSS移除,并没有影响网站访问,又节约了260ms的访问时间。

image-20251121230851599