Как удалить автоматические частые запросы в WordPress для оптимизации производительности

Почему автоматические частые запросы вредят производительности WordPress

В WordPress часто возникают фоновые запросы, которые выполняются автоматически и могут создавать существенную нагрузку на сервер. Это могут быть запросы к API, частые AJAX-запросы, запросы обновления информации, пинговые запросы и пр. Если их не контролировать, сайт может начать тормозить, особенно на слабых хостингах или при высоком трафике.

Удаление или блокировка таких запросов помогает снизить нагрузку на базу данных и сервер, улучшает скорость отклика и уменьшает потребление ресурсов. Важно понимать, какие именно запросы считаются «частыми» и автоматическими, чтобы не повредить функциональность сайта.

Примеры таких запросов:

  • Периодические обращения к REST API для обновления данных
  • Автоматические вызовы AJAX в админке и на фронтенде
  • Пингбэки и трекбэки
  • Запросы Heartbeat API

Основные типы автоматических запросов и как их контролировать

1. WordPress Heartbeat API

Heartbeat API отвечает за периодические AJAX-запросы, которые обновляют сессии, автосохранения, показывают уведомления и т.д. По умолчанию он работает каждые 15-60 секунд, что может создавать избыточную нагрузку.

Чтобы уменьшить частоту или отключить Heartbeat API на страницах, где он не нужен, можно использовать следующий код:

function wplessons_disable_heartbeat() {
    // Отключаем Heartbeat API полностью
    wp_deregister_script('heartbeat');
}
add_action('init', 'wplessons_disable_heartbeat');

Если нужно только уменьшить частоту, а не отключать полностью, примените фильтр:

function wplessons_heartbeat_frequency( $settings ) {
    $settings['interval'] = 60; // увеличить интервал до 60 секунд
    return $settings;
}
add_filter( 'heartbeat_send', 'wplessons_heartbeat_frequency' );

2. Пингбэки и трекбэки

Пингбэки и трекбэки – это автоматические уведомления о ссылках между блогами. Их отключение уменьшает количество входящих запросов и спама.

Отключить можно через админку в Настройки > Обсуждение, убрав галочку с «Разрешить уведомления о ссылках от других блогов (пингбэки и трекбэки) для новых статей».

Для отключения программно добавьте в functions.php:

function wplessons_disable_pingbacks( &$links ) {
    $links = [];
}
add_action( 'pre_ping', 'wplessons_disable_pingbacks' );

3. Частые AJAX запросы сторонних плагинов

Многие плагины делают частые AJAX вызовы, например, для проверок обновлений, статистики или кэширования. Иногда их можно отключить или оптимизировать.

Для выявления таких запросов включите в лог запросы с помощью Query Monitor или Debug Bar. После выявления можно запретить отдельные AJAX экшены, например:

function wplessons_disable_unneeded_ajax() {
    // Отключаем AJAX экшен 'some_plugin_check'
    remove_action('wp_ajax_some_plugin_check', 'some_plugin_check_callback');
    remove_action('wp_ajax_nopriv_some_plugin_check', 'some_plugin_check_callback');
}
add_action('init', 'wplessons_disable_unneeded_ajax');

Плагины для управления и оптимизации автоматических запросов

Если вы не хотите писать код, можно использовать готовые решения:

  • Clearfy Pro — содержит опции для отключения Heartbeat API, отключения пингбэков, удаления лишних запросов и оптимизации загрузки сайта. Подробнее на wpshop.ru.
  • WP Rocket — плагин для кэширования и оптимизации, умеет уменьшать количество запросов и оптимизировать AJAX вызовы.
  • Heartbeat Control by WP Rocket — отдельный плагин для управления частотой Heartbeat API.

Практическое руководство: отключение Heartbeat API на фронтенде и в админке

Часто необходимо отключить Heartbeat API на фронтенде, чтобы уменьшить нагрузку, но оставить в админке для автосохранений. Для этого используйте следующий код:

function wplessons_manage_heartbeat( $settings ) {
    if ( ! is_admin() ) {
        $settings['interval'] = 300; // Интервал 5 минут на фронтенде
    }
    return $settings;
}
add_filter( 'heartbeat_send', 'wplessons_manage_heartbeat' );

function wplessons_deregister_heartbeat_script() {
    if ( ! is_admin() ) {
        wp_deregister_script('heartbeat');
    }
}
add_action( 'wp_enqueue_scripts', 'wplessons_deregister_heartbeat_script' );

Этот код увеличит интервал Heartbeat API на фронтенде до 5 минут и при этом отключит скрипт, что полностью уберёт запросы. В админке же Heartbeat API будет работать штатно для сохранения черновиков и других функций.

Как отследить и проанализировать частые запросы на сайте

Чтобы понять, какие именно автоматические запросы нагружают ваш сайт, используйте инструменты:

  • Query Monitor — плагин для анализа запросов к базе данных, AJAX и REST API вызовов.
  • Debug Bar — позволяет увидеть детали запросов и ошибки.
  • Инструменты разработчика браузера (Network tab) — для просмотра AJAX-запросов на фронтенде.

Собрав данные, вы сможете определить, какие запросы наиболее частые и нужно ли их отключать или оптимизировать.

Резюме и рекомендации

Удаление и контроль автоматических частых запросов — важный шаг для оптимизации WordPress-сайта. Особенно это актуально для сайтов с большим трафиком и ограниченными ресурсами хостинга.

Рекомендуется:

  • Отключить или увеличить интервал Heartbeat API, если вы не нуждаетесь в частых обновлениях.
  • Отключить пингбэки и трекбэки, чтобы уменьшить входящий трафик.
  • Мониторить AJAX-запросы сторонних плагинов и отключать неиспользуемые.
  • Использовать готовые плагины, такие как Clearfy Pro, для удобного управления.

Такой подход позволит значительно снизить нагрузку на сервер и ускорить работу вашего WordPress-сайта.

Как избежать проблем при использовании PHP 8 в WordPress
12.02.2026
Как создать уникальный AJAX-фильтр для WooCommerce по пользовательским атрибутам
10.04.2026
Как использовать хуки WooCommerce для автоматического изменения статуса заказов
30.04.2026
Автоматическое удаление товаров из заказов WooCommerce после отмены или возврата
28.05.2026
Как изменить размер и форму аватара в WordPress с примерами кода
26.01.2026