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

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

Почему важно очищать базу данных от ревизий и старых записей

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

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

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

Очистка ревизий и ненужных записей через SQL-запросы

Один из самых быстрых способов — выполнить SQL-запросы напрямую через phpMyAdmin или любой другой инструмент работы с базой данных. Ниже пример запроса для удаления всех ревизий записей:

DELETE FROM wp_posts WHERE post_type = 'revision';

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

DELETE FROM wp_posts WHERE post_status = 'auto-draft';
DELETE FROM wp_posts WHERE post_status = 'trash';

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

Удаление ревизий через PHP-функцию wpskill_delete_revisions()

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

function wpskill_delete_revisions() {
    global $wpdb;
    $table = $wpdb->posts;
    $query = "DELETE FROM $table WHERE post_type = 'revision'";
    $result = $wpdb->query($query);
    return $result;
}

// Для запуска вызывайте вручную или через WP-CLI

Эта функция удалит все ревизии из базы. Можно расширить её, добавив удаление автосохранений и мусора.

Использование плагинов для очистки базы данных

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

  • WP-Optimize — позволяет удалить ревизии, черновики, временные опции и оптимизировать таблицы базы данных одним кликом.
  • Advanced Database Cleaner — более гибкий инструмент с возможностью планирования очистки и детального анализа базы.
  • Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wpskill.ru&utm_medium=article&utm_campaign=kak-ochistit-bazu-dannyh-wordpress-ot-staryh-zapisej-i-revizij) — многофункциональный плагин для оптимизации и ускорения сайта, в том числе с очисткой базы.

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

Оптимизация базы данных после очистки

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

Это можно сделать через phpMyAdmin, выбрав таблицы и нажав «Оптимизировать», или программно через WP-функции:

function wpskill_optimize_database() {
    global $wpdb;
    $tables = $wpdb->get_col("SHOW TABLES LIKE '{$wpdb->prefix}%'");
    foreach ($tables as $table) {
        $wpdb->query("OPTIMIZE TABLE $table");
    }
}

// Вызовите функцию после очистки базы

Регулярная оптимизация предотвращает фрагментацию таблиц и улучшает отклик сайта.

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

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

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

Можно задать любое число или полностью отключить ревизии, указав false, но это не рекомендуется из-за риска потери контента.

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

Автоматизация очистки и оптимизации через WP-Cron

Для поддержания базы в порядке можно настроить автоматический запуск функций очистки и оптимизации с помощью WP-Cron. Пример добавления еженедельного задания:

if (!wp_next_scheduled('wpskill_weekly_database_cleanup')) {
    wp_schedule_event(time(), 'weekly', 'wpskill_weekly_database_cleanup');
}

add_action('wpskill_weekly_database_cleanup', 'wpskill_database_cleanup');

function wpskill_database_cleanup() {
    wpskill_delete_revisions();
    wpskill_optimize_database();
}

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

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

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

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

Для очистки можно использовать как SQL-запросы и собственные функции, так и готовые плагины, например, WP-Optimize или Clearfy Pro. Не забывайте регулярно оптимизировать таблицы после удаления данных и ограничивайте количество ревизий для новых записей.

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

Как отключить XML-RPC в WordPress для повышения безопасности
03.02.2026
Как автоматизировать просмотр и редактирование записей в WordPress с помощью кастомных функций
15.12.2025
Как создать обновляемые виджеты в WordPress с примерами кода
11.11.2025
Как автоматизировать управление ролями и правами в WordPress с примерами кода
17.03.2026
Как добавить динамические атрибуты товара в WooCommerce с примерами кода
01.05.2026