Как уменьшить размер базы данных WordPress без потери данных

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

Причины роста базы данных WordPress

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

  • Сохранённые ревизии записей и страниц
  • Автоматически созданные черновики и мусор
  • Транзиенты, которые не удаляются по сроку
  • Логи плагинов и темы
  • Комментарии в статусе «спам» и «корзина»
  • Неиспользуемые метаданные и опции

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

Использование плагинов для безопасной оптимизации базы данных

Для большинства пользователей проще и безопаснее использовать проверенные плагины. Вот несколько популярных решений:

  • WP-Optimize — комплексное решение для очистки базы, удаления мусора, оптимизации таблиц и сжатия изображений. Позволяет настроить автоматическую очистку.
  • Advanced Database Cleaner — мощный инструмент, который удаляет ревизии, черновики, спам, транзиенты и устаревшие опции. Есть детальный анализ таблиц.
  • Clearfy Pro — не только ускоряет WordPress, но и содержит функции для очистки базы и оптимизации запросов.

Все эти плагины можно скачать на wpshop.ru.

Ручная оптимизация базы данных с помощью SQL-запросов

Для разработчиков и опытных пользователей полезно уметь чистить базу вручную. Ниже приведены примеры SQL-запросов, которые уменьшают размер без потери нужных данных.

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

Ревизии помогают откатиться к предыдущей версии, но со временем их накапливается много. Удалим все ревизии, кроме последних 3 для каждой записи:

DELETE FROM wp_posts WHERE post_type = 'revision' AND ID NOT IN (SELECT ID FROM (SELECT ID FROM wp_posts WHERE post_type = 'revision' ORDER BY post_modified DESC LIMIT 3) AS t);

Этот запрос оставляет последние 3 ревизии. Если хотите оставить меньше, поменяйте LIMIT.

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

DELETE FROM wp_comments WHERE comment_approved = 'spam'; DELETE FROM wp_comments WHERE comment_approved = 'trash';

Так удаляются все комментарии, помеченные как спам или удалённые.

Очистка устаревших транзиентов

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

DELETE FROM wp_options WHERE option_name LIKE '_transient_%' AND option_value < NOW();

Важно: в некоторых версиях WordPress транзиенты хранятся по-разному, поэтому полезно использовать плагин для очистки.

Создание собственной функции очистки базы данных

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

function wpspeed_cleanup_database() { global $wpdb; // Удаляем ревизии $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'"); // Удаляем спам и корзину $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'spam' OR comment_approved = 'trash'"); // Оптимизируем таблицы $tables = [ $wpdb->posts, $wpdb->comments, $wpdb->postmeta, $wpdb->options ]; foreach ($tables as $table) { $wpdb->query("OPTIMIZE TABLE {$table}"); } } add_action('wp_scheduled_cleanup_hook', 'wpspeed_cleanup_database'); // Планируем задачу, если ещё нет if (!wp_next_scheduled('wp_scheduled_cleanup_hook')) { wp_schedule_event(time(), 'weekly', 'wp_scheduled_cleanup_hook'); }

Эта функция удалит все ревизии (можно доработать, чтобы оставить несколько последних), очистит комментарии и оптимизирует таблицы. Запускается раз в неделю через планировщик WP-Cron.

Дополнительные советы по уменьшению размера базы данных

Ограничение числа ревизий с помощью константы в wp-config.php

Чтобы база не разрасталась, установите лимит на количество ревизий:

define('WP_POST_REVISIONS', 3);

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

Оптимизация таблиц базы данных

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

OPTIMIZE TABLE wp_posts; OPTIMIZE TABLE wp_comments; OPTIMIZE TABLE wp_postmeta; OPTIMIZE TABLE wp_options;

Это можно выполнить через phpMyAdmin или средствами плагинов.

Удаление неиспользуемых плагинов и тем

Многие плагины и темы создают свои таблицы и записи в базе. Если вы их не используете — удалите, чтобы не захламлять базу. Используйте для этого плагин Clearfy Pro с функциями удаления данных после деактивации плагинов.

Использование плагина Clearfy Pro для тонкой настройки базы данных

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

На wpshop.ru вы можете скачать Clearfy Pro и ознакомиться с его возможностями.

Выводы и рекомендации

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

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

Как оптимизировать загрузку шаблонов WordPress для ускорения сайта
26.03.2026
Оптимизация критического рендеринга в WordPress для ускорения загрузки сайта
02.04.2026
Оптимизация выполнения PHP в WordPress с поддержкой PHP 8
16.12.2025
Как создать эффективный кэш в WordPress своими руками
11.11.2025
Как успешно оптимизировать базы данных WordPress для ускорения сайта
04.11.2025