Как уменьшить нагрузку на сервер с помощью admin-ajax в WordPress

Для лучшего SEO и пользовательского опыта, специалисты всегда рекомендуют ускорить сайт на WordPress для конечного пользователя. В этом контексте если на ваш сайт заходит много пользователей, приборная панель может медленно реагировать WordPress.
Во время тестирования скорости вашего сайта на WordPress с помощью онлайн инструментов тестирования скорости, вы, возможно, заметили, что файл admin-ajax.php отвечает за медленный опыт загрузки. В этой статье мы расскажем об этом файле, и как вы сможете уменьшить время отклика сервера и загрузку процессора за счет уменьшения количества запросов, генерируемых admin-ajax.php.
Что такое admin-ajax.php в WordPress?
Еще в 2013 году, WordPress представил WordPress Heartbeat API, который обеспечил несколько важных функций, такие как функция автосохранения, по истечении логина предупреждения блокировки в то время как другой пользователь пишет или редактирует пост на WordPress.
Две очень характерные особенности Heartbeat API:
1. Автосохранение
Всякий раз, когда вы сохраняете проект поста и продолжаете работу над ним, WordPress автоматически сохраняет дополнения к посту. Существует четкое различие между автосохранением и сохранением проекта вручную. Проверьте следующий скриншот, который показывает оба типа экономит:
2. Сообщение блокировки
Всякий раз, когда вы пытаетесь изменить пост, с которым работает другой пользователь, появится всплывающее предупреждение о ситуации. Есть три действия, доступные для вас.
Вышеперечисленные особенности стали возможными благодаря API WordPress Heartbeat, который создает связь между сервером и браузером для соответствующего сообщения и ответов.
WordPress Heartbeat API генерирует запросы для связи с сервером и запускает события на прием/ответ данных. Как правило, это увеличивает нагрузку на сервер и в конечном итоге замедляет панель администратора WordPress.
Живой пример
Мы вошли в приборную панель WordPress и приступили к редактированию поста. Далее, мы оставили вкладку открытой в течение нескольких минут, и начали просмотр других вкладок. Приборная панель по — прежнему в системе, и вы можете увидеть, что admin-ajax непрерывно посылает запросы.
В соответствии с упомянутым выше билетом, администратор-ajax.php в WordPress генерирует запросы через каждые 15 секунд. Запросом может быть любая связь с сервером.
Ускорить панель администратора WordPress
Чтобы ускорить бэкэнд WordPress, лучший подход, это отключить Heartbeat API или по крайней мере установить более продолжительный промежуток времени, так чтобы он не генерировал запросы на сервере через каждые несколько секунд.
Установить плагин Heartbeat Control
Войдите в админку WordPress и перейдите к Плагины >> Добавить новый, найдите Heartbeat Control, установите и активируйте его.
Настройка плагина Control Heartbeat
Перейдите на вкладку Настройки >> Настройки Control Heartbeat. Там вы найдете три раскрывающихся меню для настройки плагина.
1. Разрешить Heartbeat:
Вы можете выбрать ту область, где Heartbeat API будет работать. Есть три варианта на выбор:
- WordPress Dashboard : Это позволит Heartbeat API в WordPress панели.
- Frontend : Это позволит API в веб — интерфейсе.
- Редактор сообщений : Отметьте этот флажок, если вы хотите, позволить Heartbeat API включить на автосохранение и блокировки почтовых функций.
2. Отключить Heartbeat:
Выберите этот параметр, если хотите, чтобы WordPress Heartbeat API отключался в определенных местах. Будьте осторожны при выборе местоположения, потому что другие плагины могут также использовать WordPress Heartbeat API. Если вы единственный пользователь серверной части WordPress, я бы предложил отключить его везде, а затем проверить, нарушает ли он веб-сайт. Тем не менее, если ваш сайт имеет более одного пользователя, который регулярно вносит свой вклад, мы бы предложили, чтобы вы разрешили Heartbeat API только на страницах редактирования публикации.
3. Изменить Heartbeat:
Эта выпадающее меню позволяет установить интервал времени, в пределах 0 — 300 секунд, чтобы выполнить админ Ajax запросы. Если установить его на 120 секунд, то запрос будет сгенерирован через каждые 120 секунд. Это позволит значительно снизить нагрузку на сервер. Настройте его в соответствии с вашими потребностями.
Создание нескольких правил
Вы можете создать несколько правил, основанных на ваших требованиях. Например, вы хотите WordPress вызвать каждые 120 секунд, но после редактирования срабатывать на 60 секунд. Для этого необходимо создать два правила. Один для панели мониторинга WordPress и другой для редактора постов и установить их частоту в 120 и 60 соответственно.
Обнаружение плагинов, которые используют Heartbeat API
Теперь, когда вы настроили все, настало время, проверить, какие плагины замедляют веб-сайт с помощью файла admin-ajax.php.
Перейдите к GTmetrix, введите URL вашего сайта. Это займет несколько минут, чтобы проанализировать сайт. После этого перейдите к закладке Waterfall, и вы увидите, сколько времени файл принимает подключения и ответ. Прокрутите немного вниз, и посмотреть, есть ли запись POST админ-ajax.php . Если да, расширьте его и перейдите на вкладку Post. Здесь вы можете определить виновника. В нашем случае, плагин «desktop switch» использует файл admin-ajax.php и непрерывно посылает запросы на сервер. Это время, чтобы принять решение, либо заменить его другим плагином или удалить его.
Заключительные слова
Учитывая его набор функций, Heartbeat API является очень полезным на вашем сайте WordPress. Однако, если он не используется правильно, это может увеличить время загрузки на бэкэнд WordPress и на сам сайт, посылая туда и сюда запросы в WordPress.
Есть только два решения этой проблемы. Либо отключить Heartbeat API/включить его только в нескольких местах.
Если вы используете какой — либо плагин кэширования, например, W3TC, не забудьте отключить кэш объектов. Это также ускорит приборную панель WordPress.
Если у вас есть какие-либо предложения или запрос, не стесняйтесь оставить комментарий ниже.
Друзья, СПАСИБО! Все сработало и помогло, до этого сайт и админка лежала, постоянно начало вылазить 503 ((( Вопрос решен!!!