Раздутая база данных WordPress: как очистить ревизии, транзиенты и осиротевшие таблицы
Почему база данных WordPress раздувается и как безопасно очистить ревизии, транзиенты и таблицы, оставленные плагинами.
У вас есть сайт на WordPress, который работает всё медленнее, хотя вы не добавляли нового контента уже несколько месяцев? Часто проблема вовсе не во фронтенде, а в базе данных. WordPress и его плагины тихо записывают десятки тысяч строк, которые больше никто никогда не прочитает: старые ревизии статей, просроченные временные опции, оставшиеся мета-данные от удалённых плагинов и целые таблицы, которые уже ничем не используются.
Хорошая новость в том, что большую часть этого мусора можно убрать, ничего не сломав, если знать, что искать, и сначала сделать резервную копию. В этой статье я покажу вам, что именно накапливается, как понять, что безопасно удалять, и как поддерживать базу лёгкой в долгосрочной перспективе, не полагаясь на магические обещания.
Что на самом деле раздувает базу данных
Прежде чем что-то удалять, полезно понять, откуда берётся вес. Обычных виновников немного:
- Ревизии записей: каждое сохранение статьи создаёт копию. Часто редактируемая запись может нести десятки ревизий, каждая с полным дублем контента.
- Просроченные транзиенты: временные данные в таблице wp_options. Они должны удаляться сами, но часто застревают там.
- Автозагружаемые опции (autoload): опции, помеченные для загрузки на КАЖДОЙ странице. Когда плагины оставляют здесь сотни КБ, они замедляют весь сайт.
- Спам и комментарии в корзине, старые транзакции и логи.
- Осиротевшие мета: строки в wp_postmeta или wp_usermeta, указывающие на контент, которого больше нет.
Не всё большое бесполезно. Цель — отделить настоящий мусор от данных, которые вы используете ежедневно.
Как увидеть, что занимает место, не гадая
Не чистите вслепую. Сначала измерьте. В phpMyAdmin (он есть в cPanel у большинства хостингов) откройте базу и отсортируйте таблицы по размеру. Почти наверняка вверху окажутся wp_options, wp_postmeta и, возможно, таблицы, добавленные плагинами.
Критически важный момент — автозагружаемые опции. Выполните простой запрос во вкладке SQL:
SELECT SUM(LENGTH(option_value)) FROM wp_options WHERE autoload = 'yes';
Если результат исчисляется сотнями КБ или больше, у вас реальная проблема с производительностью, потому что эти данные читаются при каждой загрузке страницы. Можно также вывести самых крупных потребителей, чтобы увидеть, какой плагин их оставил.
Если ваш префикс не wp_, замените его везде. Измеряйте до и после, чтобы знать, что вы выиграли.
Безопасная очистка, шаг за шагом
Золотое правило: сделайте полную резервную копию базы перед любым удалением. Нет копии — ничего не трогаем.
- Ограничьте ревизии: добавьте в wp-config.php строку define('WP_POST_REVISIONS', 5); чтобы впредь хранить только последние несколько на запись.
- Удалите старые ревизии и просроченные транзиенты надёжным плагином для очистки (например, проверенным плагином оптимизации), который делает работу без рискованных запросов, написанных вручную.
- Очистите спам и корзину комментариев.
- Для autoload переключите тяжёлые опции, оставленные исчезнувшими плагинами, с 'yes' на 'no' или удалите их, если уверены, что плагина больше нет.
После очистки запустите Optimize для таблиц, чтобы вернуть освободившееся физическое место. Сразу протестируйте сайт: главные страницы, форму контактов, оформление заказа, если это магазин.
Осиротевшие таблицы: самая деликатная часть
Когда вы удаляете плагин, большинство из них НЕ удаляют свои таблицы. Они остаются с именами вроде wp_redirection_logs или wp_mailpoet_x, занимая место бесконечно.
Здесь важна осторожность, потому что удаление таблицы необратимо без резервной копии:
- Составьте список таблиц, которые не начинаются классически (posts, options, postmeta и т. д.), и поищите каждый префикс в Google.
- Убедитесь, что связанный плагин действительно удалён и вы не собираетесь его снова включать.
- Удаляйте по одной, со свежей копией заранее, а не оптом.
Если есть любое сомнение хотя бы по одной таблице, оставьте её. Несколько лишних МБ ничему не вредят; ошибочно удалённая таблица может сломать функцию. Осторожность важнее идеальной чистоты.
Как поддерживать её чистой (и когда звать специалиста)
Чистота — это не разовое событие, а обслуживание. Несколько привычек, которые важны:
- Держите WP_POST_REVISIONS на разумном значении постоянно.
- Устанавливайте только те плагины, которые действительно нужны, и удаляйте неиспользуемые (потом проверяя оставшиеся таблицы).
- Планируйте периодическую оптимизацию и делайте автоматические резервные копии.
Если вы смотрите на phpMyAdmin и чувствуете, что не хотите ничего трогать из страха сломать сайт, это совершенно нормально, особенно на магазине с реальными заказами. В MPO Web Studio мы делаем это удалённо, безопасно, с копией до и проверкой после, для клиентов по всей стране. Если вам нужна помощь или просто второе мнение, напишите нам в WhatsApp, и мы посмотрим вместе. Без магических обещаний, просто база данных, которая снова дышит.
Частые вопросы
Безопасно ли удалять ревизии статей?+
Да, старые ревизии обычно можно удалять без вреда для опубликованной статьи, потому что текущая версия хранится отдельно. Всё же сначала сделайте копию и ограничьте будущие ревизии в wp-config.php, чтобы они снова не накапливались.
Почему сайт медленный, хотя база не такая большая?+
Часто важен не общий размер, а автозагружаемые опции, которые читаются на каждой странице. Несколько сотен КБ тяжёлых данных, оставленных плагинами, могут замедлить весь сайт. Проверьте сумму autoload в wp_options, прежде чем подозревать что-то другое.
Что делать с таблицами, оставленными удалёнными плагинами?+
Их можно удалить, но осторожно: сначала подтвердите, какому плагину они принадлежат и что вы не будете его снова включать, сделайте свежую копию и удаляйте по одной. При любом сомнении по таблице лучше оставьте её; несколько МБ не оправдывают риск.
Нужен ли плагин оптимизации или можно сделать вручную?+
Работают оба варианта. Проверенный плагин оптимизации безопаснее для рутинной очистки, потому что избегает плохо написанных SQL-запросов. Вручную через phpMyAdmin вы получаете полный контроль, но и больший риск, так что это подходит, только если вы точно знаете, что удаляете.
Как часто нужно чистить базу данных?+
Для большинства сайтов достаточно очистки раз в несколько месяцев плюс постоянно ограниченные ревизии. Магазину с высоким трафиком полезна автоматическая рутина. Важнее всего всегда иметь резервные копии, а не обязательно чистить очень часто.
7 ошибок, которые отпугивают клиентов с вашего сайта
Оставьте email и получите гид прямо здесь, сразу. Без спама.
Хотите увидеть, как мог бы выглядеть сайт вашего бизнеса?
Напишите нам в WhatsApp — и мы бесплатно подготовим демо-сайт с названием вашего бизнеса. Сначала смотрите, потом решаете — без обязательств.