Оптимизация базы данных WordPress: удаление autosave и revision для ускорения сайта

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

Что такое autosave и revision в WordPress и почему их нужно удалять

Автоматическое сохранение (autosave) – это механизм, который сохраняет контент поста каждые несколько секунд во время редактирования, чтобы предотвратить потерю данных. Версии записей (revisions) – это сохраненные копии изменений, которые позволяют откатиться к предыдущим вариантам контента.

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

Удаление старых и ненужных autosave и revision позволяет:

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

Как вручную удалить autosave и revision через SQL-запросы

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

Удаление autosave

Autosave в WordPress имеет тип записи auto-draft и обычно сохраняется с меткой post_status = 'auto-draft'. Однако в некоторых случаях autosave представлен как черновик с типом 'revision' или иным статусом.

Для удаления всех autosave можно выполнить запрос:

DELETE FROM wp_posts WHERE post_type = 'revision' AND post_content LIKE '%autosave%';

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

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

Чтобы удалить все ревизии, которые не нужны, выполните:

DELETE FROM wp_posts WHERE post_type = 'revision';

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

OPTIMIZE TABLE wp_posts;

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

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

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

function wpmanager_limit_revisions() {
    if (!defined('WP_POST_REVISIONS')) {
        define('WP_POST_REVISIONS', 5); // Оставить не более 5 ревизий
    }
}
add_action('init', 'wpmanager_limit_revisions');

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

Также можно создать функцию, которая будет автоматически удалять ревизии и autosave при сохранении поста:

function wpmanager_delete_old_revisions($post_id) {
    global $wpdb;
    // Удаляем все ревизии для поста, кроме последних 5
    $revisions = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM $wpdb->posts WHERE post_type = 'revision' AND post_parent = %d ORDER BY post_date DESC LIMIT 1000 OFFSET 5",
        $post_id
    ));
    if (!empty($revisions)) {
        foreach ($revisions as $revision_id) {
            wp_delete_post($revision_id, true);
        }
    }
    // Удаляем autosave для данного поста
    $autosave = wp_get_post_autosave($post_id);
    if ($autosave) {
        wp_delete_post($autosave->ID, true);
    }
}
add_action('save_post', 'wpmanager_delete_old_revisions');

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

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

  • WP-Optimize – мощный инструмент для очистки базы данных, удаления ревизий, спама, автосохранений, а также оптимизации таблиц.
  • Advanced Database Cleaner – позволяет удалять ревизии, автосохранения, а также управлять транзиентами и другими объектами базы данных.
  • Revision Control – плагин для ограничения количества ревизий, с настройками для каждого типа записи.

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

Как проверить эффективность удаления ревизий и autosave

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

  • Проверка размера базы данных: в phpMyAdmin или через плагины, например, WP-Optimize, можно увидеть размер таблиц до и после очистки.
  • Тест скорости сайта: с помощью инструментов как Google PageSpeed Insights, GTmetrix или Pingdom проверяйте время загрузки страниц.
  • Мониторинг запросов: с помощью Query Monitor можно увидеть, как изменилось время выполнения SQL-запросов.

Если после очистки заметно улучшение, значит оптимизация прошла успешно.

Заключение

Удаление autosave и revision – одна из важных задач по оптимизации производительности WordPress-сайта. Правильное управление этими данными позволяет уменьшить нагрузку на базу данных и ускорить работу сайта. Используйте SQL-запросы, программные методы и плагины для регулярной очистки и ограничения количества ревизий, чтобы поддерживать WordPress в оптимальном состоянии.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
WooCommerce: автоматическое изменение названия и слага товара по условию
15.06.2026
Решение проблем с очисткой кешей в WordPress без плагинов
10.12.2025
WooCommerce: решение проблем со скользящими карточками товаров на мобильных устройствах
24.04.2026
Автоматическое отключение Emoji в WordPress для улучшения производительности
23.03.2026
WooCommerce: решение проблем с обновлением остатков и стоков товаров
26.05.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее