Как удалить старые transient в WordPress без плагинов

Transient API в WordPress используется для временного хранения данных с целью оптимизации скорости работы сайта. Однако со временем в базе данных накапливается множество устаревших transient, что может замедлить работу сайта и увеличить нагрузку на сервер. В этой статье разберём, как безопасно и эффективно удалить старые transient в WordPress без использования плагинов.

Что такое transient и зачем их удалять? Оптимизация базы данных WordPress

Transient — это временные данные, которые сохраняются в базе данных WordPress с указанием времени жизни (TTL). После истечения этого времени transient считается устаревшим, но не удаляется автоматически. Со временем база данных накапливает множество таких записей, что приводит к:

  • Увеличению размера таблицы wp_options;
  • Снижению производительности запросов к базе данных;
  • Повышенной нагрузке на сервер.

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

Как найти и удалить устаревшие transient с помощью SQL-запроса

Transientы хранятся в таблице wp_options с опциями, названия которых начинаются с _transient_ или _transient_timeout_. Для удаления устаревших transient нужно очистить записи с просроченным временем жизни.

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

Пример SQL-запроса для удаления устаревших transient:

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

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

Чтобы удалить все устаревшие transient полностью, можно использовать следующий запрос:

DELETE o1, o2 FROM wp_options o1 INNER JOIN wp_options o2 ON REPLACE(o1.option_name, '_transient_timeout_', '_transient_') = o2.option_name WHERE o1.option_name LIKE '_transient_timeout_%' AND o1.option_value < UNIX_TIMESTAMP();

Объяснение:

  • В таблице wp_options есть записи с именами _transient_timeout_ключ и _transient_ключ.
  • Мы ищем все timeout, срок которых истек (option_value < UNIX_TIMESTAMP()).
  • Удаляем одновременно записи с timeout и соответствующий transient.

Удаление устаревших transient через PHP — пример функции для wpdesk

Если вы хотите автоматизировать процесс удаления старых transient в вашем коде, можно добавить в файл functions.php темы или создать небольшой плагин с такой функцией:

function wpdesk_delete_expired_transients() {
    global $wpdb;
    
    // Получаем все timeout, срок действия которых истёк
    $expired_timeouts = $wpdb->get_col(
        "SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout_%' AND option_value < UNIX_TIMESTAMP()"
    );

    if ( empty( $expired_timeouts ) ) {
        return 0; // Нет устаревших transient
    }

    $count = 0;
    foreach ( $expired_timeouts as $timeout_name ) {
        // Формируем имя transient без _timeout_
        $transient_name = str_replace( '_transient_timeout_', '_transient_', $timeout_name );

        // Удаляем запись timeout
        $wpdb->delete( $wpdb->options, [ 'option_name' => $timeout_name ] );

        // Удаляем сам transient
        $wpdb->delete( $wpdb->options, [ 'option_name' => $transient_name ] );

        $count++;
    }

    return $count;
}

// Пример вызова и вывода результата
$deleted = wpdesk_delete_expired_transients();
echo "Удалено устаревших transient: " . $deleted;

Данная функция перебирает все устаревшие transient и удаляет их из базы данных. Вы можете запустить её вручную или добавить в cron-задачу для регулярной очистки.

Практические советы по работе с transient и оптимизации скорости сайта

Используйте WPGPT и Clearfy Pro для контроля transient

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

Регулярная очистка и мониторинг transient в WordPress

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

Можно настроить WP-Cron для автоматического вызова функции очистки:

if ( ! wp_next_scheduled( 'wpdesk_delete_expired_transients_hook' ) ) {
    wp_schedule_event( time(), 'daily', 'wpdesk_delete_expired_transients_hook' );
}

add_action( 'wpdesk_delete_expired_transients_hook', 'wpdesk_delete_expired_transients' );

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

Оптимизация таблицы wp_options после удаления transient

После удаления большого количества записей transient желательно выполнить оптимизацию таблицы wp_options для освобождения места и повышения производительности.

Для этого можно использовать SQL-команду:

OPTIMIZE TABLE wp_options;

Или использовать инструменты управления базой данных, например phpMyAdmin.

Заключение

Удаление устаревших transient — важный этап оптимизации WordPress-сайта, который помогает поддерживать базу данных в порядке и улучшать скорость загрузки страниц. Использование SQL-запросов и PHP-функций позволяет справиться с задачей без установки дополнительных плагинов. Для удобства и автоматизации можно дополнительно использовать проверенные решения от WPShop.

Удаление старых ревизий постов WordPress без плагинов: оптимизация базы данных
01.01.2026
Отладка AJAX запросов в админ-панели WordPress: практическое руководство
06.12.2025
Как автоматизировать отзывы на сайте WordPress с помощью WPRemark
27.01.2026
WooCommerce: автоматическое удаление неактивных вариаций товаров
10.06.2026
Как изменить атрибуты товаров WooCommerce через REST API
22.04.2026

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