Автоматическое обследование сайта — мощный инструмент для владельцев и разработчиков WordPress, который помогает своевременно обнаруживать проблемы с производительностью, безопасностью и корректностью работы сайта. В этой статье разберем, как создать собственный сканер, который будет регулярно проверять ключевые параметры вашего сайта, а также рассмотрим примеры плагинов и кода для реализации.
Зачем нужно автоматическое обследование сайта WordPress
Каждый WordPress-сайт со временем сталкивается с различными проблемами: устаревшие плагины, ошибки в базе данных, медленная загрузка страниц, уязвимости безопасности и т.п. Ручная проверка требует много времени и внимания, поэтому автоматизация обследования позволяет:
- Раннее выявление ошибок и сбоев в работе сайта;
- Поддержание высокой производительности;
- Обеспечение безопасности и своевременное обновление компонентов;
- Экономию времени и ресурсов на обслуживание.
Кроме того, регулярные отчёты позволяют владельцам принимать обоснованные решения по оптимизации и развитию ресурса.
Какие параметры стоит проверять при автоматическом обследовании
Для комплексного мониторинга сайта рекомендуем включить проверки следующих параметров:
- Статус основных страниц — проверить, что ключевые страницы возвращают HTTP 200;
- Наличие обновлений — проверить, есть ли обновления для ядра, тем и плагинов;
- Безопасность — проверка на наличие известных уязвимостей, слабых паролей и открытых директорий;
- Производительность — замеры времени отклика сервера и загрузки страниц;
- Ошибки PHP и логи — сканирование файлов логов на предмет ошибок и предупреждений;
- Целостность базы данных — проверка таблиц на ошибки и оптимизация.
Это минимальный набор, который можно расширять под задачи конкретного проекта.
Пример реализации автоматического обследования с помощью PHP и WP Cron
Для автоматизации проверок в WordPress удобно использовать WP-Cron — встроенную систему планировщика задач. Ниже приведён пример создания простого плагина, который будет раз в сутки проверять статус главной страницы, наличие обновлений и записывать результаты в лог.
php
// Функция проверки главной страницы
function wpassist_check_homepage_status() {
$response = wp_remote_head(home_url());
if (is_wp_error($response)) {
return 'Ошибка запроса: ' . $response->get_error_message();
}
$status_code = wp_remote_retrieve_response_code($response);
return $status_code === 200 ? 'OK' : 'Ошибка HTTP ' . $status_code;
}
// Функция проверки обновлений
function wpassist_check_updates() {
include_once(ABSPATH . 'wp-admin/includes/update.php');
wp_update_plugins();
wp_update_themes();
$updates = get_site_transient('update_plugins');
$themes_update = get_site_transient('update_themes');
$plugin_updates = !empty($updates->response) ? count((array)$updates->response) : 0;
$theme_updates = !empty($themes_update->response) ? count((array)$themes_update->response) : 0;
return "Плагины для обновления: $plugin_updates, Темы для обновления: $theme_updates";
}
// Основная функция обследования
function wpassist_run_site_audit() {
$status = wpassist_check_homepage_status();
$updates = wpassist_check_updates();
$log_entry = date('Y-m-d H:i:s') . " - Главная страница: $status; Обновления: $updates\n";
$log_file = WP_CONTENT_DIR . '/wpassist-site-audit.log';
file_put_contents($log_file, $log_entry, FILE_APPEND);
}
// Запускаем задачу через WP-Cron
function wpassist_schedule_audit() {
if (!wp_next_scheduled('wpassist_daily_audit_hook')) {
wp_schedule_event(time(), 'daily', 'wpassist_daily_audit_hook');
}
}
add_action('wp', 'wpassist_schedule_audit');
add_action('wpassist_daily_audit_hook', 'wpassist_run_site_audit');
Этот код создаёт задачу, которая ежедневно проверяет главную страницу и наличие обновлений, затем пишет результаты в файл лога wp-content/wpassist-site-audit.log. Разумеется, набор проверок можно расширять, добавляя другие функции.
Использование готовых плагинов для автоматического обследования
Если хочется готовое решение без программирования, обратите внимание на следующие плагины:
- Health Check & Troubleshooting — диагностирует проблемы с плагинами и темами, проверяет конфигурацию сервера;
- WPScan — сканирует сайт на наличие известных уязвимостей и слабых мест безопасности;
- Clearfy Pro — предлагает набор инструментов для оптимизации, очистки и безопасности, включая автоматические проверки.
Эти плагины помогут быстро внедрить диагностику без глубоких знаний кода.
Расширение функционала: уведомления и отчёты
Чтобы сделать обследование действительно полезным, нужно настроить уведомления о найденных проблемах. Самый простой способ — отправлять email с результатами проверки. В нашем примере добавим отправку письма администратору при обнаружении ошибок.
php
function wpassist_run_site_audit() {
$status = wpassist_check_homepage_status();
$updates = wpassist_check_updates();
$log_entry = date('Y-m-d H:i:s') . " - Главная страница: $status; Обновления: $updates\n";
$log_file = WP_CONTENT_DIR . '/wpassist-site-audit.log';
file_put_contents($log_file, $log_entry, FILE_APPEND);
if ($status !== 'OK' || strpos($updates, '1') !== false) {
wp_mail(get_option('admin_email'), 'Отчёт обследования сайта', $log_entry);
}
}
Таким образом, вы будете оперативно получать уведомления о проблемах и сможете быстро реагировать.
Практические советы по внедрению автоматического обследования
При создании и использовании подобных систем учтите следующие моменты:
- Не перегружайте сервер частыми проверками, особенно если сайт большой. Оптимально — один раз в сутки или реже;
- Обрабатывайте ошибки корректно, чтобы скрипт не прерывался и не приводил к сбоям;
- Храните логи в безопасном месте, чтобы никто посторонний не получил доступ к внутренним данным сайта;
- Для сложных проектов рассмотрите интеграцию с внешними сервисами мониторинга;
- Регулярно обновляйте логику проверок, учитывая новые угрозы и требования.
Автоматизация обследования — важный шаг к стабильной и безопасной работе WordPress-сайта.