Как автоматизировать удаление старого кеша в WordPress

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

Почему важно удалять старый кеш в WordPress

Кеш хранит версии страниц, скриптов, стилей и других элементов сайта для быстрого отображения посетителям. Но со временем кеш устаревает — появляются обновления контента, новые стили, исправления ошибок. Если кеш не обновлять, посетители увидят старую информацию, что ухудшит UX и SEO. Кроме того, накопление кеша занимает место на сервере, что негативно влияет на его производительность.

Регулярное удаление устаревшего кеша позволяет:

Автоматизация удаления кеша через WP-Cron

WordPress имеет встроенную систему планировщика задач — WP-Cron. С её помощью можно настроить регулярное выполнение функций, например, очистку кеша.

Создаем функцию очистки кеша

В зависимости от используемого решения кеширования, способы очистки отличаются. Рассмотрим универсальный пример для файлового кеша в папке wp-content/cache/:

function wpdetect_clear_old_cache() {
    $cache_dir = WP_CONTENT_DIR . '/cache/';
    if (!is_dir($cache_dir)) return;

    $files = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator($cache_dir, RecursiveDirectoryIterator::SKIP_DOTS),
        RecursiveIteratorIterator::CHILD_FIRST
    );

    $now = time();
    $max_age = 86400; // 24 часа

    foreach ($files as $fileinfo) {
        if ($fileinfo->isFile()) {
            if ($now - $fileinfo->getMTime() > $max_age) {
                @unlink($fileinfo->getRealPath());
            }
        }
    }
}

Эта функция удаляет все файлы кеша старше 24 часов. Дальше привяжем её к WP-Cron.

Регистрация события WP-Cron

function wpdetect_schedule_cache_clear() {
    if (!wp_next_scheduled('wpdetect_clear_cache_hook')) {
        wp_schedule_event(time(), 'daily', 'wpdetect_clear_cache_hook');
    }
}
add_action('wp', 'wpdetect_schedule_cache_clear');

add_action('wpdetect_clear_cache_hook', 'wpdetect_clear_old_cache');

Теперь функция wpdetect_clear_old_cache будет запускаться ежедневно и удалять устаревший кеш.

Использование популярных плагинов для управления кешем

Если на сайте установлен плагин кеширования, лучше использовать его API для очистки, чтобы избежать проблем.

WP Super Cache

Для WP Super Cache очистка кеша в коде:

function wpdetect_wp_super_cache_clear() {
    if (function_exists('wp_cache_clear_cache')) {
        wp_cache_clear_cache();
    }
}

Эту функцию также можно повесить на WP-Cron, заменив wpdetect_clear_old_cache.

W3 Total Cache

Для W3 Total Cache очистка кеша:

function wpdetect_w3tc_clear_cache() {
    if (function_exists('w3tc_flush_all')) {
        w3tc_flush_all();
    }
}

WP Rocket

WP Rocket не предоставляет публичных функций очистки, но можно использовать WP-CLI команду:

wp rocket clean

Для автоматизации через PHP можно запускать shell-команды (если разрешено):

function wpdetect_wp_rocket_clear_cache() {
    if (function_exists('shell_exec')) {
        shell_exec('wp rocket clean');
    }
}

Автоматизация очистки кеша с помощью плагинов

Если вы не хотите писать код, можно воспользоваться плагинами, которые позволяют настроить автоматическую очистку кеша по расписанию или по определённым событиям:

Практические советы по управлению кешем

Для эффективной работы кеша и его очистки рекомендуем:

Пример расширенной функции автоматической очистки кеша с логированием

function wpdetect_clear_cache_with_log() {
    $log = [];
    $cache_dir = WP_CONTENT_DIR . '/cache/';
    if (!is_dir($cache_dir)) {
        $log[] = 'Папка кеша не найдена.';
        error_log(implode("\n", $log));
        return;
    }

    $files = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator($cache_dir, RecursiveDirectoryIterator::SKIP_DOTS),
        RecursiveIteratorIterator::CHILD_FIRST
    );

    $now = time();
    $max_age = 86400; // 24 часа
    $deleted_files = 0;

    foreach ($files as $fileinfo) {
        if ($fileinfo->isFile()) {
            if ($now - $fileinfo->getMTime() > $max_age) {
                if (@unlink($fileinfo->getRealPath())) {
                    $deleted_files++;
                } else {
                    $log[] = 'Не удалось удалить: ' . $fileinfo->getRealPath();
                }
            }
        }
    }

    $log[] = 'Удалено файлов кеша: ' . $deleted_files;
    error_log(implode("\n", $log));
}

add_action('wpdetect_clear_cache_hook', 'wpdetect_clear_cache_with_log');

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

Заключение

Автоматизация удаления старого кеша в WordPress — важная задача для поддержания скорости и актуальности сайта. Используя WP-Cron, API плагинов кеширования и кастомные скрипты, вы можете настроить надежный механизм очистки, который не потребует вашего постоянного вмешательства. Если предпочитаете готовые решения, обратите внимание на плагин Clearfy Pro, который значительно упростит управление кешем и оптимизацию сайта в целом.

Как автоматизировать удаление неиспользуемых user meta в WordPress
22.01.2026
Автоматическая проверка безопасности и обновления плагинов в WordPress
04.11.2025
Как установить автоматическое удаление спама в комментариях WordPress
11.12.2025
Как настроить автоматический сбор и удаление логов в WordPress
31.01.2026
Как автоматизировать управление и решение проблем с PHP-ошибками в WordPress
22.02.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее