对于解决博客站点打开速度,常规的想法是通过CDN来提高站点的打开速度,但是有个问题就是免费的CDN不好用,好用的CDN价格贵,尤其是一个个人博客站点,只是纯粹自己写写博客,根本没必要去花钱在这种地方,通过简单的优化,我们的提高站点的打开速度。

在优化站点之前,我们先分析下影响站点的速度有哪些?而导致博客打开速度慢的原因有很多,例如服务器本身配置、WordPress主题、插件、用户等诸多原因。
所以,我们主要从服务器、WordPress 两个部分进行一些简单优化,让站点打开速度有所提升。
基本信息
服务器配置:腾讯云 4核 4G 5M 轻量云服务器。
系统版本:CentOS 7.9.2009(腾讯云专享版)
WordPress主题:Wing。
服务器优化
1.PHP优化
首先,我们在宝塔控制面板的软件商店,搜索安装 Redis 插件,然后打开 PHP 管理界面,在「安装扩展」设置里 找到 Redis 缓存器和 fileinfo 通用扩展,安装完成后选择「Session配置」,将存储模式更改为 redis ,其他选项默认并保存设置,同时记录下 「Session配置」下的端口信息,并到服务器安全组进行端口方行,随后重启下 PHP服务即可。

这里值得注意的是,虽然目前 WordPress主题核心对PHP5.6.20至8.0版本提供支持,但是为了兼容大部分主题和避免出错,这里推荐使用 PHP 7.4版本即可。
2.MySQL配置
接下来我们在宝塔软件商店-已安装插件中,打开 MySQL 管理面板,将「性能调整」中的优化方案调整为服务器相同配置,例如我的服务器内存为4G,则将优化方案更改为4-8G,保存后重启MySQL服务即可。

WordPress管理后台优化:
1.关闭谷歌字体、移除后台部分更新
因为国内网络安全的问题,我们并不能很好的使用谷歌部分服务,加上部分后台更新服务也会拖慢我们站点的打开速度,所以需要关闭谷歌字体,并禁用后台部分更新服务自动检查。
操作方法:打开外观 > 主题编辑器,找到 functions.php 模版文件,将下方代码复制粘贴在文件最后部分,并更新即可。
(一般部分选题已经支持本项优化,可根据具体情况进行操作)
// 关闭谷歌字体
function xintheme_remove_gutenberg_styles($translation, $text, $context, $domain)
{
if($context != 'Google Font Name and Variants' || $text != 'Noto Serif:400,400i,700,700i') {
return $translation;
}
return 'off';
}
// 彻底关闭自动更新
add_filter('automatic_updater_disabled', '__return_true');
// 关闭更新检查定时作业
remove_action('init', 'wp_schedule_update_checks');
// 移除已有的版本检查定时作业
wp_clear_scheduled_hook('wp_version_check');
// 移除已有的插件更新定时作业
wp_clear_scheduled_hook('wp_update_plugins');
// 移除已有的主题更新定时作业
wp_clear_scheduled_hook('wp_update_themes');
// 移除已有的自动更新定时作业
wp_clear_scheduled_hook('wp_maybe_auto_update');
// 移除后台内核更新检查
remove_action( 'admin_init', '_maybe_update_core' );
// 移除后台插件更新检查
remove_action( 'load-plugins.php', 'wp_update_plugins' );
remove_action( 'load-update.php', 'wp_update_plugins' );
remove_action( 'load-update-core.php', 'wp_update_plugins' );
remove_action( 'admin_init', '_maybe_update_plugins' );
// 移除后台主题更新检查
remove_action( 'load-themes.php', 'wp_update_themes' );
remove_action( 'load-update.php', 'wp_update_themes' );
remove_action( 'load-update-core.php', 'wp_update_themes' );
remove_action( 'admin_init', '_maybe_update_themes' );
2.移除不必要插件
在我们刚部署 WordPress 博客后,会看到一些自带插件,例如某垃圾评论等插件,对不需要的插件进行清理禁用或删除等清理,一是部分插件恶意插件会存在严重的漏洞,二是当主题未能和插件进行较好的兼容适配时,也会导致拖慢站点速度、主题部分功能异常、失效等情况,所以插件虽好,但请克制使用。
多说几句,当站点变慢时,可以禁用全部插件,并挨个启用排查,可以找出具体哪个插件出现了问题,并有针对性的进行解决。
3.主题
主题可以说是 WordPress 建站的精髓之一了,通过主题,我们可以基于 WordPress 搭建出各种各样的站点,但是主题的臃肿和部分优化不彻底,也是影响站点打开速度的主要原因之一,所以选择一款优化较好或者轻量化的主题也较为重要,如无太大要求,WordPress 默认的2022主题就挺好。
4.图片优化
图片优化也是很有必要性的,尤其是如今一张图片是大小轻则几M,重则十几M,如果使用原图上传势必会严重拖慢我们的站点,所以一般选择第三方图床、或者通过插件对上传的图片进行压缩处理,也可以手动对图片压缩为web格式后再上传,都能尽可能的减少图片对站点的速度影响。
图床的优点就是方便快捷,但免费的图床有随时跑路的风险,所以在图片的优化上 ,根据自己的需求进行选择即可,我个人选择的方案是通过插件对上传的图片进行压缩处理,毕竟图片不是很多。
5.屏蔽后台导航栏
当我们登陆 WordPress 管理后台时,如果访问博客首页,最上方会出现 WordPress 的后台导航栏,如果不需要让导航栏显示的话,我们只需要将下方代码 添加在 functions.php 文件中即可。
5月8日22:00更新:后台 > 用户 > 个人资料 中取消 「在浏览站点时显示工具栏 」选项即可,节省一行代码✅ 感谢@Tokin 提醒?
function hide_admin_bar($flag) {
return false;
}
add_filter('show_admin_bar','hide_admin_bar');

