Для любого сайта на WordPress критически важно контролировать производительность и выявлять узкие места, которые замедляют загрузку страниц. Один из самых мощных инструментов для таких целей — плагин Query Monitor. В этой статье мы подробно разберем, как использовать Query Monitor для анализа производительности, а также настроим несколько полезных фильтров и функций с примерами кода.
Что такое Query Monitor и зачем он нужен для оценки производительности WordPress
Query Monitor — это бесплатный плагин для WordPress, который выводит детальную информацию о запросах к базе данных, ошибках PHP, HTTP-запросах, хуках и многом другом. Он незаменим для разработчиков и администраторов, которые хотят понять, что именно тормозит сайт.
Плагин показывает время выполнения каждого запроса, количество запросов, нагрузку на сервер и позволяет выявлять медленные или избыточные запросы, которые замедляют работу сайта.
Кроме того, Query Monitor помогает найти ошибки в PHP-коде, проблемы с кэшированием и конфликтами плагинов, что очень важно при оптимизации.
Установка и базовая настройка Query Monitor
Установить плагин очень просто:
- Перейдите в админку WordPress: Плагины > Добавить новый.
- В поиске введите
Query Monitor. - Нажмите Установить и затем Активировать.
После активации в верхней панели появится новая информация с суммарными данными по запросам и скорости загрузки.
Чтобы просмотреть подробности, кликните на эту панель — откроется интерфейс с несколькими вкладками, например, Queries, Hooks, HTTP Requests, PHP Errors и др.
Анализ запросов к базе данных: раздел Queries
Вкладка Queries — одна из самых важных для оценки производительности. Здесь вы увидите список всех SQL-запросов, которые выполняются при загрузке текущей страницы.
Плагин показывает время выполнения каждого запроса, источник (файл и строка кода), тип запроса и количество повторений.
Обратите внимание на запросы с длительным временем выполнения (например, более 100 мс) — именно они чаще всего вызывают торможение сайта.
Пример кода, который может быть причиной медленных запросов — неправильное использование WP_Query без параметра 'no_found_rows' для пагинации, что приводит к лишним COUNT-запросам:
function wplearn_custom_slow_query() {
$args = [
'post_type' => 'post',
'posts_per_page' => 10,
// 'no_found_rows' => true // отключаем подсчет общего количества, чтобы ускорить запрос
];
$query = new WP_Query($args);
return $query;
}
Если вы не используете 'no_found_rows' => true в запросах без пагинации, на больших сайтах это приводит к значительному падению производительности.
Оптимизация запросов с помощью Query Monitor
Используйте Query Monitor для локализации медленных запросов и корректируйте код. Например, если вы видите много повторяющихся запросов, можно воспользоваться кешированием результатов в Transients API:
function wplearn_cached_query() {
$cached = get_transient('wplearn_query_results');
if (false === $cached) {
$args = [
'post_type' => 'post',
'posts_per_page' => 10,
'no_found_rows' => true
];
$query = new WP_Query($args);
$cached = $query->posts;
set_transient('wplearn_query_results', $cached, HOUR_IN_SECONDS);
}
return $cached;
}
Такой подход значительно уменьшит количество запросов к базе и повысит скорость загрузки.
Использование фильтров Query Monitor для удобства работы
Query Monitor позволяет фильтровать запросы по типу (SELECT, INSERT, UPDATE), по компонентам (плагины, темы) и по времени выполнения.
Это помогает быстро находить проблемные места. Для примера, если вы хотите отследить запросы только из темы, выберите фильтр по теме.
Также плагин показывает, какие хуки вызываются и сколько они занимают времени — это полезно для поиска узких мест в коде.
Отслеживание ошибок PHP и HTTP-запросов
Query Monitor автоматически фиксирует ошибки PHP, предупреждения и уведомления, выводит их в удобном виде с указанием файла и строки. Это позволяет оперативно исправлять баги, которые могут влиять на производительность и стабильность.
Кроме того, плагин показывает внешние HTTP-запросы, выполняемые вашим сайтом, с временем ожидания и ответом сервера. Часто сторонние API могут значительно замедлять загрузку страниц.
Сочетание Query Monitor с другими инструментами оптимизации
Query Monitor отлично дополняет плагины кэширования, например Clearfy Pro, который оптимизирует работу WordPress и помогает отключать ненужные функции. Вместе эти инструменты дают полный контроль над производительностью.
Для мониторинга в продакшн-среде можно использовать WP CLI-скрипты, которые собирают основные метрики без визуального интерфейса, но Query Monitor — идеальный выбор для разработки и отладки.
Пример включения логирования ошибок в wp-config.php для совместной работы с Query Monitor
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
Так ошибки будут записываться в файл wp-content/debug.log, а Query Monitor отобразит их в админке, не мешая пользователям видеть сообщения.
Заключение по использованию Query Monitor для оценки производительности
Query Monitor — незаменимый инструмент для детального анализа работы сайта на WordPress. Он помогает выявлять медленные запросы, ошибки кода и проблемы с внешними запросами. Благодаря этому вы сможете точно локализовать узкие места, оптимизировать запросы и повысить скорость загрузки.
Используйте приведенные советы и примеры кода для улучшения своих проектов и интегрируйте Query Monitor в ежедневный рабочий процесс для постоянного контроля качества.