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

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

Почему нужно удалять автосохранения и ревизии в WordPress

При работе с контентом WordPress регулярно создаёт автосохранения и сохраняет ревизии каждой записи. Это удобно для восстановления изменений, но при большом количестве записей и длительной работе сайта таблицы базы данных wp_posts и wp_postmeta могут разрастаться до огромных размеров.

Из-за этого медленнее работают запросы к базе, увеличивается время резервного копирования, а также могут возникать проблемы с хостингом из-за превышения лимитов.

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

Как удалить автосохранения и ревизии с помощью SQL-запросов

Самый прямой способ — удалить записи из базы данных напрямую. Для этого можно использовать SQL-запросы через phpMyAdmin или любой другой инструмент для работы с базой.

Автосохранения в базе данных хранятся с post_type = 'autosave', а ревизии — с post_type = 'revision'.

Удаление всех автосохранений

DELETE FROM wp_posts WHERE post_type = 'autosave';

Этот запрос удалит все автосохранения, освобождая место в базе.

Удаление всех ревизий

DELETE FROM wp_posts WHERE post_type = 'revision';

После выполнения этого запроса в базе останутся только основные версии записей.

Удаление ревизий и автосохранений с очисткой метаданных

Ревизии и автосохранения могут иметь связанные записи в таблице wp_postmeta. Чтобы полностью очистить базу, нужно удалить и их метаданные:

DELETE pm FROM wp_postmeta pm
INNER JOIN wp_posts p ON pm.post_id = p.ID
WHERE p.post_type IN ('revision', 'autosave');

Затем удалить сами записи:

DELETE FROM wp_posts WHERE post_type IN ('revision', 'autosave');

Как ограничить количество ревизий в WordPress через functions.php

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

define('WP_POST_REVISIONS', 3); // Оставлять не более 3 ревизий для каждой записи

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

Если хотите полностью отключить ревизии, можно установить значение false:

define('WP_POST_REVISIONS', false);

Но делайте это с осторожностью — потеря истории изменений может привести к проблемам при редактировании.

Плагины для управления ревизиями и оптимизации базы данных

Если хотите автоматизировать процесс, есть несколько удобных плагинов:

  • Clearfy Pro — содержит инструменты для очистки базы данных, удаления ревизий и оптимизации сайта. Ссылка: wpshop.ru/clearfy-pro
  • WP-Optimize — популярный плагин для очистки базы данных и оптимизации таблиц. Позволяет удалять ревизии, спам, временные данные.
  • Revision Control — позволяет гибко настроить количество ревизий для каждого типа записи.

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

Как создать собственную функцию для удаления старых ревизий в WordPress

Для автоматизации удаления ревизий можно написать простой код, который будет запускаться по крону или вручную. Ниже пример функции clearfy_delete_old_revisions(), удаляющей ревизии старше 30 дней:

function clearfy_delete_old_revisions() {
    global $wpdb;
    $date = date('Y-m-d H:i:s', strtotime('-30 days'));
    $revisions = $wpdb->get_col(
        $wpdb->prepare(
            "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_date < %s",
            $date
        )
    );
    if (!empty($revisions)) {
        foreach ($revisions as $revision_id) {
            wp_delete_post($revision_id, true);
        }
    }
}

// Запуск функции вручную
// clearfy_delete_old_revisions();

Эту функцию можно привязать к wp_cron для регулярной очистки.

Выводы и рекомендации

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

Используйте SQL-запросы для быстрой очистки или плагины для автоматизации. Для тонкой настройки количества ревизий добавляйте константу WP_POST_REVISIONS в wp-config.php или functions.php.

Если вам нужны удобные инструменты для комплексной оптимизации и очистки базы, советуем обратить внимание на Clearfy Pro, который объединяет в себе множество полезных функций для ускорения и безопасности WordPress.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как удалить пустые термины в таксономиях WordPress для оптимизации базы данных
20.01.2026
Как удалить или изменить переадресации в WordPress: практические решения
25.12.2025
Как удалить неиспользуемые поля ACF в WordPress для оптимизации базы данных
08.04.2026
Как удалить неиспользуемые виджеты в WordPress без риска для сайта
12.02.2026
Удаление дублей записей в WordPress по разным условиям
12.12.2025
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