本文约 2,172 字,预计阅读 6 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:那个百分比分数到底意味着什么
“站点健康”页面会给一个分数(比如 82%),列出”关键问题”和”建议改进项”。很多人看到关键问题就紧张,看到建议项就忽略——这两个反应都不完全对。
真相是:这个评分是给”最佳实践”打的,不是给”能否运行”打的。某些警告不影响站点工作,某些看似不起眼的建议项却直接影响性能。
原理分析:站点健康的检测项从哪来
站点健康(Site Health)是 WordPress 5.2 引入的功能,检测分两类:
- 状态(Status):直接检查环境——PHP 版本、MySQL 版本、扩展是否齐全、HTTPS、目录权限等;
- 调试(Debug):收集信息用于排查——服务器信息、数据库表大小、插件列表、主题信息。
还有一组是插件自己注册的检测项(比如缓存插件会检查对象缓存是否可用)。
保姆级实操:逐条解读
一、关键问题(必须处理)
| 检测项 | 含义 | 处理 |
|---|---|---|
| PHP 版本过旧 | 当前 PHP 低于官方推荐(现为 8.x,最低 7.4) | 升级 PHP,先在测试环境验证插件兼容 |
| 缺少必需扩展 | 如 mbstring、curl、gd |
安装对应扩展 |
| HTTPS 未启用 | 站点地址为 http | 申请证书并强制跳转 |
| 后台被搜索引擎阻止 | blog_public 为 0 |
设置 → 阅读 → 取消”建议搜索引擎不索引本站点” |
| 存在默认主题 | 检测是否有官方默认主题兜底 | 保留一个默认主题,用于排障切换 |
“存在默认主题”这条值得解释:WordPress 要求至少有一个官方默认主题(如 Twenty Twenty-Four)作为应急兜底。主题出问题时可以切换过去。删光默认主题会触发这个警告。
二、建议改进项(按实际影响排序)
| 检测项 | 真实影响 | 建议 |
|---|---|---|
| 未启用持久对象缓存 | 影响较大:每次请求重复查库 | 装 Redis / Memcached |
| WP-Cron 未正常运行 | 定时发布、备份任务失效 | 改为系统 cron |
| 数据库版本过旧 | 性能与安全 | 升级 MariaDB / MySQL |
| HTTP 请求被阻止 | 更新、插件 API 调用失败 | 检查防火墙出站规则 |
| 存在非活动插件 | 轻微(但增加攻击面) | 删除不用的插件 |
| 主题未针对区块编辑器优化 | 取决于你是否用区块编辑器 | 不用可忽略 |
| PHP 时区设置无效 | 定时发布时间偏差 | wp-config.php 或 php.ini 设时区 |
| 调试信息泄露 | WP_DEBUG_DISPLAY 开启 | 生产环境关闭 |
三、”信息”标签页(排查时使用)
这里能看到:
- 服务器:Web 服务器类型、PHP 版本与扩展、数据库版本;
- 数据库:各表大小(找膨胀的表);
- WordPress:常量状态、目录大小、媒体数量;
- 活动插件 / 非活动插件 / 必用插件列表;
- 主题信息、父主题、子主题关系。
排查”数据库为什么这么大”时,直接看这个页面的数据库表大小排序,比进 phpMyAdmin 快。
四、用 WP-CLI 获取同样的信息
wp core version
wp package install wp-cli/doctor-command # 第三方扩展
wp doctor check --all # 一键体检
wp doctor 是社区维护的检查工具,能批量检查:核心校验和、PHP 版本、cron 状态、插件更新、慢查询等。
wp doctor check core-update autoload-options constant-savequeries \
php-version plugin-deactivated
五、排障模式(Troubleshooting Mode)
站点健康页面底部有个”启用故障排除模式”,它会只对当前登录用户禁用所有插件并切换到默认主题,访客看到的是正常站点。这是排查插件冲突最安全的方式,不影响线上用户。
常见踩坑与失败案例
- 盲目追求 100% —— 装了一堆优化插件只为消掉警告,反而拖慢站点。评分高不等于快。
- 案例:某站提示”未启用持久对象缓存”,站长装了 Redis 插件但服务器没 Redis 服务,插件反复重试导致每次请求都超时。正确处理顺序是:先在服务器装 Redis 服务端 → 再装 PHP 扩展 → 最后启用插件。
- HTTP 请求被阻止导致无法更新 —— 服务器防火墙禁了出站,或
WP_HTTP_BLOCK_EXTERNAL为 true。检查wp-config.php与防火墙。 - 忽略”定时任务未运行” —— 结果定时发布的文章一篇都没发。低流量站点尤其明显,因为 WP-Cron 靠访问触发。
- 故障排除模式忘记退出 —— 只有你自己看到”裸站”,误以为网站坏了。退出后恢复正常。
总结
看待站点健康的正确姿势:关键问题立即处理,建议项按实际影响排序处理,”信息”页当排查工具用。其中我认为真正值得优先做的是三项——升级 PHP、启用对象缓存、把 WP-Cron 换成系统 cron,这三项对性能和可靠性的提升最直接。至于主题是否支持区块编辑器、有没有非活动插件这类,按自己实际情况决定即可,不必为了分数折腾。
