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

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

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

Каждая ревизия занимает место в таблице wp_posts. При активном ведении блога или интернет-магазина количество ревизий может исчисляться тысячами. Это приводит к следующим проблемам:

  • Увеличение размера базы данных;
  • Замедление запросов к базе данных, особенно при выборке записей;
  • Увеличение времени резервного копирования;
  • Нагрузка на сервер при выполнении операций с большим объёмом данных.

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

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

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

define('WP_POST_REVISIONS', 3);

Это установит сохранение максимум трёх ревизий для каждой записи или страницы. Если хотите полностью отключить ревизии, можно указать значение false:

define('WP_POST_REVISIONS', false);

Однако отключать ревизии полностью не рекомендуется, так как это снижает безопасность контента.

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

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

DELETE FROM wp_posts WHERE post_type = 'revision';

Этот запрос удалит все ревизии из базы данных, что освободит много места. Но будьте осторожны — лучше сделать резервную копию базы данных перед выполнением.

Удаление ревизий с помощью WP-CLI

Если на сервере установлен WP-CLI, удаление ревизий можно выполнить командой:

wp post delete $(wp post list --post_type='revision' --format=ids) --force

Это быстрый и безопасный способ очистить базу данных без захода в phpMyAdmin.

Автоматическое удаление ревизий с помощью плагинов

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

  • WP Rocket — премиум плагин для оптимизации, включает функции очистки базы данных, в том числе ревизий.
  • WP-Sweep — бесплатный плагин, позволяющий удалить ревизии, автосохранения, спам-комментарии и многое другое.
  • Clearfy Pro — многофункциональный плагин для оптимизации WordPress, включая управление ревизиями и очистку базы.

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

Пример пользовательской функции для удаления ревизий через Cron

Если хочется автоматизировать процесс удаления ревизий без плагинов, можно создать функцию в functions.php активной темы, которая будет запускаться по расписанию:

function wpmart_delete_old_revisions() {
    global $wpdb;
    $days = 30; // Удалять ревизии старше 30 дней
    $wpdb->query( $wpdb->prepare(
        "DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_modified < %s",
        date('Y-m-d H:i:s', strtotime("-{$days} days"))
    ));
}

if ( ! wp_next_scheduled( 'wpmart_daily_revision_cleanup' ) ) {
    wp_schedule_event( time(), 'daily', 'wpmart_daily_revision_cleanup' );
}
add_action( 'wpmart_daily_revision_cleanup', 'wpmart_delete_old_revisions' );

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

Объяснение кода

Мы используем глобальный объект $wpdb для выполнения SQL-запроса. Запрос удаляет из таблицы wp_posts все записи с типом revision, у которых дата изменения post_modified старше 30 дней. Далее регистрируем ежедневное событие с помощью wp_schedule_event и подключаем к нему функцию очистки.

Рекомендации по оптимизации базы данных после очистки ревизий

После удаления ревизий рекомендуется оптимизировать таблицы базы данных, чтобы освободить неиспользуемое пространство и повысить производительность. Оптимизацию можно сделать через phpMyAdmin, выбрав таблицу wp_posts и нажав "Оптимизировать".

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

Дополнительные советы

  • Регулярно делайте резервные копии базы данных перед очисткой;
  • Следите за количеством ревизий и при необходимости снижайте лимит в wp-config.php;
  • Используйте кеширование и оптимизацию базы, чтобы ускорить работу сайта.
Как автоматизировать создание резервных копий в WordPress
05.02.2026
Как отключить визуальный конструктор Gutenberg в WordPress и вернуть классический редактор
23.01.2026
Как отключить автовоспроизведение изображений в WordPress
23.12.2025
WooCommerce: автоматическое изменение стоимости товаров по расписанию
27.05.2026
WooCommerce: автоматическое отключение товара после продажи
10.06.2026