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

Д ля лучшего SEO и пользовательского опыта, специалисты всегда рекомендуют для конечного пользователя. В этом контексте если на ваш сайт заходит много пользователей, приборная панель может медленно реагировать 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 . Там вы найдете три раскрывающихся меню для настройки плагина.

Вы можете выбрать ту область, где Heartbeat API будет работать. Есть три варианта на выбор:

  • WordPress Dashboard : Это позволит Heartbeat API в WordPress панели.
  • Frontend : Это позволит API в веб – интерфейсе.
  • Редактор сообщений : Отметьте этот флажок, если вы хотите, позволить Heartbeat API включить на автосохранение и блокировки почтовых функций.

Выберите этот параметр, если хотите, чтобы WordPress Heartbeat API отключался в определенных местах. Будьте осторожны при выборе местоположения, потому что другие плагины могут также использовать WordPress Heartbeat API. Если вы единственный пользователь серверной части WordPress, я бы предложил отключить его везде, а затем проверить, нарушает ли он веб-сайт. Тем не менее, если ваш сайт имеет более одного пользователя, который регулярно вносит свой вклад, мы бы предложили, чтобы вы разрешили Heartbeat API только на страницах редактирования публикации.


Эта выпадающее меню позволяет установить интервал времени, в пределах 0 – 300 секунд, чтобы выполнить админ Ajax запросы. Если установить его на 120 секунд , то запрос будет сгенерирован через каждые 120 секунд. Это позволит значительно снизить нагрузку на сервер. Настройте его в соответствии с вашими потребностями.

Создание нескольких правил

Вы можете создать несколько правил, основанных на ваших требованиях. Например, вы хотите WordPress вызвать каждые 120 секунд, но после редактирования срабатывать на 60 секунд. Для этого необходимо создать два правила. Один для панели мониторинга WordPress и другой для редактора постов и установить их частоту в 120 и 60 соответственно.

Теперь, когда вы настроили все, настало время, проверить, какие плагины замедляют веб-сайт с помощью файла admin-ajax.php.

Перейдите к GTmetrix, введите URL вашего сайта. Это займет несколько минут, чтобы проанализировать сайт. После этого перейдите к закладке Waterfall, и вы увидите, сколько времени файл принимает подключения и ответ. Прокрутите немного вниз, и посмотреть, есть ли запись POST админ-ajax.php . Если да, расширьте его и перейдите на вкладку Post. Здесь вы можете определить виновника. В нашем случае, плагин «desktop switch» использует файл admin-ajax.php и непрерывно посылает запросы на сервер. Это время, чтобы принять решение, либо заменить его другим плагином или удалить его.

Заключительные слова

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

Есть только два решения этой проблемы. Либо отключить Heartbeat API/включить его только в нескольких местах.

Если вы используете какой – либо плагин кэширования, например, W3TC, не забудьте отключить кэш объектов. Это также ускорит приборную панель WordPress.

Если у вас есть какие-либо предложения или запрос, не стесняйтесь оставить комментарий ниже.

Не иссякнет поток полезных советов пользователям популярнейшей в мире бесплатной CMS. Именно потому, что популярна и потому, что у нее есть особенности, о которых важно помнить. Ранее мы говорили о том, как:

Сегодня мы немного расширим вторую тему и отключим очень ресурсоемкий и не всем нужный механизм WordPress под названием HeartBeat API .

HeartBeat API — функционал WordPress, который обеспечивает такие вещи, как:

  • Автосохранение;
  • Блокировка записи или страницы для других редакторов сайта, пока запись или страницу редактирует один человек;
  • Обновление информации о том, что пользователь всё ещё находится в административной части (консоли).

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

На деле это выражается в постоянных запросах с интервалом в 15-30 секунд (в зависимости от установленной версии) к одному конкретному файлу admin-ajax.php практически с любой страницы административной панели. Ситуация усугубляется, если вы предпочитаете держать открытыми сразу несколько вкладок консоли: запросы отправляются автономно из каждой вкладки. По сути, HeartBeat API является самым ресурсоёмким из всех стандартных механизмов WordPress .

