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

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

Что такое ревизии в WordPress и почему их нужно ограничивать

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

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

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

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

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

define('WP_POST_REVISIONS', 5);

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

define('WP_POST_REVISIONS', false);

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

Важно

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

Удаление старых ревизий из базы данных

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

DELETE FROM wp_posts WHERE post_type = 'revision';

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

OPTIMIZE TABLE wp_posts;

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

  • WP-Optimize — позволяет очистить ревизии и оптимизировать таблицы в удобном интерфейсе.
  • Clearfy Pro (ссылка) — расширенный инструмент оптимизации с функцией удаления ревизий и отключения лишних функций.

Программное ограничение и удаление ревизий через функцию на PHP

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

function wpspeed_limit_revisions_cleanup() {
    global $wpdb;
    // Удаляем ревизии, оставляя последние 5 для каждой записи
    $limit = 5;
    $revisions = $wpdb->get_results(
        "SELECT ID FROM ( 
            SELECT ID, post_parent, post_date, 
            ROW_NUMBER() OVER (PARTITION BY post_parent ORDER BY post_date DESC) as rn 
            FROM {$wpdb->posts} WHERE post_type = 'revision' 
        ) t WHERE rn > $limit"
    );
    if (!empty($revisions)) {
        $ids = wp_list_pluck($revisions, 'ID');
        foreach ($ids as $id) {
            wp_delete_post($id, true);
        }
    }
}
add_action('wp_scheduled_delete', 'wpspeed_limit_revisions_cleanup');

Этот код использует хук wp_scheduled_delete, который WordPress вызывает при очистке мусора, и удаляет ревизии, превышающие лимит 5 на каждую запись.

Обратите внимание, что функция ROW_NUMBER() доступна в MySQL 8.0+. Если у вас более старая версия MySQL, придется реализовать логику иначе или использовать плагин.

Рекомендации по оптимизации работы с ревизиями

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

Даже если вы не планируете часто откатывать изменения, хранить 5–10 ревизий вполне достаточно для безопасности и удобства. Это снизит нагрузку на базу.

Регулярно очищайте старые ревизии

Настройте автоматическую очистку через WP-Cron или используйте сторонние плагины, чтобы база не разрасталась.

Оптимизируйте базу данных

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

Используйте специализированные плагины

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

Заключение

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

Как удалить избитые JS и CSS в WordPress для ускорения сайта
16.11.2025
Как установить ограничение на число ревизий в WordPress для ускорения сайта
24.01.2026
Как создать эффективный кэш в WordPress своими руками
11.11.2025
WooCommerce: решение проблемы замедления отображения страницы товара при большом количестве вариаций
05.07.2026
Как оптимизировать загрузку шаблонов WordPress для ускорения сайта
26.03.2026