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

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

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

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

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

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

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

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

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

define('WP_POST_REVISIONS', 3); // Хранить только 3 ревизии записи

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

Если хотите полностью отключить ревизии, можно прописать:

define('WP_POST_REVISIONS', false); // Отключить ревизии

Но будьте осторожны — это уберет возможность откатиться к предыдущим версиям.

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

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

Вот пример запроса для удаления всех ревизий:

DELETE FROM wp_posts WHERE post_type = 'revision';

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

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

OPTIMIZE TABLE wp_posts;

Так вы уменьшите размер файлов базы и улучшите производительность.

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

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

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

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

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

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

Если хотите внедрить автоматическую очистку ревизий в код темы или плагина, можно использовать следующий пример. Он удаляет ревизии старше 30 дней по крону WordPress:

function wordpressa_delete_old_revisions() {
    global $wpdb;
    $days = 30;
    $wpdb->query(
        $wpdb->prepare(
            "DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_modified < DATE_SUB(NOW(), INTERVAL %d DAY)",
            $days
        )
    );
}

if (!wp_next_scheduled('wordpressa_cron_delete_revisions')) {
    wp_schedule_event(time(), 'daily', 'wordpressa_cron_delete_revisions');
}
add_action('wordpressa_cron_delete_revisions', 'wordpressa_delete_old_revisions');

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

Где разместить этот код

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

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

Для оценки текущего состояния базы можно использовать SQL-запрос:

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

Также полезно проверить размер таблиц базы, например, в phpMyAdmin или с помощью плагина WP-DBManager.

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

Дополнительные советы по оптимизации базы данных WordPress

Помимо удаления ревизий, рекомендуем рассмотреть следующие меры:

  • Удаление спам-комментариев и мусорных данных;
  • Оптимизация таблиц через SQL-запрос или плагины;
  • Настройка автоматического удаления мусора с помощью плагинов, например, Clearfy Pro;
  • Ограничение хранения данных статистики и логов.

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

Автоматическое создание sitemap в WordPress без плагинов
22.01.2026
Как автоматически удалять заказы WooCommerce после отмены или возврата оплаты
28.04.2026
Как использовать Custom Post Types для создания нестандартных типов записей
09.12.2025
Как отменить заказ в WooCommerce после оплаты: практическое руководство
07.05.2026
Как сделать автоматический экспорт записей WordPress в CSV
02.03.2026