Как удалить автоматические ревизии в WordPress для ускорения сайта

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

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

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

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

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

  • Снизить размер базы данных.
  • Уменьшить время выполнения SQL-запросов.
  • Ускорить админ-панель и загрузку сайта.

Как удалить все автоматические ревизии через phpMyAdmin

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

DELETE FROM wp_posts WHERE post_type = 'revision';

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

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

OPTIMIZE TABLE wp_posts;

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

Удаление ревизий с помощью PHP-кода (функция для темы или плагина)

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

function wpsource_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);
        }
    }
}
// Вызовите функцию один раз, затем удалите или закомментируйте вызов
// wpsource_delete_all_revisions();

Эта функция получает все ID ревизий и удаляет их с помощью wp_delete_post. Вызовите функцию один раз вручную — например, временно добавьте вызов в functions.php, обновите сайт, а затем удалите вызов, чтобы не удалять ревизии постоянно.

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

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

define('WP_POST_REVISIONS', 3);

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

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

define('WP_POST_REVISIONS', false);

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

Плагины для управления ревизиями и оптимизации базы данных

Если вы предпочитаете готовые решения, обратите внимание на плагины:

  • Clearfy Pro — позволяет легко удалить ревизии, оптимизировать базу и настроить лимит ревизий. Интеграция с https://wpshop.ru/plugins/clearfy-pro/
  • WP-Optimize — популярный бесплатный плагин для очистки базы, удаления ревизий и кеширования.
  • Advanced Database Cleaner — позволяет удалять ревизии, оптимизировать таблицы и планировать очистку.

Автоматизация удаления ревизий с помощью WP-Cron

Для регулярной очистки ревизий можно создать задачу cron в WordPress. Добавим хук в functions.php:

function wpsource_delete_revisions_cron() {
    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);
        }
    }
}

if (!wp_next_scheduled('wpsource_daily_delete_revisions')) {
    wp_schedule_event(time(), 'daily', 'wpsource_daily_delete_revisions');
}

add_action('wpsource_daily_delete_revisions', 'wpsource_delete_revisions_cron');

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

Выводы и рекомендации

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

  • Регулярно удаляйте старые ревизии через SQL или PHP.
  • Ограничьте количество ревизий в wp-config.php.
  • Используйте плагины для контроля и автоматизации очистки.
  • Проводите оптимизацию базы данных после удаления ревизий.

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

Как сделать автоматический отзыв после покупки в WordPress
28.01.2026
Как создать собственную настройку для темы WordPress в админке
25.11.2025
WooCommerce: как изменить атрибуты товара после оформления заказа
05.06.2026
WooCommerce: решение проблем с невалидными атрибутами и тегами для корректного SEO
09.06.2026
Как удалить записи определённого типа по условию в WordPress с примером кода
24.02.2026