Автоматический отчет о проблемах сайта WordPress — это мощный инструмент для своевременного выявления и устранения ошибок, снижающих производительность и безопасность вашего ресурса. В этой статье мы подробно рассмотрим, как настроить такую систему самостоятельно с помощью кода и популярных плагинов, а также поделимся практическими советами по анализу полученных данных.
Почему важен автоматический отчет о проблемах WordPress
Управление сайтом на WordPress требует постоянного контроля за состоянием системы. Часто ошибки на сайте остаются незамеченными, и только пользователи или поисковые роботы сигнализируют о проблемах. Автоматический сбор и отправка отчетов позволяет:
- Выявлять ошибки PHP и предупреждения в логах сервера;
- Отслеживать сбои в работе плагинов и тем;
- Контролировать производительность (задержки, перегрузки);
- Получать уведомления о пробоях в безопасности;
- Экономить время на мониторинг вручную.
Для реализации этого функционала можно использовать готовые плагины или написать свой скрипт, интегрированный с WordPress.
Использование плагинов для автоматического отчета о проблемах
Плагин WP Health
WP Health — бесплатный и легкий плагин, который собирает информацию о состоянии сайта и высылает регулярные отчеты на почту. Он отслеживает ошибки PHP, статус базы данных, наличие обновлений и многое другое.
Для установки:
- Перейдите в админку WordPress → Плагины → Добавить новый;
- В поиске введите «WP Health» и установите плагин;
- Активируйте и настройте интервал отчетов в настройках плагина.
Плагин автоматически соберет логи и отправит их в удобном виде.
Плагин Query Monitor
Query Monitor — популярный инструмент для разработчиков, который также позволяет отслеживать ошибки, запросы к базе данных и хук-активности. Для автоматизации отчетов можно дополнительно использовать WP Crontrol и настраивать отправку данных на почту с помощью собственного кода.
Создаем свой скрипт для автоматического отчета в WordPress
Если хотите иметь полный контроль и минимизировать использование сторонних плагинов, можно написать свой код. Рассмотрим пример, который собирает ошибки PHP из логов и отправляет их на почту ежедневно.
Шаг 1. Парсим лог ошибок сервера
Сначала нужно убедиться, что ваш сервер сохраняет ошибки PHP в файл. Обычно это error_log или wp-content/debug.log при включенном режиме отладки WordPress.
Шаг 2. Функция для чтения файла лога и фильтрации новых ошибок
function wp1_get_new_errors_from_log($log_file, $last_check_time) {
if (!file_exists($log_file)) {
return [];
}
$lines = file($log_file);
$new_errors = [];
foreach ($lines as $line) {
if (preg_match('/\[(.*?)\]/', $line, $matches)) {
$time_str = $matches[1];
$time = strtotime($time_str);
if ($time && $time > $last_check_time) {
$new_errors[] = $line;
}
}
}
return $new_errors;
}
Эта функция получает все новые строки из лога, появившиеся после последней проверки.
Шаг 3. Отправка отчета на почту
function wp1_send_error_report() {
$log_file = WP_CONTENT_DIR . '/debug.log';
$last_check_time = get_option('wp1_last_error_check', 0);
$errors = wp1_get_new_errors_from_log($log_file, $last_check_time);
if (empty($errors)) {
return;
}
$message = implode("\n", $errors);
wp_mail('admin@example.com', 'Отчет о новых ошибках WordPress', $message);
update_option('wp1_last_error_check', time());
}
Шаг 4. Планировщик задач WP-Cron
Чтобы запускать отчет ежедневно, зарегистрируем событие:
add_action('wp1_daily_error_report_event', 'wp1_send_error_report');
function wp1_schedule_error_report() {
if (!wp_next_scheduled('wp1_daily_error_report_event')) {
wp_schedule_event(time(), 'daily', 'wp1_daily_error_report_event');
}
}
add_action('wp', 'wp1_schedule_error_report');
Теперь функция wp1_send_error_report будет вызываться каждый день и отправлять свежие ошибки.
Дополнительные советы по улучшению автоматических отчетов
Используйте плагин Clearfy Pro для оптимизации и контроля
Clearfy Pro помогает отключать ненужные функции WordPress, улучшать безопасность и контролировать логи. Это отличный помощник в тандеме с вашей системой отчетов.
Добавьте информацию о производительности
В отчет полезно включать данные о скорости загрузки страниц, чтобы отслеживать ухудшения работы сайта. Для этого можно использовать плагин WP Performance Profiler или писать код с использованием функции microtime.
Отлавливайте ошибки JavaScript
Большинство ошибок в WordPress связаны не только с PHP, но и с JavaScript. Для сбора JS-ошибок используйте сервисы типа Sentry или интегрируйте простой скрипт, который отправляет ошибки на сервер.
Пример кода для сбора JS-ошибок и отправки на сервер
window.onerror = function(msg, url, lineNo, columnNo, error) {
var data = {
message: msg,
script: url,
line: lineNo,
column: columnNo,
stack: error ? error.stack : null
};
fetch('/wp-json/wp1/v1/js-error', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
};
На стороне сервера нужно создать REST API эндпоинт для приема и хранения этих данных.
Заключение
Автоматический отчет о проблемах WordPress — это не только удобство, но и необходимость для качественного администрирования сайта. Используйте готовые плагины, если не хотите тратить время на код, либо создайте собственные решения, чтобы получить гибкий и точный мониторинг. В любом случае, регулярный анализ отчетов поможет своевременно устранять проблемы и обеспечивать стабильную работу вашего проекта.