Ускоряем сайт на WordPress, отключая HeartBeat API
Не иссякнет поток полезных советов пользователям популярнейшей в мире бесплатной CMS. Именно потому, что популярна и потому, что у нее есть особенности, о которых важно помнить. Ранее мы говорили о том, как:
Сегодня мы немного расширим вторую тему и отключим очень ресурсоемкий и не всем нужный механизм WordPress под названием HeartBeat API.
HeartBeat API — функционал WordPress, который обеспечивает такие вещи, как:
- Автосохранение;
- Блокировка записи или страницы для других редакторов сайта, пока запись или страницу редактирует один человек;
- Обновление информации о том, что пользователь всё ещё находится в административной части (консоли).
Делает он это, поддерживая связь между вашим браузером (где вы редактируете сайт) и сервером (на котором сайт хранится).
На деле это выражается в постоянных запросах с интервалом в 15-30 секунд (в зависимости от установленной версии) к одному конкретному файлу admin-ajax.php практически с любой страницы административной панели. Ситуация усугубляется, если вы предпочитаете держать открытыми сразу несколько вкладок консоли: запросы отправляются автономно из каждой вкладки. По сути, HeartBeat API является самым ресурсоёмким из всех стандартных механизмов WordPress.
Эту функцию мы сегодня и отключим. Отключить HeartBeat API для вашего сайта на WordPress рекомендуется, если:
- В целом вашим сайтам на аккаунте хватает ресурсов, значительные превышения происходят только во время работы в консоли;
- Сайт редактируете только лично вы (то есть у сайта 1 редактор, а не несколько).
Как выключить HeartBeat API
Для этого необходимо внести изменения в файл functions.php внутри папки с текущей активной темой (шаблоном) сайта. Это можно сделать в файловом менеджере или через FTP.
Путь к файлу functions.php выглядит так: /путь_до_корня_сайта/wp-content/themes/имя_темы/functions.php.
Допишите в самом начале файла после тега <?php с новой строки следующие строчки:
1 2 3 4 |
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 снова будет работать. Процедуру отключения необходимо будет повторять для каждой новой темы, которую вы начинаете использовать на сайте.
- То же самое касается и обновления текущей темы: после обновления процедуру отключения требуется повторить.
