Как удалить автоматические частые запросы в 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-сайта.

Как автоматически удалять неактивных пользователей в WordPress
16.06.2026
Как отключить автовыделение и автозагрузку изображений в WordPress
02.02.2026
Как создать собственный вид регистрации в WordPress с помощью плагинов
10.11.2025
Как отключить скрипт admin-ajax.php в WooCommerce для оптимизации производительности
30.06.2026
Как использовать хук WooCommerce для обновления мета данных заказа на этапе оформления
07.05.2026