Эту функцию мы сегодня и отключим. Отключить HeartBeat API для вашего сайта на WordPress рекомендуется, если:

  • В целом вашим сайтам на аккаунте хватает ресурсов, значительные превышения происходят только во время работы в консоли ;
  • Сайт редактируете только лично вы (то есть у сайта 1 редактор, а не несколько).

Внимание! Данное решение подойдет не всем сайтам. Это зависит от установленной на сайте темы, плагинов и индивидуальных настроек сайта. Вы можете опробовать его и, если оно окажется несовместимо с каким-либо из элементов сайта или отразится на важной для вас функции сайта, вы всегда можете включить HeartBeat API, вернув прежние настройки.

Как выключить HeartBeat API

Для этого необходимо внести изменения в файл functions.php внутри папки с текущей активной темой (шаблоном) сайта. Это можно сделать в файловом менеджере или через FTP.

Путь к файлу functions.php выглядит так: /путь_до_корня_сайта/wp-content/themes/имя_темы/functions.php.

Допишите в самом начале файла после тега

Add_action("init", "stop_heartbeat", 1); function stop_heartbeat() { wp_deregister_script("heartbeat"); }

Эти строчки отключают HeartBeat для всего сайта.

Плагин HeartBeat Control

Есть и менее радикальный вариант решения, чем полное отключение HeartBeat API. Оно обеспечивается специальным плагином HeartBeat Control . Установите его, активируйте и перейдите к настройкам («Инструменты» -> «HeartBeat Control»). В настройках вы можете выбрать следующие параметры:

1. Отключить ли HeartBeat для всего сайта или разрешить его использование только для отдельных его разделов, например, для страницы редактирования и публикации записей в административной панели.

2. Частота запросов к файлу admin-ajax.php. По умолчанию она может быть 15 секунд — измените это значение, например, до 60 секунд, и тем самым сократите расход ресурсов на данные запросы на целых 75% !

О чем важно помнить

  • Отключив HeartBeat API, мы отключили функцию автосохранения. Периодически сохраняйте редактируемые страницы и записи (по мере реальной необходимости).
  • Поскольку отключение HeartBeat API производится на уровне темы (шаблона) сайта, то, как только вы измените тему (шаблон) оформления, HeartBeat API снова будет работать. Процедуру отключения необходимо будет повторять для каждой новой темы, которую вы начинаете использовать на сайте.
  • То же самое касается и обновления текущей темы: после обновления процедуру отключения требуется повторить.

Желаем вам приятной работы!

Всем привет. Продолжаем тему ускорения сайта на wordpress. В статье мы убрали лишнее из файлов, но еще не все. Вообще wordpress тем и хорош, что дает возможность изменять код так, как хочется, под разные желания.

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

Есть такой механизм в движке – HeartBeat API . Зачем он нужен? Что это такое?

HeartBeat API отвечает за

  • за автосохранение;
  • за блокировку страницы или записи для всех других администраторов сайта, пока вы что-то там редактируете;
  • за обновления информации о присутствии пользователя в консоли.

Вы понимаете, надеюсь, что в этот момент происходит просто пожирание ресурсов, ведь идет постоянные запросы на хостинг к файлу admin-ajax.php. А если вы любите открывать сразу несколько вкладок админпанели, то это вообще пипец. Простите меня за жаргон. Запросы-то отправляются автономно для каждой вкладки.

По существу, HeartBeat API – это наиболее ресурсоёмкий механизм из всех в движке WordPress .

Нужен ли вам такой механизм? Это конечно каждый сам для себя решает. Мне вот не нужен.

Считается, что есть смысл отключить, вы являетесь единственным администратором, а также, если в вашем аккаунте ресурсов достаточно, но во время нахождения админа в консоли нагрузки нарастают, причем значительно.

По-моим наблюдениям, после выключения HeartBeat API, занимаемый объем моего сайта уменьшился почти 2,5 раза! Я серьезно. Жаль, не сделала скрин, а возвращаться в исходное состояние не хочется.

Как ускорить сайт на wordpress, выключив HeartBeat API

Отключение HeartBeat API кодом

Все очень просто. Надо дописать в начало файла functions.php, сразупосле тега

Add_action("init", "stop_heartbeat", 1); function stop_heartbeat() { wp_deregister_script("heartbeat"); }

И будет вам счастье.

