Как создать автоматический мониторинг сайта на WordPress для отслеживания доступности и ошибок

Для владельцев сайтов на WordPress важно не только создавать качественный контент и поддерживать дизайн, но и постоянно следить за состоянием сайта: его доступностью, скоростью загрузки и наличием ошибок. В этой статье мы подробно разберём, как настроить автоматический мониторинг сайта на WordPress с помощью плагинов и собственного кода, чтобы своевременно получать уведомления о сбоях и проблемах.

Почему важен мониторинг сайта на WordPress

Автоматический мониторинг помогает быстро выявлять такие проблемы, как:

  • недоступность сайта (падение сервера, ошибки хостинга);
  • ошибки PHP и базы данных;
  • проблемы с производительностью;
  • появление битых ссылок;
  • проблемы с SSL-сертификатом и др.

Ручная проверка занимает много времени и неэффективна. Автоматизация мониторинга с помощью плагинов и скриптов позволяет сразу получать уведомления по Email или мессенджерам и быстро реагировать.

Выбор плагина для мониторинга WordPress

Существует несколько плагинов, которые помогут реализовать мониторинг без сложной настройки:

  • WP Umbrella — специализированный сервис с плагином для мониторинга ошибок, обновлений и доступности. Позволяет получать детальные отчёты и уведомления.
  • Jetpack — модуль "Site Stats" и "Downtime Monitoring" информируют о статусе сайта и ошибках.
  • ManageWP Worker — инструмент для централизованного управления и мониторинга нескольких сайтов с отчётами о доступности и безопасности.
  • WP Health — лёгкий плагин для проверки состояния сайта, включая нагрузку на сервер, ошибки и обновления.

Например, для подключения WP Umbrella достаточно установить плагин с официального сайта WPSHOP, зарегистрироваться и связать сайт с сервисом.

Настройка простого мониторинга доступности с помощью кода

Если вы предпочитаете самостоятельное решение без сторонних сервисов, можно написать простой скрипт, который будет периодически проверять сайт и отправлять уведомления. Рассмотрим пример функции wpmonitor_check_site_status(), которую можно добавить в файл functions.php вашей темы или создать отдельный плагин.

function wpmonitor_check_site_status() {
    $response = wp_remote_get(home_url(), array('timeout' => 10));
    if (is_wp_error($response)) {
        wpmonitor_send_alert('Сайт недоступен: ' . $response->get_error_message());
        return;
    }
    $status_code = wp_remote_retrieve_response_code($response);
    if ($status_code !== 200) {
        wpmonitor_send_alert('Некорректный HTTP статус: ' . $status_code);
    }
}

function wpmonitor_send_alert($message) {
    $admin_email = get_option('admin_email');
    wp_mail($admin_email, 'Мониторинг сайта: проблема обнаружена', $message);
}

Далее необходимо создать крон-задачу, которая будет запускать wpmonitor_check_site_status с нужной периодичностью, например, раз в 10 минут. Для этого используйте WP-Cron:

add_action('wpmonitor_cron_check', 'wpmonitor_check_site_status');

if (!wp_next_scheduled('wpmonitor_cron_check')) {
    wp_schedule_event(time(), 'ten_minutes', 'wpmonitor_cron_check');
}

add_filter('cron_schedules', function($schedules) {
    $schedules['ten_minutes'] = array(
        'interval' => 600,
        'display' => 'Каждые 10 минут'
    );
    return $schedules;
});

Мониторинг ошибок PHP и логирование

Кроме проверки доступности, важно отслеживать PHP-ошибки, которые могут нарушить работу сайта. WordPress по умолчанию не выводит ошибки на экран, но можно настроить их логирование:

  • В файле wp-config.php включите режим отладки и логирования:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Ошибки будут записываться в файл wp-content/debug.log. Для автоматического мониторинга можно написать плагин, который будет сканировать этот файл и при обнаружении новых ошибок отправлять уведомления. Вот пример функции, которая проверяет файл и отправляет письмо:

function wpmonitor_check_php_errors() {
    $log_file = WP_CONTENT_DIR . '/debug.log';
    if (!file_exists($log_file)) {
        return;
    }
    $last_size = get_option('wpmonitor_log_size', 0);
    clearstatcache(true, $log_file);
    $current_size = filesize($log_file);
    if ($current_size > $last_size) {
        $fp = fopen($log_file, 'r');
        fseek($fp, $last_size);
        $new_errors = fread($fp, $current_size - $last_size);
        fclose($fp);
        if (!empty(trim($new_errors))) {
            wpmonitor_send_alert("Новые PHP ошибки:\n" . $new_errors);
        }
        update_option('wpmonitor_log_size', $current_size);
    }
}

Добавьте эту проверку в крон вместе с мониторингом доступности, чтобы иметь полный контроль над состоянием сайта.

Дополнительные советы по мониторингу и оптимизации

Мониторинг SSL-сертификата

Срок действия SSL может истечь, и посетители увидят предупреждения безопасности. Для контроля используйте плагин SSL Zen или пишите простой запрос на проверку даты окончания сертификата через PHP:

function wpmonitor_check_ssl_expiry() {
    $stream = stream_context_create(array("ssl" => array("capture_peer_cert" => true)));
    $read = @stream_socket_client('ssl://' . parse_url(home_url(), PHP_URL_HOST) . ':443', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $stream);
    if (!$read) {
        wpmonitor_send_alert('Не удалось проверить SSL сертификат: ' . $errstr);
        return;
    }
    $cert = stream_context_get_params($read)['options']['ssl']['peer_certificate'];
    $cert_info = openssl_x509_parse($cert);
    $expiry_timestamp = $cert_info['validTo_time_t'];
    $days_left = ($expiry_timestamp - time()) / 86400;
    if ($days_left < 30) {
        wpmonitor_send_alert('SSL сертификат истекает через ' . floor($days_left) . ' дней');
    }
}

Мониторинг битых ссылок

Ошибки 404 снижают SEO и ухудшают пользовательский опыт. Для регулярной проверки битых ссылок можно использовать плагин Broken Link Checker. Он автоматически сканирует сайт и уведомляет об ошибках в админке и по почте.

Использование WPSHOP для расширенного мониторинга

Если хотите более продвинутые инструменты, обратите внимание на Clearfy Pro для оптимизации и очистки сайта, а также на WP Umbrella для комплексного мониторинга с удобной панелью и отчётами.

Выводы и рекомендации

Автоматический мониторинг сайта на WordPress — это неотъемлемая часть поддержки стабильной работы и безопасности. В статье мы рассмотрели несколько вариантов — от простых плагинов до собственных скриптов с использованием WP-Cron и стандартных средств языка PHP. Выбирайте подходящий подход в зависимости от ваших навыков и требований.

Настройте регулярные проверки доступности, ошибок PHP, SSL-сертификата и битых ссылок, чтобы предупреждать проблемы до того, как они затронут посетителей и поисковые системы.

Как избежать конфликтов плагинов в WordPress
06.12.2025
Как использовать хуки в WordPress: практическое руководство
05.11.2025
Как создать автоматический мониторинг сайта на WordPress для отслеживания доступности и ошибок
16.12.2025
Оптимизация базы данных WordPress для повышения скорости и надежности
25.11.2025
Как создать собственный шорткод WordPress: практическое руководство с примерами
17.11.2025