wpclean.ru wordpress WPClean.ru

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

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

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

AJAX (Asynchronous JavaScript and XML) — это технология, позволяющая отправлять запросы к серверу в фоне без перезагрузки страницы. В WordPress для AJAX используются специальные хуки wp_ajax_{action} и wp_ajax_nopriv_{action}, где {action} — имя действия.

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

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

  • Ускорение сайта: меньше обработчиков — быстрее обработка запросов.
  • Снижение нагрузки на сервер: экономия ресурсов хостинга.
  • Повышение безопасности: уменьшение поверхности атаки, так как неиспользуемые обработчики могут содержать уязвимости.
  • Чистота кода и базы данных: упрощение поддержки и обновления сайта.

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

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

Метод 1: Просмотр зарегистрированных AJAX-хуков

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

function wpclean_list_ajax_actions() {
    global $wp_filter;
    $ajax_actions = [];

    foreach ($wp_filter as $hook_name => $hook) {
        if (strpos($hook_name, 'wp_ajax_') === 0 || strpos($hook_name, 'wp_ajax_nopriv_') === 0) {
            $ajax_actions[] = $hook_name;
        }
    }

    echo '<pre>';
    print_r($ajax_actions);
    echo '</pre>';
}
add_action('admin_notices', 'wpclean_list_ajax_actions');

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

Метод 2: Анализ логов и мониторинг запросов AJAX

Для более точного анализа можно установить плагин, например, Query Monitor, который позволяет мониторить AJAX-запросы в реальном времени. Отслеживайте, какие AJAX-действия вызываются в течение определённого времени, и сравнивайте с зарегистрированными в коде.

Если какое-то действие ни разу не вызвалось — это кандидат на удаление.

Как удалить неиспользуемые AJAX-обработчики

Удалить AJAX-обработчики можно разными способами, в зависимости от того, как они добавлены.

Удаление через remove_action

Если вы знаете имя обработчика и хук, можно отключить его с помощью remove_action. Пример кода для удаления AJAX-обработчика wp_ajax_old_action:

function wpclean_remove_unused_ajax() {
    remove_action('wp_ajax_old_action', 'old_action_callback');
    remove_action('wp_ajax_nopriv_old_action', 'old_action_callback');
}
add_action('init', 'wpclean_remove_unused_ajax');

Обратите внимание, что нужно знать имя функции-обработчика (в примере — old_action_callback). Если не знаете, ищите её в исходниках плагинов или темы.

Удаление с помощью отключения плагина или удаления кода

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

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

Ручной поиск и удаление AJAX-обработчиков может быть трудоёмким, особенно на больших сайтах. Для автоматизации процесса рекомендуем:

  • Использовать плагин Clearfy Pro — он помогает выявлять и отключать неиспользуемые функции, в том числе AJAX-запросы.
  • Внедрять мониторинг AJAX-запросов со сторонними инструментами (например, New Relic или Query Monitor), чтобы отслеживать частоту вызовов и исключать редко используемые.
  • Писать собственные функции для логирования вызовов AJAX-действий, чтобы накапливать статистику и принимать решения по удалению.

Пример логирования вызовов AJAX-действия

function wpclean_log_ajax_calls() {
    $action = isset($_REQUEST['action']) ? sanitize_text_field($_REQUEST['action']) : '';
    if ($action) {
        error_log('AJAX call: ' . $action);
    }
}
add_action('wp_ajax_wpclean_logger', 'wpclean_log_ajax_calls');
add_action('wp_ajax_nopriv_wpclean_logger', 'wpclean_log_ajax_calls');

Добавьте этот код и настройте на сайте вызовы wpclean_logger для сбора статистики, затем проанализируйте логи.

Заключение по удалению неиспользуемых AJAX-запросов

Удаление неиспользуемых AJAX-запросов — важный аспект оптимизации WordPress, напрямую влияющий на скорость и безопасность. Используйте описанные методы для выявления и удаления лишних обработчиков, а также применяйте инструменты, такие как Clearfy Pro, для автоматизации и упрощения процесса.

×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