Как удалить кэш и оптимизировать базу данных WordPress без плагинов

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

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

Плагины для очистки кэша и оптимизации базы данных удобны, но они добавляют дополнительную нагрузку и зависимости, а иногда могут конфликтовать с другими инструментами. Ручное управление даёт более тонкий контроль, позволяет интегрировать очистку в кастомные сценарии и автоматизировать процессы через wp-cron.

Кроме того, это полезный навык для разработчиков, который помогает понять внутренние механизмы WordPress и базы данных MySQL.

Удаление кэша WordPress вручную

Виды кэша в WordPress

В WordPress часто используют несколько видов кэша:

  • Объектный кэш (object cache) — хранит результаты запросов к базе данных и вычисленные данные в памяти;
  • Кэш страниц (full page cache) — сохраняет готовые HTML-страницы для быстрого вывода;
  • Кэш транзиентов (transients) — временные данные, хранящиеся в базе данных или в памяти.

Удаление объекта кэша и транзиентов

Для удаления объекта кэша можно использовать функцию wp_blog_delete_object_cache(), которую мы создадим для wp-blog.ru:

function wp_blog_delete_object_cache() {
    if ( function_exists('wp_cache_flush') ) {
        wp_cache_flush();
    }
}

Эта функция вызовет сброс объекта кэша, если он активен. Рекомендуется запускать её через wp-cron или вручную в административной части.

Для удаления всех транзиентов из базы данных достаточно выполнить SQL-запрос, так как транзиенты хранятся в таблице wp_options с ключами, начинающимися на _transient_:

function wp_blog_delete_all_transients() {
    global $wpdb;
    $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%'");
}

Этот код удалит все транзиенты, что освободит место и предотвратит использование устаревших данных.

Очистка кэша страниц вручную

Если вы используете серверный кэш (например, Nginx FastCGI cache) или кэш на уровне PHP, то часто кэш хранится в файловой системе. Для его удаления можно написать функцию, удаляющую содержимое директории кэша:

function wp_blog_clear_page_cache($cache_dir) {
    if (!is_dir($cache_dir)) return;

    $files = glob($cache_dir . '/*');
    foreach ($files as $file) {
        if (is_file($file)) {
            unlink($file);
        } elseif (is_dir($file)) {
            wp_blog_clear_page_cache($file); // рекурсивно
            rmdir($file);
        }
    }
}

Замените $cache_dir на путь к вашей папке с кэшем. Вызов этой функции можно привязать к хуку сохранения записи или к кнопке в админке.

Оптимизация базы данных WordPress без плагинов

Почему важна оптимизация базы

Со временем в базе данных накапливаются ревизии постов, автосохранения, удалённые записи, спам-комментарии и прочие «мусорные» данные. Они замедляют запросы, увеличивают размер резервных копий и нагрузку на сервер.

Оптимизация заключается в удалении лишних данных и дефрагментации таблиц.

Удаление ревизий и автосохранений

Для удаления всех ревизий и автосохранений используйте следующий код:

function wp_blog_delete_revisions_and_autosaves() {
    global $wpdb;
    $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
    $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_status = 'auto-draft'");
}

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

Удаление спам-комментариев и мусорных записей

Для очистки комментариев со статусом «спам» и «корзина» можно использовать:

function wp_blog_delete_spam_and_trash_comments() {
    global $wpdb;
    $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'spam'");
    $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'trash'");
}

Это поможет уменьшить размер таблицы комментариев и ускорить выборки.

Оптимизация таблиц базы данных

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

function wp_blog_optimize_tables() {
    global $wpdb;
    $tables = $wpdb->get_col('SHOW TABLES');
    foreach ($tables as $table) {
        $wpdb->query("OPTIMIZE TABLE {$table}");
    }
}

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

Автоматизация удаления кэша и оптимизации базы через wp-cron

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

function wp_blog_scheduled_cleanup() {
    wp_blog_delete_object_cache();
    wp_blog_delete_all_transients();
    wp_blog_delete_revisions_and_autosaves();
    wp_blog_delete_spam_and_trash_comments();
    wp_blog_optimize_tables();
}

if (!wp_next_scheduled('wp_blog_daily_cleanup')) {
    wp_schedule_event(time(), 'daily', 'wp_blog_daily_cleanup');
}
add_action('wp_blog_daily_cleanup', 'wp_blog_scheduled_cleanup');

Этот код создаёт ежедневное событие, которое очищает кэш, удаляет мусор из базы и оптимизирует таблицы. Вы можете изменить периодичность и добавить очистку кэша страниц, если это актуально.

Заключение по практическому применению

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Создаем свой плагин для автоматической оптимизации базы данных WordPress
17.12.2025
Как создать уникальный фильтрованный список постов WordPress с пагинацией
23.03.2026
Автоматическое удаление старого контента в WordPress: эффективные методы и примеры
18.02.2026
Как удалить неиспользуемые метаданные таксономий в WordPress: подробное руководство
09.04.2026
Как установить ограничения на сохранение данных через REST API в WordPress
28.02.2026
×
Делай сайт лучше!!

-20% на премиум темы и плагины

Использовать скидку ⋙