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

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

Что такое ревизии в WordPress и зачем их удалять

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

Удаление старых ревизий помогает:

  • Снизить нагрузку на базу данных.
  • Ускорить резервное копирование и восстановление.
  • Повысить общую производительность сайта.

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

Плагины для автоматического удаления ревизий в WordPress

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

WP-Optimize

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

Simple Revisions Delete

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

Optimize Database after Deleting Revisions

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

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

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

Пример функции wparticles_delete_old_revisions:

function wparticles_delete_old_revisions() {
    global $wpdb;
    // Удаляем ревизии старше 30 дней
    $days = 30;
    $date = date('Y-m-d H:i:s', strtotime('-' . $days . ' days'));

    $revisions = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM $wpdb->posts WHERE post_type = 'revision' AND post_modified < %s",
        $date
    ));

    if ($revisions) {
        foreach ($revisions as $revision_id) {
            wp_delete_post($revision_id, true);
        }
    }
}

Эту функцию нужно привязать к крону WordPress, например, раз в неделю:

function wparticles_schedule_revision_cleanup() {
    if (!wp_next_scheduled('wparticles_weekly_revision_cleanup')) {
        wp_schedule_event(time(), 'weekly', 'wparticles_weekly_revision_cleanup');
    }
}
add_action('wp', 'wparticles_schedule_revision_cleanup');
add_action('wparticles_weekly_revision_cleanup', 'wparticles_delete_old_revisions');

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

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

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

Например, чтобы сохранять максимум 5 ревизий на пост:

define('WP_POST_REVISIONS', 5);

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

Дополнительные советы по работе с ревизиями

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

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

Как сделать отладку REST API WordPress с примером кода
16.12.2025
Как изменить или удалить URL страницы в WordPress без потери SEO
30.12.2025
Как использовать WPCommunity для создания форума на WordPress
24.01.2026
Автоматическое создание миниатюр из видео в WordPress
13.04.2026
Как использовать WPRemark для оценки контента в WordPress
14.03.2026

Ниже мы подобрали самые актуальные материалы по Вордпресс