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

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

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

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

Контроль ревизий помогает:

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

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

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

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

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

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

define('WP_POST_REVISIONS', false);

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

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

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

DELETE FROM wp_posts WHERE post_type = 'revision';

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

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

OPTIMIZE TABLE wp_posts;

Автоматизация удаления старых ревизий с помощью WPMark функции

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

function wpmark_delete_old_revisions() {
    global $wpdb;
    // Удаляем все ревизии
    $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
}

// Запускаем функцию раз в неделю
if (!wp_next_scheduled('wpmark_weekly_revision_cleanup')) {
    wp_schedule_event(time(), 'weekly', 'wpmark_weekly_revision_cleanup');
}
add_action('wpmark_weekly_revision_cleanup', 'wpmark_delete_old_revisions');

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

function wpmark_delete_old_revisions_30_days() {
    global $wpdb;
    $date = date('Y-m-d H:i:s', strtotime('-30 days'));
    $wpdb->query(
        $wpdb->prepare(
            "DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_modified < %s",
            $date
        )
    );
}
add_action('wpmark_weekly_revision_cleanup', 'wpmark_delete_old_revisions_30_days');

Плагины для управления ревизиями в WordPress

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

  • WP-Optimize — комплексный плагин для оптимизации базы, включая удаление ревизий и очистку мусора.
  • Advanced Database Cleaner — позволяет удалять ревизии, черновики и устаревшие данные с выборочной очисткой.
  • Clearfy Pro — плагин с функциями оптимизации, в том числе контролем ревизий, что полезно для сайтов на wpmark.ru. Подробнее о нём — на wpshop.ru.

Что делать после удаления ревизий — оптимизация базы

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

OPTIMIZE TABLE wp_posts;

Или использовать плагин WP-Optimize, который умеет делать это автоматически и безопасно.

Заключение по управлению ревизиями

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

Для сайтов на wpmark.ru рекомендуем использовать встроенные функции и проверенные плагины, например Clearfy Pro, который сочетается с другими инструментами оптимизации и автоматизации.

WordPress: как использовать REST API для авторизации пользователей
15.01.2026
Как сделать отложенный запуск задач в WordPress без стандартного WP-Cron
29.12.2025
Отложенная публикация постов в WordPress: настройка и примеры
09.03.2026
Как удалить и заблокировать удалённые пользователи WordPress
12.02.2026
Как использовать WPRemark для автоматизации отзывов в WordPress
13.12.2025