Внимание! Этот код может не подойти вашему сайту. Все зависит от установленных темы, плагинов и настроек. Можно попробовать и, если код будет несовместим с каким-нибудь элементом сайта или вообще что-то сломается и не будет работать, всегда можно все вернуть назад. Просто сотрите код.

Плагин HeartBeat Control

Не дружите с кодами и боитесь навредить своему сайту? Есть для вас такое решение.

Установите плагин HeartBeat Control (в консоли выбрать плагины, установить новый, ищем в поиске плагин, установка и активирование).

Переходим в настройки (в консоли Инструменты -> HeartBeat Control). В настройках выбрать можно такие параметры:

1. Отключить или нет HeartBeat для всего сайта или использование его для некоторых разделов.

2. Можно и нужно отредактировать частоту запросов к файлу admin-ajax.php. При установке она обозначена, скорее всего, 15 секунд. Если изменить, скажем, до 30 секунд, то расход ресурсов уменьшиться на эти запросы сразу на 25%! А если время еще увеличить, то еще больше. Впечатляет, да?

Внимание!

  • Отключение HeartBeat API ведет к отключению функции автосохранения. Иногда все-таки сохраняйте страницы и записи при их редакции (по мере необходимости).
  • Отключение HeartBeat API происходит в конкретном шаблоне. Если вы шаблон поменяете, то все надо сделать заново.
  • Если вы обновили текущую тему, то после обновления отключение надо повторить.

Всем удачи!

2016-05-05T09:48:44+00:00 Надежда WordPress как ускорить wordpress

Всем привет. Продолжаем тему ускорения сайта на wordpress. В статье Как ускорить wordpress с помощью минимизации CSS, HTML и Javascript мы убрали лишнее из файлов, но еще не все. Вообще wordpress тем и хорош, что дает возможность изменять код так, как хочется, под разные желания. Когда вы покупаете хостинг, то, конечно, вы прикидываете...

Надежда Трофимова [email protected] Administrator Блог сайт

Возможно Вас также заинтересует:

Как сделать Фавикон для сайта

Фавиконом называется это красивый значок, который Все видят возле названия сайта в браузере. Фавикон позволяет выделиться сайту, как в закладках браузера, так и в...

Красивые кнопки для сайта

Всем доброго времени суток. Вдруг есть желающие на своем сайте разместить красивые кнопки, а найти они не могут. В самом деле в поисковиках я пыталась...

Пример 404 страницы

Здравствуйте, уважаемый читатель моего блога. Эта статья абсолютно ни о чем, просто, наконец то руки дошли до страницы 404.

Как и куда прописываются теги Title и Description

Что это такое - теги Title и Description? Эти теги необходимы для оптимизации Вашего сайта. Если неправильно прописаны теги, поисковые системы не проиндексируют Вашу статью. Много...

Создать данный пост меня заставила проблема, которая все настойчивее стала стучаться на мой сайт. Проблема — открытие страниц сайта и работа в админпанели. Они стали настолько сильны и часты, что стало затруднительным составить даже небобольшое сообщение. Соединение с сервером постоянно пропадало. Высокая нагрузка на CPU, а значит превышение так называемого мягкого лимита происходила постоянно; на почту очень часто стали проиходить сообщения от Метрики и плагина Jetpack, о том что сайт часто бывает недоступен, даже в тот момент, когда я в нем не работал. Короче — ужас ужасный снова настиг меня на проблеме скорости работы сайта. И я снова обратился в службу подержки на своем хостинге «Джино»

Ответ пришел незамедлительно, а при дальнейшем диалоге с небольшими пояснениями, я понял суть проблем и смог их исправить.

Поддержка хостинга прежде всего обратила мое внимание на большое количество обращений к /wp-admin/admin-ajax.php. «Обращения создают действия в административной панели сайта. Такое поведение в ней характерно, если какой-то из плагинов работает не корректно. Отключайте плагины сайта по очереди и следите за его работой. Обнаружив проблемный плагин, попробуйте его обновить или установить стабильную версию, или замените аналогом, с которым не возникает проблем».

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

Служба техподдержки так же обратила на еще одну проблему и предложила провести некоторые действия в коррекции кода в файле wp-cron.php. Но об этой проблеме в конце сообшения.

Ну а теперь давайте перейдем к сути вышесказанного.

Что такое Heartbeat API на WordPress и как его ограничить

