Временные данные (transients) должны удаляться автоматически по истечении срока, но WordPress не удаляет их через отдельный фоновый процесс — очистка происходит только при обращении к конкретному transient или через WP-Cron, и оба механизма не гарантируют мгновенную чистку.
Как работает истечение на самом деле
Просроченный transient не удаляется сам по себе в момент истечения — запись остаётся в базе, пока кто-то не попытается её прочитать. При чтении WordPress видит, что срок истёк, и только тогда удаляет запись. Если к конкретному transient больше никто не обращается, он может годами оставаться в базе как мусор.
Плагины иногда не устанавливают срок истечения вовсе
Если transient создан без параметра времени жизни или с ошибкой в его вычислении, он может считаться постоянным и никогда не будет автоматически рассмотрен на удаление.
Решение
Плагины вроде WP-Optimize или Transients Manager позволяют вручную найти и удалить просроченные и «осиротевшие» transients одним действием — полезная разовая чистка при разрастании таблицы опций.



