Редактор Gutenberg стал стандартом для создания контента в WordPress, но при работе с ним иногда наблюдаются замедления, особенно на слабых хостингах или при большом числе плагинов. Одним из факторов, влияющих на производительность, является активное использование AJAX-запросов, которые постоянно обновляют и сохраняют данные блока в фоне. В этой статье подробно разберём, как отключить AJAX в Gutenberg, чтобы повысить скорость работы редактора и снизить нагрузку на сервер.
Что такое AJAX в Gutenberg и почему он замедляет работу
AJAX — это технология, позволяющая обмениваться данными с сервером без перезагрузки страницы. В Gutenberg AJAX применяется для автосохранения блоков, обновления их содержимого и взаимодействия с REST API WordPress.
Постоянные AJAX-запросы обеспечивают актуальность данных, но одновременно создают нагрузку на сервер и браузер, особенно если в редакторе много блоков или подключены ресурсоёмкие плагины.
Из-за этого при редактировании контента может наблюдаться задержка ввода, "подвисания" интерфейса и даже ошибки сохранения.
Когда стоит отключать AJAX в Gutenberg
Отключение AJAX оправдано, если:
- Вы используете Gutenberg на сайте с ограниченными ресурсами;
- Редактор сильно тормозит из-за фоновых запросов;
- Не требуется частое автосохранение в реальном времени (например, если вы делаете редактирование с частыми ручными сохранениями);
- Вы хотите максимально упростить взаимодействие с сервером для снижения нагрузки.
Важно: отключение AJAX может снизить удобство работы, поэтому для сайтов с активным редакторским процессом и множеством пользователей стоит тщательно взвесить этот шаг.
Как отключить AJAX в Gutenberg: практические методы
Отключение автосохранения через AJAX
Автосохранение — одна из ключевых функций AJAX в Gutenberg. Отключить её можно программно, добавив следующий код в файл functions.php вашей темы или в собственный плагин:
function wpid_disable_gutenberg_autosave() {
wp_deregister_script('autosave');
}
add_action('wp_print_scripts','wpid_disable_gutenberg_autosave');
Этот код отключит скрипт автосохранения WordPress, тем самым убрав AJAX-запросы автосохранения в редакторе.
Отключение частых обновлений блоков
Gutenberg обновляет содержимое блоков через AJAX по ходу редактирования. Можно уменьшить частоту этих обновлений с помощью JavaScript-фильтров:
function wpid_reduce_gutenberg_saving_frequency() {
wp_add_inline_script('wp-edit-post', "
wp.data.dispatch('core/editor').setAutosaveInterval(600000); // 10 минут
");
}
add_action('enqueue_block_editor_assets', 'wpid_reduce_gutenberg_saving_frequency');
Этот пример увеличивает интервал автосохранения с дефолтных 10 секунд до 10 минут, что значительно уменьшит количество AJAX-запросов.
Отключение AJAX-запросов REST API в редакторе
Gutenberg активно использует REST API и AJAX для загрузки данных блоков и метаданных. Можно ограничить эти запросы, отключив ненужные блоки или фильтруя их вывод.
Для этого применяют фильтр rest_endpoints:
function wpid_disable_unused_rest_endpoints($endpoints) {
if (isset($endpoints['/wp/v2/block-renderer'])) {
unset($endpoints['/wp/v2/block-renderer']);
}
return $endpoints;
}
add_filter('rest_endpoints', 'wpid_disable_unused_rest_endpoints');
Это ограничит некоторые REST API-запросы, уменьшая AJAX-трафик.
Плагины для управления AJAX и производительностью Gutenberg
Если вы не хотите писать код, можно использовать готовые решения:
- Clearfy Pro — позволяет отключать ненужные функционалы WordPress, включая автосохранение и AJAX-запросы в редакторе. Подробнее: wpshop.ru/clearfy-pro
- WPOptimize — плагин для оптимизации базы данных и кэширования, который косвенно улучшает работу редактора за счёт снижения нагрузки на сервер.
Проверка и отладка AJAX-запросов в Gutenberg
Чтобы понять, какие AJAX-запросы замедляют работу, используйте инструменты разработчика браузера (F12) на вкладке Network. Фильтруйте запросы по типу XHR и смотрите, сколько и как часто отправляются запросы.
Для детальной отладки можно подключить плагин Query Monitor, который покажет нагрузку на сервер и время выполнения запросов.
Если вы отключили AJAX и при этом заметили проблемы с сохранением контента, попробуйте поэкспериментировать с интервалом автосохранения или частично отключать функционал, чтобы найти баланс между удобством и производительностью.
Выводы и рекомендации
Отключение AJAX в Gutenberg — эффективный способ снизить нагрузку на сервер и ускорить работу редактора, особенно на слабых хостингах. Важно помнить, что это может повлиять на удобство и безопасность данных, поэтому подходить к решению нужно внимательно.
Используйте приведённые методы и плагины, тестируйте изменения и подбирайте оптимальные настройки под задачи вашего сайта.