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

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

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

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

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

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

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

Для начала можно оценить количество ревизий в базе с помощью запроса к базе данных MySQL (через phpMyAdmin или консоль):

SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';

Этот запрос покажет общее число ревизий. Для оценки размера таблицы и влияния на производительность можно использовать плагины мониторинга базы, например, WP-Optimize или Query Monitor.

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

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

WP-Optimize

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

  1. Установите и активируйте WP-Optimize.
  2. Перейдите во вкладку "Database".
  3. Выберите пункт "Удалить все ревизии записей".
  4. Нажмите "Run optimization".

Плагин также поддерживает автоматическую очистку по расписанию.

Better Delete Revision

Простой плагин, который ищет и удаляет все ревизии. После установки и активации:

  1. Перейдите в меню "Инструменты" → "Better Delete Revision".
  2. Просмотрите список ревизий.
  3. Нажмите кнопку "Удалить ревизии" для очистки базы.

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

Если вы хотите реализовать удаление ревизий программно, можно создать собственную функцию, которая удалит все ревизии, используя WP_Query и функции WordPress. Ниже пример функции wplab_delete_post_revisions():

function wplab_delete_post_revisions() {
    global $wpdb;
    // Получаем все ID ревизий
    $revisions = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision'");

    if (empty($revisions)) {
        return 'Ревизий не найдено';
    }

    foreach ($revisions as $revision_id) {
        wp_delete_post($revision_id, true); // Удаляем ревизию без перемещения в корзину
    }

    return 'Удалено ревизий: ' . count($revisions);
}

// Запуск удаления
add_action('admin_init', function() {
    if (current_user_can('manage_options') && isset($_GET['wplab_delete_revisions'])) {
        $result = wplab_delete_post_revisions();
        add_action('admin_notices', function() use ($result) {
            echo '<div class="notice notice-success is-dismissible"><p>' . esc_html($result) . '</p></div>';
        });
    }
});

Для запуска удаления добавьте в адресную строку админки параметр ?wplab_delete_revisions=1. Это безопасный способ удалить все ревизии одним кликом, не прибегая к плагинам.

Ограничение количества ревизий в WordPress

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

define('WP_POST_REVISIONS', 5);

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

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

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

Выводы и рекомендации по удалению ревизий

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

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

Как изменить URL страницы автора в WordPress без плагинов
20.01.2026
Как удалить заблокированных пользователей из WooCommerce и оптимизировать базу данных
04.05.2026
Как отключить XML-RPC в WordPress для защиты сайта
04.03.2026
Как отладить и исправить ошибки в WordPress с помощью Debug Mode
10.11.2025
Как изменить роли пользователей в WordPress без плагинов
09.01.2026