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

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

Что такое AJAX-перезагрузка и почему её иногда нужно отключать

AJAX (Asynchronous JavaScript and XML) позволяет загружать данные на страницу без её полной перезагрузки. В WordPress AJAX часто применяется для подгрузки новых постов, фильтров, форм обратной связи и т.д.

Однако не всегда AJAX нужен или полезен. Иногда он вызывает:

  • конфликты с другими скриптами;
  • проблемы с индексацией поисковыми системами;
  • затруднения при отладке;
  • неожиданное поведение при кэшировании.

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

Отключение AJAX в популярных плагинах и темах WordPress

Деактивация AJAX в WooCommerce

WooCommerce активно использует AJAX, например, для обновления корзины и фильтров товаров. Чтобы отключить AJAX в WooCommerce, можно использовать следующий код в файле functions.php вашей темы:

function wpreg_disable_woocommerce_ajax() {
    // Отключаем обновление корзины через AJAX
    wp_dequeue_script('wc-cart-fragments');
}
add_action('wp_enqueue_scripts', 'wpreg_disable_woocommerce_ajax', 99);

Этот код отключит AJAX-обновление корзины, при этом остальные AJAX-функции WooCommerce останутся активными. Если нужно отключить больше функций, потребуется дополнительная настройка.

Отключение AJAX в плагинах для пагинации

Некоторые плагины используют AJAX для подгрузки следующей страницы с товарами или постами, например, ABC Pagination. Чтобы отключить AJAX-пагинацию, обычно достаточно в настройках плагина снять галочку «Использовать AJAX».

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

function wpreg_disable_abc_pagination_ajax() {
    wp_dequeue_script('abc-pagination-ajax');
}
add_action('wp_enqueue_scripts', 'wpreg_disable_abc_pagination_ajax', 100);

Отключение AJAX для кастомных скриптов и форм

Если вы сами написали AJAX-логику или используете сторонние скрипты, которые загружают данные асинхронно, отключить AJAX можно, изменив JavaScript. Например, вместо отправки запроса через jQuery.ajax() сделать обычный POST-запрос через форму с перезагрузкой страницы.

Пример замены AJAX-запроса на обычную отправку формы:

// Было AJAX
jQuery('#myform').on('submit', function(e) {
    e.preventDefault();
    jQuery.ajax({
        url: ajaxurl,
        type: 'POST',
        data: jQuery(this).serialize(),
        success: function(response) {
            // обработка ответа
        }
    });
});

// Стало обычная отправка
jQuery('#myform').off('submit'); // убираем AJAX обработчик

Как избежать потери производительности при отключении AJAX

При отказе от AJAX важно сохранить удобство пользователя и скорость сайта. Для этого стоит учесть несколько рекомендаций:

  • Оптимизируйте серверные запросы, чтобы страницы грузились быстро при полной перезагрузке.
  • Используйте кэширование на стороне сервера — например, плагин Clearfy Pro помогает улучшить производительность и отключить ненужные скрипты.
  • Сократите количество HTTP-запросов и минимизируйте CSS и JS.
  • Проверьте работу сайта в разных браузерах и на мобильных устройствах после отключения AJAX.

Пример кастомного решения: условное отключение AJAX для определённых страниц

Иногда AJAX нужен на большинстве страниц, но мешает на конкретных. Можно отключить его выборочно с помощью такой функции:

function wpreg_conditional_disable_ajax() {
    if (is_page('contact') || is_singular('product')) {
        wp_dequeue_script('ajax-script-handle'); // замените на реальный хэндл скрипта
    }
}
add_action('wp_enqueue_scripts', 'wpreg_conditional_disable_ajax', 100);

Этот код отключит AJAX-скрипт только на странице контактов и на страницах товаров, сохраняя AJAX в остальных местах.

Итоги

Отключение AJAX-перезагрузки в WordPress — частая задача для разработчиков при устранении конфликтов и повышении SEO. Главное — делать это аккуратно, сохраняя скорость и удобство сайта. Используйте wp_dequeue_script для отключения скриптов, меняйте JS-логику, и применяйте условные проверки для избирательного отключения. Для ускорения сайта и улучшения контроля советуем обратить внимание на инструменты вроде Clearfy Pro.

Как использовать Post Meta для оптимизации WordPress
13.01.2026
Удаление старых meta полей в WordPress: практическое руководство
02.02.2026
Исключение товаров WooCommerce по атрибуту из корзины и оформления заказа
28.05.2026
Автоматическое удаление оставшихся частей кода в WordPress после деактивации плагинов
20.11.2025
Как удалить неиспользуемые таксономии и термины в WordPress
02.01.2026