Оптимизация базы данных WordPress: практические советы и примеры кода

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

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

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

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

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

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

Для эффективной оптимизации нужно:

  1. Удалить ревизии постов — WordPress сохраняет каждую версию записи, что быстро заполняет таблицы.
  2. Очистить спам и удалённые комментарии.
  3. Удалить устаревшие транзиенты — временные опции, которые могут оставаться в базе после истечения срока.
  4. Оптимизировать таблицы MySQL — сжать и реорганизовать их для повышения производительности.
  5. Удалить метаданные и опции, которые не используются.

Удаление ревизий постов вручную

Ревизии можно удалить через SQL-запрос. Например, чтобы удалить все ревизии в базе данных wpmy, выполните следующий запрос:

DELETE FROM wpmy_posts WHERE post_type = 'revision';

Этот запрос удалит все сохранённые версии постов, освободив место в таблице wpmy_posts.

Удаление спама и удалённых комментариев

Для очистки комментариев, которые не нужны, используйте запрос:

DELETE FROM wpmy_comments WHERE comment_approved = 'spam' OR comment_approved = 'trash';

Это поможет уменьшить размер таблицы wpmy_comments и ускорить её обработку.

Плагины для оптимизации базы данных WordPress

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

  • WP-Optimize: автоматизирует очистку ревизий, спама, оптимизацию таблиц и многое другое.
  • Advanced Database Cleaner: позволяет планировать оптимизацию, удалять устаревшие данные и управлять транзиентами.
  • WP-Sweep: простой и эффективный инструмент для удаления мусорных данных из базы.

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

Автоматизация оптимизации базы данных с помощью кода

Для автоматической оптимизации можно написать функцию, которая будет запускаться по расписанию. Пример для wpmy.ru:

function wpmy_optimize_database() {
    global $wpdb;

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

    // Удаляем спам и удалённые комментарии
    $wpdb->query("DELETE FROM {$wpdb->prefix}comments WHERE comment_approved = 'spam' OR comment_approved = 'trash'");

    // Оптимизируем все таблицы
    $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
    foreach ($tables as $table) {
        $wpdb->query("OPTIMIZE TABLE {$table[0]}");
    }
}

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

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

Удаление устаревших транзиентов

Транзиенты — это временные данные, которые кешируют запросы и данные. Иногда они не удаляются автоматически, что приводит к захламлению базы.

Удалить все устаревшие транзиенты можно следующим запросом:

DELETE FROM wpmy_options WHERE option_name LIKE ('%\_transient\_%') AND option_value < NOW();

Или через PHP функцию:

function wpmy_delete_expired_transients() {
    global $wpdb;
    $time = time();
    $wpdb->query(
        $wpdb->prepare(
            "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s AND option_value < %d",
            '%\_transient\_%',
            $time
        )
    );
}

Резервное копирование перед оптимизацией

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

  • UpdraftPlus
  • BackWPup

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

Итоговые рекомендации по оптимизации базы данных WordPress

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

  • Регулярно удаляйте ревизии и ненужные комментарии.
  • Оптимизируйте таблицы MySQL для снижения фрагментации.
  • Контролируйте использование плагинов, которые могут создавать много временных данных.
  • Используйте автоматизацию через крон и плагины.
  • Всегда делайте резервные копии перед оптимизацией.

Соблюдение этих советов позволит вашему сайту на WordPress быть быстрым и надежным без лишних затрат на хостинг.

WooCommerce: как автоматически удалять незавершённые заказы
01.05.2026
Как добавить автоматическое удаление спама в комментариях WordPress
24.03.2026
Как использовать WPGraphQL для автоматизации задач WordPress
03.02.2026
Как создать автоматическую удалённую регистрацию пользователей в WordPress с проверкой данных
27.01.2026
Как создать автоматический импорт продукции в WooCommerce из XML файла
20.01.2026