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

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

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

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

Проблемы от накопления ревизий:

  • Увеличение размера таблицы wp_posts и wp_postmeta.
  • Замедление запросов к базе данных, что влияет на скорость загрузки сайта.
  • Риски повреждения базы из-за большого количества данных.

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

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

Плагин WP-Optimize

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

Чтобы удалить версии записей:

  1. Установите и активируйте WP-Optimize.
  2. Перейдите в раздел WP-Optimize > Database.
  3. Поставьте галочку на «Удалить все старые версии записей».
  4. Нажмите «Выполнить оптимизацию».

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

Плагин Revision Control

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

Как использовать:

  1. Установите и активируйте Revision Control.
  2. В админке WordPress перейдите в Настройки > Revision Control.
  3. Укажите максимальное количество ревизий, которые хотите сохранить (например, 3).
  4. Сохраните настройки.

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

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

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

Для удаления всех ревизий выполните следующий запрос:

DELETE FROM wp_posts WHERE post_type = 'revision';

Этот запрос удалит все записи с типом revision. После этого рекомендуется оптимизировать таблицу:

OPTIMIZE TABLE wp_posts;

Если у вас префикс таблиц отличается от wp_, замените его на ваш.

Автоматическое ограничение количества ревизий через functions.php

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

function wpmagazin_limit_post_revisions() {
    return 3; // Максимум 3 ревизии на запись
}
add_filter('wp_revisions_to_keep', 'wpmagazin_limit_post_revisions', 10, 2);

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

Собственная функция для удаления ревизий с возможностью вызова вручную

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

function wpmagazin_delete_all_revisions() {
    global $wpdb;
    $revisions = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision'");
    if (!empty($revisions)) {
        foreach ($revisions as $revision_id) {
            wp_delete_post($revision_id, true);
        }
    }
}
// Для вызова функции вручную, например, через WP-CLI или хук
// wpmagazin_delete_all_revisions();

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

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

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

  • Используйте автоматическое ограничение ревизий (как описано выше).
  • Периодически запускайте очистку с помощью WP-Optimize или аналогичных плагинов.
  • Регулярно делайте резервные копии базы данных перед любыми массовыми удалениями.
  • Оптимизируйте таблицы базы данных, чтобы уменьшить фрагментацию.
  • Мониторьте размер таблиц и скорость работы сайта, чтобы вовремя реагировать на рост данных.

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

Добавление поля телефона в регистрацию WordPress с подтверждением
07.04.2026
WooCommerce: как отключить категории и товары из поиска и фильтров
25.05.2026
WooCommerce: как удалить товар и все его данные через код без плагинов
15.05.2026
Как использовать meta-заголовки для управления отображением страниц WordPress
02.02.2026
Как создать собственный шорткод в WordPress
07.11.2025