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

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

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

Каждый раз, когда вы нажимаете кнопку «Сохранить» или «Обновить» в редакторе WordPress, создаётся новая ревизия. По умолчанию WordPress хранит все эти версии, что со временем может привести к тысячам записей ревизий в таблице wp_posts. Это увеличивает размер базы данных и затрудняет выполнение запросов, особенно на хостингах с ограниченными ресурсами.

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

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

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

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

Для начала полезно узнать, сколько ревизий хранится в вашей базе данных. Это можно сделать через phpMyAdmin или с помощью SQL-запроса:

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

Если число очень большое (тысячи и более), стоит задуматься об очистке.

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

Самый простой и быстрый способ — выполнить SQL-запрос, который удалит все ревизии:

DELETE FROM wp_posts WHERE post_type = 'revision';

Этот запрос полностью очистит таблицу от ревизий. Однако он не обновит связанные с ними метаданные в таблице wp_postmeta. Чтобы удалить и метаданные, можно использовать более сложные запросы, но обычно этого достаточно.

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

Удаление ревизий средствами WordPress: пример функции wp_codex_delete_post_revisions()

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

function wp_codex_delete_post_revisions() {
    global $wpdb;
    $limit = 100;
    do {
        $revisions = $wpdb->get_col(
            "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision' LIMIT %d",
            $limit
        );
        if (empty($revisions)) {
            break;
        }
        foreach ($revisions as $revision_id) {
            wp_delete_post($revision_id, true);
        }
    } while (count($revisions) === $limit);
}
// Запуск функции вручную
// wp_codex_delete_post_revisions();

Функция выбирает по 100 ревизий за раз и удаляет их через стандартную функцию wp_delete_post() с параметром $force_delete = true, чтобы избежать перемещения в корзину. Такой подход корректно удаляет все связанные данные.

Ограничение количества ревизий через wp-config.php

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

define('WP_POST_REVISIONS', 5);

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

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

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

  • WP-Optimize — мощный плагин для очистки и оптимизации базы данных, включая удаление ревизий постов. Имеет удобный интерфейс и дополнительные функции по оптимизации.
  • Advanced Database Cleaner — позволяет удалять ревизии, спам-комментарии и другие ненужные данные. Поддерживает планирование очистки.
  • Clearfy Pro (https://wpshop.ru/plugins/clearfy-pro/?utm_source=wpcodex.ru&utm_medium=article&utm_campaign=kak-udalit-revizii-postov-v-wordpress-chtoby-pochistit-bazu) — плагин от WPSHOP с функциями оптимизации и управления ревизиями, также помогает отключать лишние функции WordPress.

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

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

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

  • UpdraftPlus — популярный плагин для автоматического создания бэкапов.
  • WP Database Backup — простое решение для экспорта и восстановления базы данных.

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

Как проверить эффективность удаления ревизий

После очистки ревизий можно проверить размер таблицы wp_posts и время отклика сайта. Для этого:

  • В phpMyAdmin посмотрите размер таблицы wp_posts до и после удаления.
  • Используйте плагины мониторинга производительности, например, Query Monitor, чтобы увидеть уменьшение времени выполнения запросов.
  • Оцените скорость загрузки страниц с помощью инструментов Google PageSpeed Insights или GTmetrix.

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

Создание автоматического ответа на отзывы в WordPress с AJAX
25.01.2026
Как удалить и заблокировать IP-адреса в WordPress
11.02.2026
Как добавить собственные типы табличных данных в WordPress
09.04.2026
Автоматическое создание копий постов в WordPress
01.04.2026
Как удалить пустые мета данные в WordPress для оптимизации базы данных
17.03.2026