WordPress 从 5.2 版本开始引入了“站点健康”(Site Health)功能,在后台工具菜单下提供了“站点健康”页面。它从多个维度检测网站的安全性和性能,识别出潜在问题并给出修复建议。除此之外,你可以通过自定义监控和定期检查来进一步确保网站的长期稳定运行。

站点健康页面分为“状态”和“信息”两个标签。“状态”标签会显示关键问题、推荐改进项和通过测试的项。“信息”标签则详细列出了 WordPress 版本、主题、插件、服务器环境、PHP 配置、数据库信息等,对于排查问题非常有价值。

站点健康检查是模块化的,你可以添加自己的健康检查项。使用 site_status_tests 过滤器可以注册自定义检查:

add_filter('site_status_tests', 'add_custom_site_health_tests');
function add_custom_site_health_tests($tests) {
    $tests['direct']['custom_cron_check'] = array(
        'label' => '定时任务检查',
        'test' => 'check_custom_cron_status'
    );
    return $tests;
}

function check_custom_cron_status() {
    $result = array(
        'label' => '定时任务运行正常',
        'status' => 'good',
        'badge' => array('label' => '性能', 'color' => 'blue'),
        'description' => '所有定时任务都在正常执行。'
    );
    
    // 检查是否有长时间未执行的定时任务
    $cron = _get_cron_array();
    if (!empty($cron)) {
        foreach ($cron as $timestamp => $tasks) {
            if ($timestamp < (time() - 3600)) {
                $result['status'] = 'critical';
                $result['label'] = '部分定时任务执行延迟超过 1 小时';
                break;
            }
        }
    }
    return $result;
}

这个例子添加了一个检查定时任务是否延迟执行的健康测试项。

除了 WordPress 内置的站点健康检查,服务器层面的监控同样重要。你可以定期检查磁盘空间、内存使用率、数据库连接数、PHP 错误日志等系统指标。这些信息可以通过服务器管理面板查看,也可以通过 WP-CLI 命令获取。

对于数据库的监控,定期检查表是否有损坏是一个好习惯。使用 wp db check 命令可以快速检测所有表的状态。结合系统 Cron,你可以每周自动运行一次检查并发送报告。

PHP 错误日志是排查网站问题的重要线索。建议在 wp-config.php 中开启日志记录:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

这样错误会记录在 /wp-content/debug.log 文件中,而不是显示在前端。定期检查这个日志文件,可以提前发现潜在问题,比如插件弃用警告、数据库查询超时等。

站点健康页面中的“信息”标签可以导出为文本格式,这在联系技术支持或分享环境信息时非常有用。点击“复制站点信息到剪贴板”即可获取完整的系统信息报告。

对于多站点网络,站点健康检查同样适用。但要注意,网络模式下有些检查项需要超级管理员权限,普通站点管理员可能看不到全部信息。

一个典型的定期检查计划应该包括以下项目:

  • 每日:检查 debug.log 是否有新增错误

  • 每周:检查数据库表是否正常(wp db check

  • 每周:检查磁盘空间是否充足

  • 每月:检查所有主题和插件是否有可用更新

  • 每月:验证网站备份是否成功完成

结合 WP-CLI 和系统 Cron,你可以把这些检查自动化。比如每天凌晨运行 wp core check-updatewp plugin list --update=availablewp theme list --update=available 等命令,并发送邮件通知管理员。

站点健康功能体现了 WordPress 对系统稳定性的重视。作为网站管理员,理解并运用这些检查工具,主动发现并解决问题,远比等到网站出故障后再去紧急修复要好得多。

一个健康的 WordPress 网站,不仅需要正确的代码和配置,还需要持续的监控和维护。把站点健康检查作为常规运维的一部分,能让你的网站跑得更稳、更久。