Почему revisions и transients бьют TTFB
Database bloat в WordPress редко выглядит как «сайт упал». Чаще растёт Time to First Byte на динамических URL, тормозит админка, а кеш лишь маскирует проблему на публичных страницах. Revisions, просроченные transients и тяжёлые строки в wp_options с autoload=yes читаются почти на каждый PHP-запрос.
Если TTFB в PageSpeed Insights или лабораторном тесте стабильно выше 600–800 мс без CDN-задержки сначала проверьте БД, а не только тему. Для SEO это критично потому что медленный старт ответа хуже индексируется на слабых соединениях и хуже конвертирует.
- Revisions раздувают
wp_posts/wp_postmetaи замедляют редакционные запросы. - Transients без очистки оставляют тысячи ключей в options или отдельной таблице.
- Autoload options тянутся в память на каждый front-end hit.
Revisions как контролировать

WordPress по умолчанию хранит все черновики изменений. На каталоге с 5–10 тыс. товаров и ежедневными правками ревизий легко набрать сотни тысяч строк. Практические шаги
- Ограничьте количество в
wp-config.phpчерезWP_POST_REVISIONS(например 5–10). - Отключите ревизии для типов контента где история не нужна (часто product без редакционной политики).
- Периодически чистите старые ревизии WP-CLI (
wp post delete $(wp post list --post_type='revision' --format=ids)только после бэкапа) или проверенным плагином. - Не трогайте revisions «вслепую» на сайтах с юридически важными изменениями текста без политики retention.
Хак на заметку. В phpMyAdmin выполните SELECT COUNT(*) FROM wp_posts WHERE post_type='revision';. Если число близко или больше количества опубликованных постов в 10–50 раз это красный флаг.
Transients и autoload options

Transients удобны для кеша API, но плагины часто пишут ключи без нормального TTL или не удаляют просроченные. Autoload options ещё хуже потому что WordPress подгружает их сразу. Типичные «тяжёлые» авторы analytics-сниппеты в options, мегамассивы настроек конструкторов, устаревшие лицензионные payload.
- Посчитайте размер autoload
SELECT SUM(LENGTH(option_value)) FROM wp_options WHERE autoload IN ('yes','on','auto'); - Ориентир тревоги свыше 1–2 МБ autoload на среднем сайте, свыше 3–5 МБ почти всегда стоит разбирать.
- Просроченные transients ищите по
_transient_timeout_с прошедшим timestamp. - После удаления лишнего сделайте object cache flush если используете Redis/Memcached.
Как измерить влияние на TTFB

Без измерения «очистка БД» превращается в ритуал. Сделайте базу сравнения
- Выберите 3 URL (главная, категория, карточка) и отключите page cache для теста или добавьте cache-buster.
- Снимите TTFB в DevTools → Network (поле Waiting) и в PageSpeed lab.
- Включите Query Monitor на staging и посмотрите самые медленные SQL и размер options.
- После cleanup повторите те же URL в то же время суток.
Если TTFB почти не изменился, а SQL уже легче проблема может быть в PHP, внешних HTTP или хостинге. Тогда bloat был симптомом второго плана, но его всё равно стоит держать под контролем.
Быстрая проверка БД

Чек-лист на заметку (10–15 минут). Сделайте сейчас
- Бэкап БД (хостинг или
wp db export). - Посчитайте revisions
wp post list --post_type=revision --format=count. - Проверьте размер autoload options (SQL выше) и топ-20 самых тяжёлых ключей.
- Найдите просроченные transients и оцените их количество.
- Сравните размер таблиц
wp_posts,wp_postmeta,wp_optionsв phpMyAdmin. - Снимите TTFB до изменений на 1–2 money-URL.
- В Search Console проверьте нет ли жалоб на server error после работ.
| Источник bloat | Симптом | Действие |
|---|---|---|
| Revisions | Большой wp_posts, медленное сохранение в редакторе |
Лимит WP_POST_REVISIONS, плановая очистка |
| Transients | Тысячи ключей _transient_, скачки размера options | Удалить expired, починить TTL в плагинах |
| Autoload options | Высокий TTFB даже на простых URL | Снять autoload с тяжёлых ключей, разобрать плагин |
| Orphan postmeta | Большой wp_postmeta после импортов |
Осторожная уборка сирот после аудита |
Типичные ошибки
- Чистить прод без бэкапа и без staging-прогона.
- Удалять все options с «незнакомыми» именами и сломать лицензии/плагины.
- Ожидать что database cleanup заменит CDN, OPcache и нормальный хостинг.
- Оставлять object cache со старыми значениями после изменений в MySQL.
- Игнорировать повторное накопление потому что корень в плагине который снова пишет гигантские autoload.
Заключение
Database bloat это не абстрактная «гигиена», а прямой рычаг TTFB и стабильности WordPress. Контроль revisions, дисциплина transients и аудит autoload options дают измеримый эффект быстрее чем очередной визуальный редизайн.
Нужен технический SEO-аудит с проверкой скорости ответа команда SEO-Studio поможет в рамках SEO-услуг.