База данных WordPress со временем накапливает множество избыточных данных: ревизии постов, черновики, спам-комментарии, временные опции и многое другое. Все это замедляет работу сайта и увеличивает время отклика. В этой статье разберем, как правильно очистить и оптимизировать базу данных WordPress, используя как плагины, так и собственные SQL-запросы и функции с префиксом wppartner_.
Почему важно оптимизировать базу данных WordPress
Каждый опубликованный пост, комментарий или действие пользователя записывается в базу данных. Со временем таблицы засоряются лишними данными, которые не нужны для текущей работы сайта, например:
- ревизии постов (старые версии);
- автоматические сохранения;
- спам и удалённые комментарии;
- транзиенты (временные кеши);
- неиспользуемые метаданные и опции.
Это приводит к увеличению размера базы, замедлению запросов и повышенной нагрузке на сервер. Регулярная оптимизация помогает поддерживать сайт быстрым и стабильным.
Использование плагинов для очистки базы данных
Для большинства пользователей оптимизация базы данных проще всего с помощью специализированных плагинов. Рассмотрим популярные решения:
1. WP-Optimize
Этот плагин удаляет ревизии, спам, временные данные и оптимизирует таблицы. Интерфейс простой, можно настроить автоматическую очистку.
Ссылка: WP-Optimize на WPShop
2. Advanced Database Cleaner
Позволяет детально анализировать базу, удалять устаревшие данные, оптимизировать таблицы и планировать задачи.
3. Clearfy Pro
Этот плагин не только оптимизирует базу, но и помогает убрать лишние функции WordPress, что дополнительно ускоряет сайт.
Подробнее: Clearfy Pro на WPShop
Удаление ревизий и автосохранений вручную через SQL
Если вы предпочитаете работать напрямую с базой данных, можно удалить ненужные ревизии и автосохранения с помощью SQL-запросов. Ниже пример для таблицы wp_posts с префиксом wp_, замените на свой префикс.
DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_posts WHERE post_type = 'autosave';
Этот простой запрос удалит все ревизии и автосохранения, которые не используются на сайте. Перед выполнением обязательно сделайте резервную копию базы!
Создание функции для автоматической очистки ревизий в WordPress (wppartner_clear_revisions)
Для автоматизации процесса можно добавить в файл functions.php вашей темы или в отдельный плагин следующий код:
function wppartner_clear_revisions() {
global $wpdb;
$revisions = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision'");
foreach ($revisions as $rev) {
wp_delete_post($rev->ID, true);
}
}
// Запускаем очистку ревизий раз в неделю
if (!wp_next_scheduled('wppartner_clear_revisions_event')) {
wp_schedule_event(time(), 'weekly', 'wppartner_clear_revisions_event');
}
add_action('wppartner_clear_revisions_event', 'wppartner_clear_revisions');
Эта функция безопасно удаляет все ревизии с помощью встроенной функции wp_delete_post и запускается автоматически каждую неделю.
Удаление неактивных транзиентов
Транзиенты — временные данные, которые хранятся в базе для кеширования. Иногда они не удаляются автоматически, что приводит к засорению базы. Для очистки можно использовать SQL-запрос:
DELETE FROM wp_options WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%';
Или использовать плагин WP-Optimize, который умеет очищать транзиенты одним кликом.
Оптимизация таблиц базы данных
После удаления лишних данных полезно оптимизировать таблицы, чтобы освободить место и улучшить производительность. Для этого воспользуемся SQL-командой:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_comments, wp_commentmeta, wp_options;
Если у вас много таблиц, можно написать цикл в PHP для их оптимизации.
Использование WP CLI для оптимизации базы
Если у вас есть доступ к командной строке сервера, WP CLI — мощный инструмент для управления WordPress. Для очистки ревизий и оптимизации базы используйте команды:
wp post delete $(wp post list --post_type='revision' --format=ids) --force
wp db optimize
WP CLI значительно ускоряет процесс и позволяет автоматизировать задачи в скриптах.
Заключение по оптимизации базы данных
Оптимизация базы данных — важная часть поддержки производительности WordPress. Регулярно удаляйте ревизии, спам, неактивные транзиенты и оптимизируйте таблицы. Для удобства используйте проверенные плагины, например, WP-Optimize или Clearfy Pro из WPShop, либо автоматизируйте задачи через WP CLI и собственные функции с префиксом wppartner_. Это позволит поддерживать ваш сайт быстрым и отзывчивым даже при большом объёме контента.