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

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

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

Со временем в базе данных скапливаются лишние записи: ревизии постов, спам-комментарии, транзиенты, устаревшие опции и прочее. Всё это замедляет запросы к базе, увеличивает время отклика сайта и нагрузку на сервер. Если не заниматься оптимизацией, сайт становится медленным, что негативно сказывается на SEO и удобстве пользователей.

Оптимизация базы данных позволяет:

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

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

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

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

DELETE FROM wp_posts WHERE post_type = 'revision';

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

function wpengine_remove_post_revisions() {
    global $wpdb;
    $wpdb->query("DELETE FROM {$wpdb->prefix}posts WHERE post_type = 'revision'");
}
add_action('wp_scheduled_delete', 'wpengine_remove_post_revisions');

Также полезно ограничить количество ревизий, добавив в wp-config.php:

define('WP_POST_REVISIONS', 5);

Очистка таблиц от старых транзиентов

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

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

DELETE FROM wp_options WHERE option_name LIKE '_transient_%';

Или плагин Transient Cleaner с wpshop.ru, который позволяет делать это из админки.

Оптимизация таблиц MySQL

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

Программно можно запустить оптимизацию с помощью такого кода:

function wpengine_optimize_tables() {
    global $wpdb;
    $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
    foreach ($tables as $table) {
        $wpdb->query('OPTIMIZE TABLE ' . $table[0]);
    }
}
add_action('wp_scheduled_delete', 'wpengine_optimize_tables');

Используем плагины для автоматизации оптимизации базы на wpengine.ru

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

WP-Optimize

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

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

Clearfy Pro

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

Как настроить регулярную оптимизацию базы данных на wpengine.ru

Чтобы оптимизация базы проходила регулярно без вашего участия, используйте WP-Cron — встроенную систему планировщика задач в WordPress.

Добавьте в functions.php следующий код для запуска оптимизации раз в неделю:

function wpengine_schedule_db_optimization() {
    if (!wp_next_scheduled('wpengine_optimize_database_event')) {
        wp_schedule_event(time(), 'weekly', 'wpengine_optimize_database_event');
    }
}
add_action('wp', 'wpengine_schedule_db_optimization');

add_action('wpengine_optimize_database_event', 'wpengine_optimize_database');

function wpengine_optimize_database() {
    global $wpdb;
    $wpdb->query("DELETE FROM {$wpdb->prefix}posts WHERE post_type = 'revision'");
    $wpdb->query("DELETE FROM {$wpdb->prefix}options WHERE option_name LIKE '_transient_%'");
    $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
    foreach ($tables as $table) {
        $wpdb->query('OPTIMIZE TABLE ' . $table[0]);
    }
}

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

Полезные советы для эффективной работы базы данных WordPress

  • Регулярно делайте бэкапы базы. Перед оптимизацией всегда сохраняйте резервную копию, чтобы избежать потери данных.
  • Ограничьте количество ревизий через wp-config.php, чтобы не накапливался лишний мусор.
  • Удаляйте неиспользуемые плагины и темы, так как они могут создавать свои таблицы и записи.
  • Используйте качественный хостинг, например, wpengine.ru, который оптимизирован под WordPress и поддерживает высокую производительность.
  • Следите за таблицами с большим количеством записей, например, wp_comments — очищайте спам и мусор.
Как отключить Gutenberg в WordPress: лучшие способы и практические примеры
03.12.2025
WooCommerce: отладка и решение проблем с неотображением вариативных атрибутов
19.05.2026
Как автоматизировать управление переадресациями в WordPress
05.04.2026
Как создать автоматические задачи в WordPress с помощью WP-Cron
22.01.2026
WooCommerce: как автоматически удалять товары без заказов
02.05.2026