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

Почему оптимизация базы данных важна для WordPress

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

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

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

Основные проблемы базы данных WordPress

Накопление ревизий и автосохранений

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

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

SELECT post_title, COUNT(*) as revisions_count FROM wp_posts WHERE post_type = 'revision' GROUP BY post_parent ORDER BY revisions_count DESC;

Решение — ограничить количество ревизий или полностью отключить их. В файл wp-config.php добавьте:

define('WP_POST_REVISIONS', 3); // сохранять максимум 3 ревизии

Или для отключения:

define('WP_POST_REVISIONS', false);

Транзиенты и устаревшие временные данные

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

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

DELETE FROM wp_options WHERE option_name LIKE '_transient_%';

Или воспользоваться плагинами, которые делают это автоматически.

Неиспользуемые таблицы и опции

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

Важно регулярно проверять и удалять такие остатки.

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

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

WP-Optimize

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

Особенности:

  • Планировщик оптимизации
  • Очистка кэша
  • Удаление неиспользуемых данных

Advanced Database Cleaner

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

Есть возможность настроить автоматическую очистку и оптимизацию.

Как создать собственную функцию для оптимизации базы данных в WordPress на wppay.ru

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

function wppay_optimize_database() {
    global $wpdb;

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

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

    // Удаляем устаревшие транзиенты
    $wpdb->query("DELETE FROM " . $wpdb->options . " WHERE option_name LIKE '_transient_%'");

    return true;
}

// Можно добавить вызов через WP-CLI или по крону
// Пример вызова:
wppay_optimize_database();

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

Как автоматизировать оптимизацию базы данных с помощью CRON в WordPress

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

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

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

add_action('wppay_weekly_database_optimization', 'wppay_optimize_database');

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

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

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

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

  • UpdraftPlus
  • BackWPup
  • WP Database Backup

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

Заключение

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

Как отладить проблемы с платежными отказами в WordPress
28.02.2026
WooCommerce: как реализовать авторизацию платежей через REST API для собственных приложений
29.05.2026
Как установить ограничения на платежи в WordPress по суммам и пользователям
11.03.2026
Как сделать подтверждение платежа в WordPress через вебхуки
23.01.2026
Как создать автоматический отчёт по платежам в WordPress с помощью вебхуков
09.02.2026