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

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

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

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

  • Увеличение размера базы данных. База становится громоздкой, что влияет на скорость запросов.
  • Замедление работы административной панели. При загрузке страницы редактирования появляются дополнительные запросы для загрузки ревизий.
  • Усложнение резервного копирования и восстановления. Увеличиваются объемы файлов и время обработки.

Поэтому рекомендуется периодически удалять старые ревизии или ограничивать их количество.

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

Самый простой способ — задать лимит ревизий в файле wp-config.php. Это позволит сохранять только последние N ревизий для каждой записи.

Добавьте следующую строку в файл wp-config.php перед строкой /* That's all, stop editing! Happy publishing. */:

define('WP_POST_REVISIONS', 5); // сохранять максимум 5 ревизий

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

Автоматическое удаление старых ревизий через код

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

Пример функции для удаления ревизий старше 30 дней:

function wplock_delete_old_revisions() {
    global $wpdb;
    $days = 30; // количество дней
    $date_threshold = date('Y-m-d H:i:s', strtotime("-{$days} days"));
    
    $revisions = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM $wpdb->posts WHERE post_type = 'revision' AND post_modified < %s",
        $date_threshold
    ));
    
    if ($revisions) {
        foreach ($revisions as $revision_id) {
            wp_delete_post($revision_id, true);
        }
    }
}

// Запускаем очистку при запуске wp-cron каждое утро
add_action('wplock_daily_revision_cleanup', 'wplock_delete_old_revisions');

// Регистрируем событие cron, если оно не запущено
if (!wp_next_scheduled('wplock_daily_revision_cleanup')) {
    wp_schedule_event(strtotime('00:00:00'), 'daily', 'wplock_daily_revision_cleanup');
}

Этот код создаёт ежедневное задание, которое удаляет все ревизии старше 30 дней. Вы можете настроить интервал и дату по своему усмотрению.

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

Если вы предпочитаете не писать код, существуют удобные плагины для работы с ревизиями:

  • WP-Optimize — не только удаляет старые ревизии, но и оптимизирует базу данных, что ускоряет сайт.
  • Revision Control — позволяет ограничить количество ревизий для каждого типа записи индивидуально.
  • Clearfy Pro — комплексный плагин для оптимизации и безопасности, включая управление ревизиями.

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

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

В phpMyAdmin выберите базу данных, перейдите во вкладку SQL и выполните команду:

OPTIMIZE TABLE wp_posts;

Это очистит пространство, освобожденное удалёнными ревизиями.

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

Ревизии — полезная функция, но без контроля они могут замедлять сайт и увеличивать нагрузку на базу данных. Лучший подход — сочетать ограничение количества ревизий и периодическую очистку старых версий. Автоматизация этого процесса через wp-cron и кастомный код поможет избежать ручной работы.

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

Используйте приведённые советы и код, чтобы поддерживать ваш сайт на WordPress быстрым и аккуратным.

Как сделать автоподсказку в поиске WordPress
25.02.2026
Как удалить редиректы в WordPress: практическое руководство с примерами кода
01.03.2026
Как удалить пустующее изображение в WordPress
02.12.2025
Как удалить пустые категории в WordPress
07.01.2026
Как защитить WordPress от bruteforce атак с помощью .htaccess
25.12.2025