Ускоряем сайт на WordPress, отключая HeartBeat API

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

1. Правильно настроить кэширование на сайте.
2. Уменьшить нагрузку при работе с консолью.

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

5372792

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.

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

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

комментариев 5

Добавить комментарий