6.图标引用
在博客美化的时候,在导航栏添加图标时大部分博主都会有的操作,除了主题自带的图标支持,我们也可以引用其他的图标来源,一般分为三步:引用图标JavaScript代码、添加通用CSS样式以及图标代码调用即可,具体的方法我在另一篇博客有写,有兴趣可以看看:WroodPress博客站点引用阿里图标。
7.让wordpress首页不显示某一分类文章
通常,我们会有这样一个需求,即让某一篇或者多篇博文不在首页等地方展示,例如“关于博主”等,我们只需要添加一个或多个分类,将分类ID进行隐藏即可。
操作方法:依然是将下方代码复制并粘贴在 functions.php 文件中即可,记得要替换分类ID。
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-37' ); //你要排除的分类ID
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );
分类ID获取:打开文章分类管理后,将鼠标放在需要查看的分类名称上(不要点击),此时查看浏览器左下角会有一个长链接,找到 “ID= ” 后面的数字,就是当前分类的ID。

8.Gravata头像优化
当我们给被人的博客评论是,会有一个“邮箱地址”的必填项,当填写邮箱地址后,我们就可以在对方博客评论区看到我们自己的头像,甚至部分主题只是填写QQ号获取头像,也是通过QQ号码获取QQ邮箱的头像(一般QQ和QQ邮箱头像一致)。
但是 WordPress 默认支持的 Gravata头像,Gravata头像作为全球主流互联网头像平台,因为某些原因在国内并不能很好的显示,甚至不显示,这就导致别人在我们博客评论后没有头像显示或者头像是其他非正常状态(默认、图片裂开),这些细节会给访问博客的人来带不好的体验。
所以关于头像的解决方案,一般是通过CDN加速,这也是大部分主题常用的方法,除此之外还可以使用国行版 WordPress 等方法,这里我推荐另一平台:Cravatar,这是国内一家提供互联网头像服务平台,目前也是我个人在用的一个方案。
官方介绍,他们根据 Cravatar->Gravatar->QQ 三级依次调用头像,对于博客站,这平均可以为 70% 的访客提供准确的头像。
使用方法:在 Cravatar 平台(https://cravatar.cn/)注册账号并设置头像后,将下方代码复制并粘贴在 functions.php 文件中即可。
if ( ! function_exists( 'get_cravatar_url' ) ) {
/**
* 替换Gravatar头像为Cravatar头像
*
* Cravatar是Gravatar在中国的完美替代方案,你可以在https://cravatar.cn更新你的头像
*/
function get_cravatar_url( $url ) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com'
);
return str_replace( $sources, 'cravatar.cn', $url );
}
add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}
if ( ! function_exists( 'set_defaults_for_cravatar' ) ) {
/**
* 替换WordPress讨论设置中的默认头像
*/
function set_defaults_for_cravatar( $avatar_defaults ) {
$avatar_defaults['gravatar_default'] = 'Cravatar 标志';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'set_defaults_for_cravatar', 1 );
}
以上就是 WordPress 博客站点的简单优化和一些常见问题的优化处理方法,通过简单的操作就能让提升站点打开速度,非常的实用。
后续更新 2022.5.16
以上优化仅针对比较简单的主题或者原生主题,大多情况下,例如头像cdn、谷歌字体加载移除或加速、禁用版本号等基本优化,很多主题都原生支持,所以我们日常使用只需要重点优化图片和服务器端即可。