Как отключить автоматическое сохранение в WordPress для улучшения производительности и удобства

Автоматическое сохранение (автосейв) — одна из полезных функций WordPress, которая позволяет избежать потери данных при создании или редактировании записей и страниц. Однако в некоторых случаях автоматическое сохранение может создавать неудобства: замедлять работу редактора, приводить к излишнему захламлению базы данных или конфликтовать с определёнными плагинами и кастомными решениями. В этой статье подробно рассмотрим, как отключить автосейв в WordPress, сохранив при этом базовую функциональность и безопасность.

Что такое автоматическое сохранение в WordPress и зачем его отключать

WordPress автоматически сохраняет черновики контента через заданные интервалы времени, обычно каждые 60 секунд. Это достигается с помощью AJAX-запросов и хранением промежуточных версий поста в базе данных. Автосейв помогает защитить контент при неожиданном закрытии браузера или сбоях.

Но автосейв имеет и недостатки:

  • Увеличение количества ревизий и объёма базы данных, что может повлиять на производительность.
  • Периодические AJAX-запросы создают нагрузку на сервер, особенно если редактирование происходит несколькими пользователями одновременно.
  • В некоторых случаях автосейв конфликтует с редактируемыми блоками или плагинами, вызывая потерю данных или ошибки.

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

Как отключить автоматическое сохранение через functions.php

Самый простой и безопасный способ отключить автосейв — добавить фильтр, который изменяет интервал автосейва на очень большое значение или полностью отключает функцию. Добавьте следующий код в файл functions.php вашей темы или в файл основного плагина:

function wpscan_disable_autosave() {
    wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'wpscan_disable_autosave');

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

Альтернативный способ: увеличить интервал автосейва

Если полное отключение кажется слишком радикальным, можно просто увеличить интервал автосейва, чтобы он срабатывал реже. Например, установить интервал на 1 час (3600 секунд):

function wpscan_change_autosave_interval() {
    return 3600; // 1 час в секундах
}
add_filter('autosave_interval', 'wpscan_change_autosave_interval');

Это значит, что автосейв будет запускаться только раз в час — практически отключая функцию для большинства пользователей, но сохраняя её в случае аварий.

Как очистить базу данных от старых автосохранений и ревизий

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

Использование плагина WP-Optimize

Плагин WP-Optimize позволяет одним кликом удалить ревизии, автосохранения и другие ненужные данные из базы данных. Он прост в использовании и не требует навыков программирования.

Удаление автосохранений через SQL-запрос

Если вы предпочитаете не использовать плагины, можно вручную удалить автосохранения через SQL-запрос в базе данных:

DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_posts WHERE post_status = 'auto-draft';

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

Как отключить автосохранение для конкретных типов записей или ролей пользователей

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

Отключение автосейва для кастомного типа записи

Добавим проверку в функцию отключения автосейва:

function wpscan_conditional_disable_autosave() {
    global $post;
    if ($post && $post->post_type === 'custom_post_type') {
        wp_deregister_script('autosave');
    }
}
add_action('wp_print_scripts', 'wpscan_conditional_disable_autosave');

Замените custom_post_type на нужный вам тип записи.

Отключение автосейва для пользователей с определённой ролью

Этот код отключит автосейв для пользователей с ролью author:

function wpscan_disable_autosave_for_authors() {
    if (current_user_can('author') && !current_user_can('administrator')) {
        wp_deregister_script('autosave');
    }
}
add_action('wp_print_scripts', 'wpscan_disable_autosave_for_authors');

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

Совместимость с плагинами и альтернативные подходы

Если вы используете плагины, связанные с редактором блоков (Gutenberg) или кастомными редакторами, отключение автосейва может привести к конфликтам. Рекомендуется:

  • Проверять работу сайта в тестовой среде после отключения автосейва.
  • Использовать специализированные плагины для управления ревизиями и автосохранениями, например, Clearfy Pro, который позволяет гибко настраивать эти параметры без кода.
  • Рассмотреть возможность оптимизации интервала автосейва, а не полного отключения.

Итоговые рекомендации и лучшие практики

Отключение автосейва в WordPress — полезный приём для оптимизации производительности и устранения конфликтов, но требует аккуратности. Всегда делайте резервные копии базы данных перед изменениями, тестируйте на тестовом сайте и выбирайте метод, соответствующий вашим задачам:

  • Для полного отключения используйте wp_deregister_script('autosave').
  • Для снижения нагрузки — увеличьте интервал автосейва.
  • Для очистки базы от накопленных автосохранений — используйте WP-Optimize или SQL-запросы.
  • Для выборочного отключения — применяйте условия по типу записи или роли.

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

Как удалить старые версии постов в WordPress с помощью кода
27.12.2025
Как создать собственный шорткод в WordPress: полное руководство
15.11.2025
Как создать собственный плагин для автоматического удаления спама в комментариях WordPress
18.11.2025
Как автоматизировать обновление тем и плагинов WordPress с помощью кода
29.11.2025
Автоматическое удаление отказанных заказов в WooCommerce
18.04.2026