Если в базе WordPress накопились transient-данные, сайт обычно не ломается, но может начать работать заметно тяжелее: растёт размер таблицы, увеличивается время резервного копирования, а на слабом хостинге иногда проседает и админка. Временные записи можно очистить без риска для контента, если понимать, что именно удаляется и когда это действительно безопасно.
Короткий ответ такой: transient — это кэш с ограниченным сроком жизни, а не важные данные сайта. Удалять их можно, но лучше делать это осознанно: либо через инструменты WordPress, либо через WP-CLI, либо напрямую из базы, если другого варианта нет. После очистки WordPress и плагины просто создадут нужные transient заново.
Что такое transient и почему они накапливаются
Transient в WordPress — это временное значение, которое хранится в базе данных или в объектном кэше, если он подключён. Обычно такие записи используют плагины, темы и сам WordPress для кэширования результатов запросов, API-ответов, фрагментов данных и служебной информации.
Проблема в том, что transient не всегда удаляются сразу после истечения срока действия. В базе могут оставаться записи с истёкшим временем жизни, а вместе с ними — служебные строки, которые занимают место. На небольших сайтах это редко критично, но на проектах с большим количеством плагинов и частыми запросами к внешним сервисам таблица wp_options может разрастаться довольно сильно.
Есть два разных сценария:
- обычные transient — временные данные, которые можно удалить вручную;
- persistent object cache — если на сайте используется Redis, Memcached или другой объектный кэш, transient могут храниться не только в базе, и тогда очистка базы не всегда решает вопрос полностью.
Когда очистка безопасна, а когда лучше не спешить
Удаление transient безопасно для сайта в обычной ситуации. Вы не трогаете записи постов, страницы, пользователей или настройки темы. Максимум, что произойдёт после очистки, — WordPress и плагины заново соберут кэш, и первые запросы могут выполняться чуть медленнее, чем обычно.
Но есть нюансы. Если на сайте активно используется кэширование, после массовой очистки transient может кратковременно вырасти нагрузка: плагины начнут пересоздавать временные данные, а внешние API — отвечать заново. Это не проблема, если сайт не перегружен, но на высоконагруженном проекте лучше делать очистку в спокойное время.
Не стоит удалять записи вручную, если вы не уверены, что именно делаете, и одновременно правите другие таблицы базы. Ошибка в SQL-запросе или удаление не тех строк уже может повлиять на работу сайта. Если есть доступ к нормальному инструменту очистки, используйте его, а не прямое редактирование базы.
Самый простой способ: очистка через плагин или встроенный инструмент
Если у вас есть доступ к панели администратора, самый безопасный путь — использовать плагин, который умеет чистить transient и другие временные данные. Такой способ не требует работы с базой и подходит большинству владельцев сайтов.
Логика действий обычно одинаковая: открыть раздел с инструментами обслуживания, выбрать очистку transient или временных данных и запустить процесс. После этого плагин удалит устаревшие записи, а WordPress восстановит нужное автоматически.
Этот вариант удобен, если вы не хотите работать через консоль или phpMyAdmin. Но перед очисткой всё равно стоит сделать резервную копию базы, особенно если сайт давно не обслуживался и вы не знаете, сколько там накопилось служебных данных.
Очистка transient через WP-CLI
Если у вас есть SSH-доступ и на хостинге доступен WP-CLI, это самый аккуратный способ быстро удалить transient. Команда не требует ручного поиска записей в базе и подходит для регулярного обслуживания.
Для удаления всех transient используется команда:
wp transient delete --allОна удаляет все transient, включая устаревшие и действующие. Это нормально, если вы хотите полностью сбросить временный кэш сайта. После выполнения команда вернёт управление сразу, а WordPress начнёт создавать нужные значения заново по мере обращения к ним.
Если нужно удалить только просроченные transient, используйте:
wp transient delete --expiredЭтот вариант мягче: он убирает только то, что уже не должно использоваться. Для регулярной профилактики это обычно предпочтительнее, чем полная очистка.
Перед запуском убедитесь, что вы работаете в нужной установке WordPress. Если на сервере несколько сайтов, ошибка в пути или в каталоге может привести к очистке не того проекта.
Как удалить transient из базы данных вручную
Ручная очистка нужна только тогда, когда нет доступа к WP-CLI и плагин не помогает. В WordPress transient хранятся в таблице wp_options как две связанные записи: само значение и его срок действия. Удалять нужно обе части.
Перед любыми SQL-запросами обязательно сделайте резервную копию базы. Это не формальность: если префикс таблиц у вас не wp_, а другой, или если вы случайно выполните запрос не в той базе, восстановление из копии будет единственным нормальным выходом.
Для удаления всех transient из таблицы wp_options обычно используют запросы такого вида:
DELETE FROM wp_options WHERE option_name LIKE '_transient_%';
DELETE FROM wp_options WHERE option_name LIKE '_site_transient_%';Но на практике этого недостаточно, если вы хотите убрать именно просроченные записи и не трогать действующие. Более точный вариант — удалять только expired transient вместе с их timeout-записями. Для этого нужен SQL-запрос, который учитывает структуру базы и префикс таблиц. Если вы не уверены в синтаксисе, лучше не экспериментировать вручную и использовать WP-CLI или инструмент обслуживания.
Ещё один важный момент: в некоторых установках transient могут быть вынесены в объектный кэш. Тогда очистка таблицы базы не уберёт всё полностью, и после перезагрузки сайта часть данных может снова появиться в памяти кэша. Это нормально и не означает, что очистка не сработала.
Как понять, что очистка действительно помогла
После удаления transient не ждите мгновенного «ускорения в разы». Эффект обычно заметен в более приземлённых вещах: база становится меньше, резервные копии создаются быстрее, а некоторые запросы в админке перестают тормозить.
Проверить результат можно так:
- открыть таблицу
wp_optionsв phpMyAdmin и посмотреть, уменьшилось ли количество строк с префиксами_transient_и_site_transient_; - сравнить размер базы до и после очистки;
- проверить, не появились ли ошибки в логах сайта после сброса кэша;
- пройтись по страницам, где раньше были заметны задержки, и убедиться, что они открываются нормально.
Если сайт использует внешний кэш, полезно дополнительно очистить и его. Иначе вы можете удалить transient из базы, но продолжить получать старые значения из Redis или другого слоя кэширования.
Что делать, если transient снова быстро накапливаются
Если временные записи возвращаются через несколько дней или недель, это обычно не проблема WordPress как такового, а следствие работы плагинов. Часто transient активно создают плагины статистики, внешних интеграций, SEO-инструменты, формы, каталоги и темы с большим количеством динамических блоков.
В такой ситуации имеет смысл не только чистить transient, но и посмотреть, какой компонент создаёт их слишком много. Если плагин постоянно пишет временные данные и не удаляет их вовремя, обновление или замена такого решения может дать больше пользы, чем регулярная ручная чистка.
Для профилактики обычно достаточно двух вещей: периодически удалять просроченные transient и следить за состоянием базы. Если сайт небольшой, делать это вручную раз в несколько месяцев обычно хватает. Если проект активно растёт, лучше автоматизировать обслуживание через WP-CLI или инструмент хостинга.
Очистка transient — это не «ускоритель» в магическом смысле, а нормальная техническая уборка. Она помогает, когда база захламлена временными записями, но не заменяет оптимизацию плагинов, кэширование страниц и нормальную настройку сервера. Если после очистки сайт всё равно медленный, причина, скорее всего, не в transient, а в тяжёлых запросах, медленном хостинге или слишком большом количестве активных расширений.