Для поддержания сайта на WordPress в отличном техническом состоянии важно регулярно контролировать его производительность. В этой статье мы подробно разберем, как создать автоматический отчет по основным метрикам производительности WordPress, используя как готовые плагины, так и собственные решения с кодом. Это позволит своевременно выявлять узкие места и оптимизировать работу сайта.
Почему важен автоматический отчет по производительности WordPress
Ручное тестирование сайта — процесс трудоемкий и не всегда регулярный. Автоматические отчеты помогают:
- Отслеживать скорость загрузки страниц;
- Мониторить использование ресурсов сервера;
- Выявлять ошибки и предупреждения в логах;
- Получать данные о нагрузке и трафике;
- Анализировать влияние обновлений плагинов и тем на производительность.
Регулярные отчеты позволяют вовремя принимать меры по оптимизации и избегать снижения конверсии и ухудшения пользовательского опыта.
Использование плагина Query Monitor для сбора данных
Плагин Query Monitor — один из самых мощных инструментов для диагностики производительности. Он показывает:
- Время выполнения запросов к базе данных;
- Ошибки PHP и предупреждения;
- Время загрузки скриптов и стилей;
- Информацию о хуках и действиях.
Однако по умолчанию Query Monitor выводит данные в админ-панели, что неудобно для автоматизации отчетов. Для этого можно использовать дополнительные расширения или написать свой код.
Пример кода для выгрузки данных Query Monitor в лог
Добавим функцию, которая будет сохранять основные показатели в файл для последующего анализа:
add_action('shutdown', 'wplog_save_query_monitor_report');
function wplog_save_query_monitor_report() {
if (!is_admin()) return; // Только для админки
if (!class_exists('QM_Collectors')) return;
$collectors = QM_Collectors::get_instance();
$db_queries = $collectors->db->get_queries();
$report = "Отчет производительности - " . date('Y-m-d H:i:s') . "\n";
$report .= "Количество запросов к БД: " . count($db_queries) . "\n";
$total_time = 0;
foreach ($db_queries as $query) {
$total_time += $query['time'];
}
$report .= "Общее время запросов: " . round($total_time, 4) . " сек.\n";
file_put_contents(WP_CONTENT_DIR . '/performance_reports.txt', $report, FILE_APPEND);
}
Этот код добавляет в конец файла performance_reports.txt информацию о количестве и суммарном времени SQL-запросов при каждом заходе в админку. По аналогии можно расширить отчет, добавив другие данные Query Monitor.
Автоматизация отчетности с помощью Cron и WP Expert Review
Для более продвинутых отчетов можно использовать плагин WP Expert Review, который позволяет создавать автоматические отчеты и отправлять их на почту или в другие системы.
Настройка автоматизации через Cron в WordPress:
add_action('wplog_daily_performance_report', 'wplog_send_performance_report');
function wplog_send_performance_report() {
// Здесь собираем данные производительности
$message = 'Производительность сайта за последние 24 часа...';
wp_mail('admin@example.com', 'Ежедневный отчет по производительности', $message);
}
if (!wp_next_scheduled('wplog_daily_performance_report')) {
wp_schedule_event(time(), 'daily', 'wplog_daily_performance_report');
}
Этот пример показывает, как запланировать ежедневную отправку отчета. В функцию wplog_send_performance_report можно интегрировать сбор данных из Query Monitor или других источников.
Мониторинг основных метрик с помощью WP-CLI
Если у вас есть доступ к серверу и вы используете WP-CLI, можно написать скрипт, который собирает данные и формирует отчет в удобном виде.
Пример простой команды для подсчета количества опубликованных постов и размера базы данных:
wp wplog-report generate
// В файле команды PHP реализуем:
function wplog_cli_report() {
$post_count = wp_count_posts()->publish;
global $wpdb;
$size = $wpdb->get_var("SELECT ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) FROM information_schema.tables WHERE table_schema = '{$wpdb->dbname}';");
echo "Опубликованных постов: {$post_count}\n";
echo "Размер базы данных: {$size} МБ\n";
}
Запуская такую команду по cron, можно получать актуальную статистику и включать ее в отчеты.
Оптимизация на основе собранных данных
После того как автоматический отчет создан и регулярно обновляется, важно понимать, какие данные требуют внимания. Вот несколько рекомендаций:
- Если время выполнения SQL-запросов высокое — проверьте индексы и оптимизируйте запросы;
- Большое количество запросов — возможно избыточное использование плагинов или неправильное кэширование;
- Ошибки PHP — обязательно исправляйте, чтобы избежать сбоев;
- Большой размер базы данных — регулярно очищайте неиспользуемые ревизии и спам-комментарии;
- Высокая нагрузка — рассмотрите использование CDN, кэширования и обновление хостинга.
Для автоматизации очистки можно использовать Clearfy Pro, который помогает поддерживать базу в порядке.
Выводы и рекомендации
Создание автоматического отчета по производительности WordPress — несложная задача, которая при правильном подходе значительно облегчает поддержку сайта. Используйте сочетание готовых плагинов, собственных скриптов и cron-задач, чтобы получать детальные и своевременные данные.
Регулярный анализ отчетов позволит держать сайт быстрым, надежным и удобным для пользователей.