Как отключить или ограничить AJAX-запросы в WordPress для повышения производительности

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

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

AJAX-запросы позволяют динамически загружать контент, что улучшает пользовательский опыт. Но при этом:

  • Чрезмерное количество AJAX-вызовов может увеличить нагрузку на сервер.
  • Некорректные реализации могут привести к утечкам данных или ошибкам.
  • Некоторые сторонние плагины создают ненужные AJAX-запросы, которые можно отключить для оптимизации.

Контроль AJAX-запросов особенно важен на сайтах с большим трафиком или ограниченными ресурсами хостинга.

Как выявить ненужные AJAX-запросы

Перед тем, как что-то отключать, важно понять, какие AJAX-вызовы действительно нагружают сайт. Для этого можно использовать инструменты браузера (например, вкладка Network в Chrome DevTools) и плагины мониторинга.

Также поможет плагин Query Monitor, который показывает AJAX-запросы и их время выполнения.

После анализа вы сможете составить список запросов, которые можно отключить или ограничить.

Отключение AJAX-запросов, создаваемых плагинами и темами

Часто плагины добавляют свои AJAX-обработчики через хуки wp_ajax_ и wp_ajax_nopriv_. Чтобы отключить ненужные запросы, можно убрать эти обработчики с помощью функции удаления экшенов.

Пример функции для отключения AJAX-обработчика из плагина или темы:

function wproot_remove_unnecessary_ajax() {
    // Замените 'plugin_ajax_action' на имя вашего ajax action
    remove_action('wp_ajax_plugin_ajax_action', 'plugin_ajax_handler');
    remove_action('wp_ajax_nopriv_plugin_ajax_action', 'plugin_ajax_handler');
}
add_action('init', 'wproot_remove_unnecessary_ajax');

Важно: Названия экшенов нужно точно знать — их можно найти в коде плагина или темы.

Как найти имена AJAX-экшенов

Обычно в коде плагинов ищите такие конструкции:

add_action('wp_ajax_some_action', 'some_function');
add_action('wp_ajax_nopriv_some_action', 'some_function');

Имена «some_action» — это и есть названия AJAX-экшенов.

Ограничение частоты AJAX-запросов с помощью nonce и проверки прав

Чтобы избежать злоупотреблений AJAX-запросами, желательно всегда использовать защиту через wp_create_nonce и проверять права пользователя.

Пример проверки nonce в обработчике AJAX:

function wproot_ajax_handler() {
    check_ajax_referer('wproot_nonce_action', 'security');
    if (!current_user_can('edit_posts')) {
        wp_send_json_error('Нет доступа');
    }
    // Логика обработки запроса
    wp_send_json_success(array('message' => 'Успех'));
}
add_action('wp_ajax_wproot_action', 'wproot_ajax_handler');

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

Использование плагинов для контроля AJAX и оптимизации

Для удобства контроля AJAX-запросов можно использовать специальные плагины:

  • Clearfy Pro — позволяет отключать ненужные AJAX-запросы и скрипты, улучшая скорость загрузки. Подробнее: https://wpshop.ru/plugins/clearfy-pro/.
  • WP Rocket — плагин кеширования с функцией оптимизации запросов.
  • Asset CleanUp — позволяет selectively отключать скрипты и стили, включая AJAX.

Интеграция с Clearfy Pro особенно полезна на сайтах, где много плагинов и тем, генерирующих AJAX-запросы.

Практический пример: отключение AJAX-запроса счетчика просмотров

Многие плагины показывают счётчик просмотров через AJAX. Если вам не нужен этот функционал, его можно отключить.

Пример отключения AJAX-счётчика просмотров:

function wproot_disable_views_counter_ajax() {
    remove_action('wp_ajax_update_post_views', 'update_post_views_callback');
    remove_action('wp_ajax_nopriv_update_post_views', 'update_post_views_callback');
}
add_action('init', 'wproot_disable_views_counter_ajax');

Этот код нужно адаптировать под конкретный плагин, заменив имена экшенов на реальные.

Советы по безопасной работе с AJAX в WordPress

Чтобы не ухудшать производительность и безопасность сайта, следуйте рекомендациям:

  • Не отключайте AJAX-запросы, если не уверены, к чему они относятся.
  • Всегда проверяйте nonce и права пользователя в обработчиках.
  • Оптимизируйте логику AJAX-обработчиков, чтобы они выполнялись быстро.
  • Используйте кеширование на уровне сервера и плагинов.
  • Отключайте AJAX-запросы только после тщательного анализа.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как проверить и исправить ошибки базы данных WordPress: практическое руководство
22.02.2026
Как отключить или ограничить AJAX-запросы в WordPress для повышения производительности
24.01.2026
WooCommerce: как очистить корзину и историю заказов по устройствам пользователей
17.04.2026
Как использовать Transients в WordPress для кэширования данных
09.02.2026
WooCommerce: автоматическое отключение платёжных систем по условиям
12.05.2026
×
WordPress
прокачай свой сайт!

-20% на премиум темы и плагины

Сделай апгрейд сайта ⋙