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


在没有套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,并记住密码

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

(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,
]);

(4)安装三个WordPress拓展,配置可以不用动
三.调整软件配置
(1)打开宝塔mysqld配置

按照自己的配置选,我这里选4-8G。
(2)更改Mysqld配置

把query_cache_size这项改成0
(3)重启Mysql
(4)打开redis配置,然后找到第599行

把前面的#号去掉,把后面修改成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)

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

然后,这应该是我这个主题的bug,或者是插件的bug,有一些JS文件会压缩失败,但是插件又会请求他压缩后的文件,所以就会报错,所以我就到主题的目录把js文件都拷贝到了他请求的目录,404的问题就解决了。(每个JS压缩后只会降低0.0几KB,所以我就没有压缩了)
(2)
本来我以为一切再次大功告成了。然后我使用浏览器控制台检测我网页的覆盖率,发现有一个CSS覆盖率只有0.06%,几乎没有使用,然后有10多KB,所以我尝试把这个CSS移除,并没有影响网站访问,又节约了260ms的访问时间。


Comments NOTHING