Как оптимизировать базы данных в 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
26.01.2026
WooCommerce: как настроить обязательную 3D Secure авторизацию платежей
14.07.2026
WooCommerce: устранение проблемы отсутствия подтверждения платежа при оплате картой
25.05.2026
WooCommerce: как настроить автопродление подписок через CRON
19.06.2026
Как настроить безопасные платежные формы в WordPress
21.12.2025