Почему стоит отключить автосохранение и ревизии в WordPress?
Автосохранение и система ревизий в WordPress предназначены для предотвращения потери данных при редактировании записей и страниц. Однако при большом объеме контента и активном редактировании они могут тормозить работу админки, создавать дополнительную нагрузку на базу данных и увеличивать размер базы. Особенно это заметно на крупных сайтах и при использовании слабых серверов.
Если вы администрируете сайт с частыми правками и хотите ускорить работу редактора, отключение автосохранения и ограничение ревизий поможет уменьшить количество запросов к базе и ускорить загрузку страниц редактирования.
Диагностика: как проверить, что автосохранение и ревизии замедляют редактор?
- Откройте любую запись или страницу в редакторе WordPress.
- Обратите внимание на задержку при вводе текста, переключении между блоками (в Gutenberg) или на кнопку "Обновить".
- Проверьте нагрузку на базу данных: с помощью плагина Query Monitor или phpMyAdmin посмотрите количество записей в таблице
wp_postsс типомrevision. - Если ревизий очень много (сотни или тысячи на сайте), это может замедлять загрузку и сохранение контента.
Пошаговое решение: как отключить автосохранение и ограничить ревизии
1. Отключение автосохранения
Автосохранение отключается с помощью фильтра JavaScript в WordPress. Добавьте следующий код в файл functions.php вашей темы или в кастомный плагин:
function disable_autosave() {
wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'disable_autosave');Этот код полностью отключит механизм автосохранения, что уменьшит количество AJAX-запросов при редактировании.
2. Ограничение и отключение ревизий
Чтобы полностью отключить ревизии, добавьте в wp-config.php перед строкой /* That's all, stop editing! */ следующий код:
define('WP_POST_REVISIONS', false);Если нужно не отключать, а ограничить количество ревизий (например, хранить не более 3), используйте:
define('WP_POST_REVISIONS', 3);Проверка результата после внедрения
- Откройте редактор записи, попробуйте ввести текст и убедитесь, что автосохранение не происходит (нет периодических запросов в Network в DevTools браузера с параметром
action=autosave). - Создайте или обновите запись, затем проверьте таблицу
wp_postsв базе данных — записи ревизий больше не создаются или их количество ограничено. - Оцените скорость загрузки страницы редактирования — она должна заметно улучшиться при большом объеме контента.
Частые ошибки и как их исправить
- Ошибка: Автосохранение не отключилось.
Причина: Код добавлен не в правильное место или конфликт с другим плагином.
Решение: Проверьте, что код находится вfunctions.phpактивной темы или в отдельном плагине. Временно отключите другие плагины, чтобы проверить конфликт. - Ошибка: Ревизии продолжают создаваться после установки
WP_POST_REVISIONS
Причина: Кэширование или код вwp-config.phpдобавлен некорректно.
Решение: Проверьте синтаксис и расположение кода, очистите кэш сервера и браузера. - Ошибка: Потеря данных из-за отключения автосохранения.
Решение: Отключайте автосохранение только если уверены в стабильности сервера и надежных ручных сохранениях.
Практические советы по безопасности и производительности
- Отключайте автосохранение только на сайтах с хорошим резервным копированием и стабильной работой сервера.
- Ограничение ревизий помогает не только в скорости редактирования, но и уменьшает размер резервных копий и ускоряет бэкапы.
- Если пользуетесь плагинами для оптимизации базы данных (например, Clearfy Pro), регулярно удаляйте старые ревизии и автосохранения.
- Тестируйте изменения на тестовой среде перед применением на боевом сайте.
Сравнение вариантов отключения автосохранения и ревизий
| Метод | Плюсы | Минусы | Когда применять |
|---|---|---|---|
Отключение автосохранения через wp_deregister_script('autosave') | Уменьшает AJAX-запросы, ускоряет редактор | Риск потери данных при сбое браузера | Стабильный сервер, регулярные ручные сохранения |
Отключение ревизий через define('WP_POST_REVISIONS', false) | Минимизирует размер базы, ускоряет загрузку | Нельзя откатить изменения через ревизии | Если не нужна история изменений |
Ограничение ревизий числом (define('WP_POST_REVISIONS', 3)) | Баланс между историей и производительностью | Хранится ограниченное количество изменений | Средние сайты с активной редакцией |