Слово «Heartbeat» переводится как «Сердцебиение» и назван он так для API не зря. Она обеспечивает определенную частоту запросов к серверу. По умолчанию и в зависимости от страницы админпанели, это происходит с разными интервалами: при редактировании записей — каждые 15 сек, при работе в Консоли — одну минуту. WordPress Heartbeat API — это функция, которая обеспечивает:

  • Автосохранение при создании сообщений;
  • Блокировки записей или страниц для других редакторов сайта, пока запись или страницу редактирует один человек;
  • Обновление информации о том, что пользователь всё ещё находится в административной части (консоли или на странице редакции записей).

Данная функция, прописанная в движке WordPres очень важна, особенно тогда, когда на сайте могут работать несколько авторов и администрирование бывает коллективным. Однако она же может стать причиной «торможения» сайта и значительного увеличения нагрузки на сервер.

Если вы являетесь единственным автром сайта, то функцию Heartbeat API можно либо полностью отключить, либо настроить на удобный вам режим, позволяющий регулировать нагрузку на сервер.

Полное отключение Heartbeat API

Этот жесткий сценарий, который я не пожелал сделать, заключается в том, что нужно проделать некоторую операцию в файле functions.php вашей темы, установленной в данный момент на сайте.

Add_action("init", "stop_heartbeat", 1); function stop_heartbeat() { wp_deregister_script("heartbeat"); }

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

Плагин Heartbeat Control и его настройки

Настроек всего и две и, несмотря на то, что плагин на английском, для незнающих этот язык, не трудно будет в них разобраться. Напомню, что настройка плагина по умолчанию (use default) означает, что Heartbeat API не отключен ни на одной из страниц, а интервал запросов к серверу — 15 сек. То есть все выглядет так, словно этого плагина на вашем сайте нет.

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

Для ясности делаю пояснения:

1. use default — использовать Heartbeat API по умолчанию;
2. disable everywhere — отключить Heartbeat API везде;
3. disable on dashboard page — отключить Heartbeat API на приборной страницe (консоль);
4. allow onli от post edit pages — использовать Heartbeat API только при редактировании страниц.

2. Корретировка частоты запросов к серверу

Тут все очень просто. Нужно лишь выбрать подходящий интервал запросов к северу. Чем реже «пульс» — тем реже запросы — тем меньше нагрузка на сервер.

После совершения настроек сохраняем измения.

Поскольку автоматическое сохрание сохрание записей во время их редактирования остается желанной функцией (удалить лишние редакции можно потом чисткой специальными плагинами), а потерять почти завершенную запись по каким-либо техническим причинам неприятно (пропал интернет или связь с сервером и т. п.) очень нежелательно. Поэтому настройку для перврого блока вполе можно установить в режим «use default» но вполне достаточно будет сделать настройки во втором блоке, так как установка таймера частоты запросов к файлу admin-ajax.php. в 60 сек. сократит расход ресурсов на данные запросы на целых 75% !

Разумеется, существует много причин замедления работы сайтов. Не имея должных знаний и работая с ними мы просто не знаем, что является причинами таких весьма нежелательных процессов. Наверное нам нужно чаще обращаться к специалистам, в том числе и в техподдержку хостинга.

В начале статьи я упомянул о том, что работники поддержки обратили мое внимание еще на одну причину сложности в работе моих сайтов. Причина —

Нежелательные процессы в файле wp-cron.php

Техподдержка в результате исследований работы моих сайтов, обратила внимание, что на них «наблюдаются процессы wp-cron.php». Они рекомендовали: «Если выполнение этого файла вызывает нездоровую нагрузку на сервер - можно отключить эти задачи».

  1. Для этого в файл конфигурации WordPress wp-config.php добавляем строку:
    define(‘DISABLE_WP_CRON’, ‘true’);
    Добавить её можно где-то после установки языка, т.е. после строки
    define(‘WPLANG’, ‘ru_RU’);
  2. Другой вариант решения - в самом файле wp-cron.php закомментировать строку: wp-cron.php ignore_user_abort(true); Для этого перед ней нужно установить двойной слэш. Получится вот так: //ignore_user_abort(true); Находится данная строка в 12 ряду файла.

Это все, друзья.

(Visited 304 times, 1 visits today)