Как диагностировать высокое использование Admin-Ajax на вашем WordPress сайте
Распространенный сценарий при работе с WordPress – диагностика повышенного использования admin-ajax.php. Если вы некоторое время работаете с WordPress, вы, скорее всего, сталкивались с этой проблемой при запуске сторонних тестов скорости или проверке серверных логов доступа. Обычно повышенное использование admin-ajax.php связано с применением сторонних плагинов либо частыми некэшируемыми запросами из панели администратора, основанными на Heartbeat API (к примеру, автосохранение черновиков). Очень важно сразу же выявлять такие высокие всплески обращений к admin-ajax.php, поскольку они могут вести к тому, что сайт будет недоступен. Ознакомьтесь с приведенными ниже рекомендациями по устранению проблем с admin-ajax.php в WordPress.
Содержание
- Что представляет собой файл admin-ajax.php?
- Плагины могут приводить к замедлению admin-ajax.php
- Высокая нагрузка на admin-ajax.php при использовании плагина Visual Composer
- Высокая задержка с admin-ajax. php из-за плагина Notification Bar
- Дедовский метод определения источника admin-ajax.php запросов
- CPU-проблемы с admin-ajax.php в бэкэнде
- Заключение
Что представляет собой файл admin-ajax.php?
Сам по себе файл admin-ajax.php не является плохим при грамотном его использовании. Он выступает частью ядра. Файл был добавлен командой разработчиков WordPress в релизе 3.6. Цель admin-ajax.php – создать соединение между браузером и сервером с помощью AJAX. Это позволяет использовать расширенные функции, среди которых улучшенное автосохранение, отслеживание версий, таймауты логина, управление сеансом, а также уведомления о блокировке записи при редактировании ее несколькими авторами. Все эти возможности великолепны, особенно для тех пользователей, которые поддерживают сайты с несколькими авторами и администраторами.
«Идея состоит в том, чтобы реализовать относительно простой API, который будет отправлять XHR запросы на сервер каждые 15 секунд и запускать события (или callback) при получении данных. Другие компоненты тоже смогут «подцепляться» или получать уведомления об активности других пользователей. Это можно применять для блокировки одновременного редактирования виджетов или меню, либо выполнения других задач, требующих регулярных обновлений с сервера»
Если вы не являетесь технически подкованным пользователем, то в таком случае единственная ситуация, которая будет вам важна в контексте admin-ajax.php – это попытка понять, почему этот файл замедляет скорость в тестах (к примеру, в Pingdom). Либо вы можете увидеть кучу запросов к этому файлу в логах доступа хостинга.
Появление admin-ajax.php в тестах скорости и логах доступа обычно является результатом двух различных сценариев: одного во фронтэнде и второго в бэкэнде. Об этом мы поговорим далее.
Плагины могут приводить к замедлению admin-ajax.php
Самая популярная проблема, с которой сталкиваются пользователи в контексте admin-ajax.php, вызвана сторонними плагинами. Обычно это видно во фронтэнде и отображается в тестах скорости. Разработчики используют этот файл или AJAX для добавления функционала к своим плагинам. Если вы видите запрос к admin-ajax.php, это еще не означает, что он обязательно будет замедлять сайт. AJAX загружается после представления страницы, и некоторые запросы могут загружаться асинхронно. Но это не всегда означает и то, что разработчик выполнил загрузку грамотно и написал эффективный код в плане производительности.
Ниже представлены примеры того, как мы быстро диагностировали замедление работы admin-ajax.php. Мы использовали GTmetrix, поскольку он позволяет нам изучать данные отдельных записей и ответов. Pingdom, к сожалению, не позволяет нам видеть запросы данных в формах. Вы также можете использовать Google Chrome Devtools или WebPageTest.
Высокая нагрузка на admin-ajax.php при использовании плагина Visual Composer
Ниже приведен наш WordPress сайт, на котором мы столкнулись с очень высокими задержками при использовании admin-ajax.php. Как вы можете видеть по GTmetrix, задержка запросов к admin-ajax. php составляет более 8 секунд. Остальная часть «водопада» выглядит нормально, но такую задержку нужно обязательно решать владельцам сайтов.
Если вы щелкнете по запросу POST admin-ajax.php, вы увидите следующие три вкладки: Headers, Post и Response. При диагностике рассматриваемых нами проблем нас будут интересовать только вкладки Post и Response. Подсказки можно видеть во вкладке Response. Мы видим, что часть запроса связана со скриптом vc_shortcodes-custom-css.
Быстрое копирование и вставка в Google помогают понять, что проблема вызвана плагином Visual Composer.
Следующий шаг для пользователя – убедиться в том, что плагин Visual Composer полностью обновлен. Если да, то в таком случае необходимо обратиться к разработчикам плагина и рассказать им о проблеме с admin-ajax.php. На самом деле это достаточно распространенная проблема, если судить по постам на Stack Overflow. Если разработчик не способен решить ее в своем плагине, всегда найдется несколько альтернативных плагинов, которые делают примерно то же самое – в этом и состоит мощь WP. К примеру, если вам нужны билдеры страниц, то вы можете попробовать Beaver Builder или Elementor.
Высокая задержка с admin-ajax.php из-за плагина Notification Bar
Второй пример, с которым столкнулись мы сами, произошел после установки стороннего плагина. Мы заметили резкий подъем обращений к admin-ajax.php.
Опять же, если вы нажмете на запрос POST admin-ajax.php, то вы сможете исследовать все в деталях. Мы видим, что в данных присутствует строка «action=mtsnb_add_impression&bar_id=88&ab_variation=none».
Как правильно, первая часть действия post обычно относится к CSS классу плагина. Мы делаем быстрый поиск в Google по «mtsnb» и обнаруживаем, что этот класс используется в плагине Notification Bar, который запущен у нас на сайте.
Если вы разработчик, то есть и другие способы отследить, какой плагин может генерировать ответ POST, однако мы считаем, что и описанные в статье методы являются очень эффективными.
Дедовский метод определения источника admin-ajax.
php запросовВыше мы привели несколько простых способов поиска плагина на WordPress сайте, который может приводить к данной проблеме с admin-ajax.php. По нашему опыту, эти способы работают в 99% случаев. Однако бывает и так, что данные POST или действия могут быть не такими понятными, а потому вам придется двигаться старым проверенным путем. Просто отключите все плагины на своем WordPress сайте. Запустите тест скорости. Если admin-ajax.php нигде не обнаружится, то включайте по очереди каждый плагин и проводите тест скорости. Таким образом вы быстро выявите проблемный плагин.
CPU-проблемы с admin-ajax.php в бэкэнде
Вторая серьезная проблема заключается в том, что WordPress Heartbeat API использует admin-ajax.php для запуска вызовов AJAX от веб-браузера, что может вести к высокой нагрузке на CPU. Каждый AJAX запрос также загружает полный WordPress бэкэнд в обход всех форм кэширования. Как правило, вы не увидите этого в тестах скорости. Это особенно важно знать тем, кто использует дешевые виртуальные хостинги, поскольку у них нет большого пространства для маневров, когда дело касается CPU. Такая проблема всплывала с хостингом HostGator ранее.
Один из сценариев, с которым вы должны быть очень осторожны – автоматическое сохранение в WordPress и наличие открытых вкладок. К примеру, мы запустили новый проект на нашем сайте и оставили вкладку открытой. Heartbeat API по умолчанию опрашивает файл admin-ajax.php каждые 15 секунд, чтобы сделать автоматическое сохранение. Это видно по журналам доступа. Если бы мы оставили вкладку открытой на день, то один пост мог сгенерировать 5760 запросов за сутки.
Это слишком много запросов в бэкэнде для одного человека. Представьте, что будет, если у вас на сайте есть несколько редакторов. Эти запросы увеличатся в геометрической прогрессии. Мы сталкивались с таким во время нашего исследования DARTDrones, в котором мы помогали расширить их WooCommerce сайт для Shark Tank. У них было свыше 4100 вызовов admin-ajax.php за сутки, при этом посетителей было только 2000. Это не самое лучшее соотношение запросов к визитам. Наше исследование показало, что большинство запросов шло из консоли – они генерировались из-за того, что администраторы обновляли сайт, готовя его к показу.
Есть способ обнаружения некоторых проблем с обращениями к admin-ajax.php в бэкэнде, когда дело касается автосохранений, ревизий, блокировки записей и т.д. Для этого необходимо установить плагин Heartbeat Control.
Плагин Heartbeat Control в данный момент установлен на более 50 000 сайтов и имеет рейтинг 5 из 5. Прошло уже 2 года с момента его обновления, но он работает все так же, поскольку Heartbeat API тоже не обновлялся.
Плагин позволяет вам управлять частотой обращений к WordPress Heartbeat API с помощью пары щелчков мыши. Первая опция дает возможность управлять расположением heartbeat – к примеру, отключать его везде или разрешать только на страницах редактирования записей. Мы рекомендуем использовать последний вариант, поскольку полное отключение плагина может вести к тому, что некоторые плагины, зависящие от Heartbeat API, могут перестать работать.
Вторая опция позволяет вам задавать частоту опроса. Изменение с 15 сек до 60 сек позволит вам значительно сэкономить количество запросов и сохранить серверные ресурсы (снизив нагрузку на ЦП).
Вы можете также использовать премиум-плагин, такой как perfmatters, чтобы отключать heartbeat, менять частоту опросов, а также модифицировать интервал автосохранения.
Заключение
Как вы можете видеть, есть несколько быстрых и простых опций для диагностирования и устранения проблем с admin-ajax.php. Как правило, они появляются из-за сторонних плагинов, которые могут конфликтовать друг с другом или иметь плохую кодовую базу.
Сталкивались ли вы с такой проблемой на своем сайте? Если да, то поделитесь своими историями.
Источник: kinsta.com
Файл admin-ajax.php и нагрузка на сервер
Нам в редакцию часто пишут с просьбой разобраться с нагрузкой на сайт WordPress, и во многих случаях это связано с файлом admin-ajax.php. В этой статье мы расскажем за что отвечает данный файл и как бороться с его нагрузкой на сервер.
AJAX запросы и admin-ajax.php
AJAX — это асинхронные HTTP запросы выполняемые на странице с помощью языка JavaScript, позволяющие общаться с веб-сервером без полной перезагрузки страницы. Это позволяет делать интерфейсы более быстрыми, отзывчивыми и динамичными.
В WordPress такой подход используется во многих местах: работа с медиафайлами, автоматическое сохранение записей, управление ревизиями, работа с произвольными полями, работа с виджетами и многое другое. И чтобы каждый раз не изобретать велосипед, файл admin-ajax.php в WordPress предоставляет удобный API для работы с AJAX запросами.
В данной статье мы не будем рассматривать сам API, но стоит отметить, что несмотря на присутствие слова «admin» в названии файла, через него могут проходить запросы и с лицевой части сайта, включая анонимные запросы из тем и плагинов WordPress. К сожалению многие источники ошибочно советуют отключить этот файл, или заблокировать его паролем — этого делать не стоит.
Большое количество запросов на admin-ajax.php
Как мы уже упомянули, файл admin-ajax.php вызывается при автоматическом сохранении записей, а также для обновления блокировок, чтобы два пользователя не могли редактировать одну и ту же запись одновременно. Это реализует API в WordPress под названием Heartbeat (сердцебиение), который построен на базе admin-ajax.php.
Запросы на admin-ajax.php
При редактировании записи Heartbeat отправляет запрос на admin-ajax.php каждые 15 секунд (или каждые 60 секунд, в случае если вкладка в браузере не является активной). Поэтому если вы видите в логах вашего веб-сервера большое количество запросов на admin-ajax.php стоит их проанализировать.
- С каких IP адресов приходят эти запросы
- С какой периодичностью они приходят
- Сколько времени в среднем занимает один такой запрос
Итак, если эти запросы приходят с вашего IP адреса, или с IP адресов редакторов на вашем сайте, если их периодичность около 15-60 секунд, если каждый такой запрос занимает не более 0.5 сек, и содержание запросов не содержит ничего необычного, то все в порядке — файл admin-ajax.php не является источником нагрузки на ваш сервер, независимо от «большого» количества запросов. А если ваш хостинг-провайдер уверяет вас в обратном, то советуем задуматься о его компетентности и о возможном переезде.
Когда admin-ajax.php действительно является проблемой
Рассмотрим несколько вариантов, когда admin-ajax.php действительно становится источником высокой нагрузки на ваш сервер, и как бороться с этой нагрузкой.
Запросы на admin-ajax.php занимают более 1 секунды
В среднем запросы на admin-ajax.php могут занимать около 300 мс. Если же на вашем сайте данные запросы выполняются более чем за одну секунду, то необходимо разобраться. Используйте средства профилирования, чтобы понять чем именно занят процесс все это время. Наверняка вы найдете медленную функцию в вашей теме или плагине, которая не имеет никакого отношения к AJAX запросам.
Если же вы не владеете средствами профилирования, или у вас нет времени разбираться в чужом коде, то попробуйте отключить все плагины и активировать стандартную тему WordPress. Затем активируйте плагины по порядку, чтобы понять какой из них является причиной медленных запросов на admin-ajax. php.
Бывает и такое, что запросы на admin-ajax.php становятся медленными не из-за конкретных плагинов или тем, а из-за неоптимальной конфигурации сервера MySQL. Такое бывает достаточно редко, и в этом случае следует заняться оптимизацией сервера базы данных.
Подозрительное содержание запроса
Файл admin-ajax.php (и admin-post.php) часто выбирается злоумышленниками для того, чтобы использовать известную уязвимость в каком-нибудь плагине. В качестве примера можно привести недавний инцидент с популярным плагином FancyBox, где именно admin-ajax.php (или admin-post.php) послужил точкой входа.
Эти файлы выбираются не спроста, ведь каждый из них исполняет событие admin_init
даже для анонимных HTTP запросов. Многие разработчики плагинов и тем, ошибочно считают, что раз выполняется событие admin_init
, значит пользователь выполнил вход и имеет права администратора. Это не так. Повторяем — событие admin_init
выполняется даже для анонимных HTTP запросов.
Итак, в случае с уязвимостью плагина FancyBox for WordPress, вот примерно то, как выглядит «подозрительное содержание запроса»:
46.4.76.174 – – [04/Feb/2015:00:25:09 -0500] "POST /wp-admin/admin-ajax.php?page=fancybox-for-wordpress HTTP/1.1" 403 4207 INPUTBODY:action=update&mfbfw%5Bext...
Если вы обнаружили подобный запрос, необходимо понять на какой конкретно плагин или тему он нацелен, что именно он пытается сделать, удалось ли ему это. В подобных случаях мы рекомендуем обратиться к экспертам по безопасности WordPress.
Неузнаваемые IP адреса
Этот пункт тесно связан с предыдущим. Если вы увидели запросы на admin-ajax.php с неузнаваемых IP адресов, то необходимо проанализировать эти запросы, и понять чего именно пытается сделать злоумышленник. IP адреса можно заблокировать, например по шаблону с помощью fail2ban.
Слишком частая периодичность запросов
Как мы уже упомянули, на активной вкладке при редактировании записи, WordPress выполняет AJAX запрос каждые 15 секунд, т. е. для достижения 1 запроса в секунду на сервере, вам необходимо 15 редакторов с открытой вкладкой. Если вы являетесь единственным редакторов на вашем сайте, а запросов на admin-ajax.php с вашего IP адреса более 1 в секунду (мы встречали и 20/с), то стоит с этим разобраться.
Самой частой причиной подобного поведения является тема или плагин, поэтому следует их деактивировать и включать по порядку, чтобы найти источник. Здесь стоит также упомянуть плагин Heartbeat Control, который позволяет изменять стандартную конфигурацию Heartbeat в WordPress, но учтите, что отключив Heartbeat вы скорее временно скрываете проблему, а не устраняете ее.
Заключение
В этой статье мы рассмотрели несколько причин, по которым может возникать высокая нагрузка на хостинг-площадку через файл admin-ajax.php, но не исключено, что могут быть и другие.
В случае с любой «лишней» нагрузкой на сервер, рекомендуем всегда проверять факты, средства профилирования — ваши лучшие друзья. Результаты порой бывают удивительными, когда например некоторые из очень популярных плагинов для WordPress оказываются самыми медленными.
Диагностика медленного отклика admin-ajax.php в WordPress. . В то время как WordPress может быть наиболее широко используемой CMS с сотнями тысяч доступных плагинов и тем, это также может привести к тому, что она будет одной из самых сложных для правильной оптимизации, поскольку существует так много различных переменных, которые могут вызывать задержки. Если вы когда-либо запускали тест скорости веб-сайта на своем сайте WordPress, то вы, вероятно, сталкивались со ссылками на
admin-ajax.php
отображается в ваших результатах. Сегодня мы хотим кратко изучить , как лучше диагностировать admin-ajax.php
медленные ответы сервера и какие у вас есть варианты как у владельца сайта WordPress.Что такое файл
admin-ajax.php
? В WordPress 3.6 был представлен API сердцебиения WordPress, позволяющий WordPress обмениваться данными между веб-браузером и сервером. Он использует /wp-admin/admin-ajax.php
для запуска вызовов AJAX из веб-браузера, чтобы отслеживать, что происходит на панели инструментов. Например, если вы войдете на свой сайт WordPress, вы сразу увидите запрос на admin-ajax.php
в ваших логах. Преимуществами этого являются улучшения в управлении сеансами, отслеживании версий и автоматическом сохранении.
WP heartbeat API от команды разработчиков Make WordPress Core:
Первоначально он будет использоваться для автосохранения, блокировки сообщений и предупреждения об истечении срока действия входа, пока пользователь пишет или редактирует. Идея состоит в том, чтобы иметь относительно простой API, который отправляет запросы XHR на сервер каждые 15 секунд и запускает события (или обратные вызовы) при получении данных. Другие компоненты могли бы «попутаться» или получать уведомления о действиях другого пользователя. Это можно использовать для блокировки одновременного редактирования виджетов и меню или любых других задач, требующих регулярных обновлений с сервера.
Существует два разных типа проблем, которые могут вызвать admin-ajax. php
медленный отклик сервера. Первая — это проблема бэкэнд-процессора , а вторая — скорее проблема внешнего интерфейса, когда вы заметите сторонних плагинов , опрашивающих этот файл в тестах скорости вашего сайта. Также было небольшое обновление от основной команды в WordPress 4.1, чтобы улучшить функциональность «перехода в сон» и «пробуждения», но многие люди все еще испытывают проблемы.
admin-ajax.php
Проблемы с центральным процессором Первая проблема, с которой мы сталкиваемся, связана с серверной частью. Импульс от admin-ajax.php
составляет всего около 98 байт, что очень мало. Однако со временем это начинает складываться. Многие люди сталкиваются с проблемами производительности серверной части при работе с дешевыми и общедоступными веб-хостами, на которых действуют ограничения ЦП. WP Tavern столкнулась с этой проблемой на собственном опыте и была вынуждена перенести хосты. Обязательно изучите, какой хостинг WordPress лучше, прежде чем принимать окончательное решение.
Компания InMotion Hosting написала замечательную статью о влиянии Heartbeat API на загрузку процессора. По сути, они вошли в свою панель управления WordPress и просматривали журналы доступа. Они заметили, что когда панель инструментов находится в фокусе, запросы распределяются каждые 60 секунд. Когда панель инструментов была не в фокусе, запросы распределялись каждые 120 секунд. Это много запросов, если вы просто оставили панель инструментов открытой.
И каждый запрос POST
имел соответствующее выполнение PHP-скрипта на сервере с использованием процессорного времени. Они оставили свою панель инструментов открытой на 30 минут, и было выполнено 25 PHP-скриптов с общей нагрузкой процессора 5,77 секунды.
И это был всего один пользователь. Если у вас есть несколько человек, которые входят в ваш сервер WordPress, количество запросов от API увеличивается одновременно.
Плагин Heartbeat Control
Так как же это исправить? Что ж, Джефф Мэтсон, разработчик WordPress, создал отличный бесплатный плагин WordPress под названием Heartbeat Control для управления частотой сердцебиения API. Вы также можете полностью отключить Heartbeat APi, если хотите, однако мы не рекомендуем этого делать. Вы можете скачать Heartbeat Control из репозитория WordPress. После того, как вы установите его, вы сможете найти его на панели инструментов в разделе «Настройки».
На странице конфигурации контроля пульса у вас есть следующие параметры для местоположений пульса:
- Изменить сердцебиение
- Отключить сердцебиение
- Изменить сердцебиение
Вы также можете изменить местоположение, в котором вы хотите, чтобы вышеуказанные настройки пульса действовали, например, :
- Панель инструментов WordPress
- Внешний интерфейс
- Редактор сообщений
Затем вы можете изменить частоту от 15 секунд до 300 секунд. Изменив интервал на 300 секунд, вы снизите вероятность возникновения проблем с производительностью сервера.
admin-ajax.php
медленно из-за сторонних плагинов Вторая проблема, с которой мы сталкиваемся, это сторонние плагины, использующие admin-ajax. php
для определенных функций AJAX, таких как запуск всплывающих окон или социальных счетчиков. Некоторые плагины делают тонны запросов POST
к этому файлу, которые складываются очень быстро. Как определить, какие плагины используют admin-ajax.php
? Что ж, один быстрый способ, не копаясь в куче кода, — запустить Chrome DevTools и посмотреть на отдельные сетевые запросы.
Первый пример с плагином WP Notification Bar
В приведенном ниже примере мы видим некоторое время ожидания после DOMContentLoaded.
Тот факт, что есть запрос, не означает, что он обязательно замедляет работу вашего сайта , так как некоторые вещи могут загружаться асинхронно . AJAX загружается после загрузки страницы, но он по-прежнему неэффективен, когда разработчики плагинов делают тонны запросов. Даже при использовании AJAX следует проявлять большую осторожность, чтобы свести к минимуму количество используемых запросов AJAX.
Затем взгляните на «действие отправки формы» в заголовке ответа HTTP. В нашем устранении неполадок плагин почти всегда раскрывается в названии действия . Например, вы можете увидеть действие mtsnb_add_impression
.
Если мы выполним быстрый поиск в исходном коде на странице, мы можем быстро увидеть класс с mtsnb, и теперь мы знаем, что это наш плагин панели уведомлений в верхней части моей страницы, опрашивающий admin-ajax.php
. Также данные формы bar_id
— еще одна подсказка.
Кроме того, мы можем видеть, что он также устанавливает переменную cookie, что также видно в параметрах плагина.
Затем вы можете отключить плагин на минуту, запустить дополнительные тесты скорости и убедиться, что эти запросы POST
к admin-ajax.php
больше не появляются. Также важно отметить, что плагины кэширования обычно не кэшируют admin-ajax.php
, потому что он находится внутри каталога wp-admin.
Во втором примере мы фактически использовали GTmetrix. Как вы можете, было сделано 5 отдельных запросов на admin-ajax.php
, после DOMContentLoaded.
Если мы углубимся во вкладку Post, то увидим имя действия get_shares_count
, что, очевидно, приведет нас прямо к нашему плагину для обмена в социальных сетях Monarch.
Мы делали это много раз, и, к счастью, действие публикации почти всегда совпадает с классом, именем плагина и т. д. Таким образом, сопоставив некоторые точки, вы можете быстро диагностировать причину этого. Иногда заголовок ответа также может дать вам подсказку.
Затем, чтобы исправить проблему, иногда приходится обращаться к разработчику, чтобы узнать, могут ли они загружаться более эффективно с меньшим количеством вызовов AJAX, или, возможно, ничего нельзя сделать. Если это так, вы можете взвесить свои варианты или найти альтернативный плагин. Мы видели плагины, которые делают 6-7 вызовов AJAX, а затем находят альтернативный плагин с точно такой же функциональностью, что и в 1. Таким образом, отчасти это сводится к тому, как разрабатываются плагины, и вам определенно следует протестируйте несколько плагинов, прежде чем остановиться на одном .
Резюме
Поэтому в следующий раз, когда вы будете запускать тесты скорости WordPress, просто помните о том, как admin-ajax.php
медленные ответы могут повлиять на ваш сайт, как с точки зрения использования центрального процессора, так и сторонних плагинов, выполняющих повторяющийся AJAX. звонки. Возможно, пришло время найти новый альтернативный плагин. Еще один простой способ исправить нагрузку на ЦП из-за пульсирующего API — просто перейти на лучший веб-хост или VPS.
Как уменьшить нагрузку на сервер WordPress Admin-Ajax
В течение нескольких секунд происходит множество вещей, которые могут замедлить работу веб-сайта, узнайте, как уменьшить нагрузку на сервер WordPress admin-ajax, чтобы ускорить его.
Чтобы улучшить взаимодействие с пользователем, мы всегда увеличиваем скорость сайта. Щелчок по ссылке на веб-сайт кажется простой вещью. Но задумывались ли вы когда-нибудь, сколько запросов мгновенно пингуется в течение нескольких секунд после одного клика? За эти несколько секунд происходит много вещей, которые могут замедлить работу веб-сайта Admin-Ajax, это объясняется здесь. В сегодняшней статье вы узнаете, как уменьшить нагрузку на сервер admin-ajax в WordPress.
Хотя за медленной загрузкой сайта стоят разные вещи. При проверке инструментов проверки скорости сайта иногда отображается предупреждение в файле администратора Ajax.php. Это означает, что файл Admin Ajax.php также является одной из причин медленной загрузки сайта.
Admin-ajax.php является частью WordPress AJAX API. Он также обрабатывает запросы как от бэкэнда, так и от внешнего интерфейса. Ajax позволяет обновлять веб-страницы асинхронно, обмениваясь небольшими объемами данных с сервером за кулисами.
В WordPress 3.6 WordPress представил API Heartbeat. API стимулирует двунаправленное соединение между браузером и сервером.
Heartbeat API инициирует события при получении данных/ответа при создании запросов на связь с сервером. Как правило, это вызывает значительную нагрузку на сервер и, следовательно, замедляет работу веб-сайта.
Из-за этого Heartbeat API Admin-ajax.php генерирует запросы каждые 15 секунд. Запрос может быть любой связью с сервером. И, таким образом, отправляя слишком много запросов, серверу требуется много времени для отображения вашего контента или загрузки веб-сайта.
Ускорение панели администратора WordPress
Как снизить нагрузку на сервер Admin-Ajax в WordPress — скоростьТаким образом, лучшим решением для ускорения серверной части сайта является отключение Heartbeat API. Вместо этого установите плагин управления Heartbeat. Плагин управления сердцебиением позволяет легко управлять частотой API сердцебиения WordPress. С помощью этого плагина API сердцебиения можно полностью отключить. Так что отличный способ уменьшить нагрузку на сервер admin-ajax в WordPress
Примечание: Если вы используете какой-либо подключаемый модуль кэширования, отключите кэширование объектов, прежде чем двигаться дальше. Это значительно ускорит работу панели управления WordPress.
Установка плагина Heartbeat Control для снижения нагрузки на сервер Admin-Ajax в WordPress
Как установить плагин Heartbeat Control WordPress- Войдите в свою панель управления WordPress Admin .
- Перейдите к Плагины >> Добавьте новый и найдите Heartbeat Control .
- Сейчас, Установить и Активировать .
Конфигурация плагина управления сердцебиением:
Как ограничить API сердцебиения в WordPress- Перейдите в настройки и затем выберите Управление сердцебиением ( Настройки >> Управление сердцебиением ), чтобы уменьшить нагрузку на сервер admin-ajax в WordPress.
- Теперь выберите места. Локации имеют три варианта на выбор.
- Отключить везде
- Отключить на странице панели инструментов
- Насколько я понимаю, ваш сайт регулярно посещают более 1 пользователя. Итак, я предлагаю выбрать Разрешить только в местоположении Post Edit Страница , чтобы отключить плагин.
- Вы должны выбрать временной интервал для выполнения запросов admin-ajax в меню Override Heartbeat Frequency.
- Установите интервал времени 60 секунд . При этом запросы будут генерироваться каждые 60 секунд. Это резко снижает нагрузку на сервер.
- Теперь найдите подключаемый модуль, использующий Heartbeat API .
- Для этого перейдите на
- Для этого перейдите на