Почему важно удалять старые кэши и оптимизировать базу данных
Со временем на сайте WordPress накапливается огромное количество временных данных: устаревшие кэши, ревизии записей, спам-комментарии, транзиенты и неиспользуемые таблицы. Это приводит к замедлению работы сайта, увеличению времени отклика сервера и росту размера базы данных. Удаление этих данных способствует ускорению загрузки страниц, снижению нагрузки на сервер и улучшению пользовательского опыта.
Оптимизация базы данных — это процесс очистки и упорядочивания таблиц, удаление лишних записей и дефрагментация данных. Важно делать это регулярно, чтобы сайт работал стабильно и быстро.
В этой статье рассмотрим, как удалить старые кэши и оптимизировать базу данных WordPress с помощью популярных плагинов и собственных функций.
Удаление старых кэшей в WordPress
Типы кэшей и их влияние на производительность
В WordPress используется несколько видов кэша:
- Кэш страниц (Page Cache) — сохраняет готовые HTML-страницы для быстрого вывода;
- Кэш объектов (Object Cache) — хранит результаты запросов к базе данных в памяти;
- Кэш браузера — позволяет браузеру хранить статические ресурсы;
- Транзиенты (Transient Cache) — временные данные, хранящиеся в базе данных.
Старые или повреждённые кэши могут приводить к отображению устаревшей информации или конфликтам, поэтому их периодическое удаление обязательно.
Плагины для очистки кэша
Если вы используете популярные плагины для кэширования, например, Clearfy Pro или WP Rocket, то очистка кэша обычно доступна в настройках. Пример очистки кэша в Clearfy Pro:
- Перейдите в раздел Clearfy > Кэширование;
- Нажмите кнопку «Очистить весь кэш»;
- Проверьте сайт на актуальность данных.
Для автоматизации можно настроить периодическую очистку кэша по расписанию с помощью WP-Cron.
Удаление транзиентов вручную через код
Транзиенты — это временные записи в базе данных, которые иногда остаются после завершения срока жизни и занимают место. Для их удаления можно добавить функцию с префиксом домена:
function _2wp_ru_delete_expired_transients() {
global $wpdb;
$time = time();
$sql = "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%' AND option_name NOT LIKE '_transient_timeout_%' AND option_name IN (SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout_%' AND option_value < %d)";
$wpdb->query($wpdb->prepare($sql, $time));
}
// Запускать по расписанию или вручную
_2wp_ru_delete_expired_transients();Эта функция удалит все просроченные транзиенты из таблицы опций.
Оптимизация базы данных WordPress
Что можно оптимизировать в базе данных
Основные объекты для оптимизации:
- Ревизии записей — множество промежуточных версий постов, которые редко нужны;
- Спам и удалённые комментарии — занимают место и замедляют выборки;
- Автосохранения — временные версии постов, которые можно очистить;
- Неиспользуемые или устаревшие таблицы — могут остаться после удаления плагинов;
- Общие фрагментации таблиц — замедляют запросы.
Плагины для оптимизации базы данных
Один из лучших плагинов — Clearfy Pro, который имеет функцию оптимизации базы данных «в один клик». Он удаляет ревизии, спам, транзиенты и оптимизирует таблицы MySQL.
Другие популярные решения — WP-Optimize и Advanced Database Cleaner.
Пример собственной функции оптимизации базы данных
Если нужен тонкий контроль, можно использовать следующий код для удаления ревизий и спама с последующей оптимизацией таблиц:
function _2wp_ru_optimize_database() {
global $wpdb;
// Удаляем ревизии
$wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
// Удаляем спам-комментарии
$wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'spam'");
// Удаляем удалённые комментарии
$wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'trash'");
// Оптимизируем таблицы
$tables = [$wpdb->posts, $wpdb->comments, $wpdb->options, $wpdb->postmeta, $wpdb->commentmeta];
foreach ($tables as $table) {
$wpdb->query("OPTIMIZE TABLE {$table}");
}
}
// Запускайте вручную или по расписанию
_2wp_ru_optimize_database();Этот скрипт безопасен и поможет уменьшить размер базы и повысить скорость запросов.
Автоматизация очистки и оптимизации
Настройка WP-Cron для автоматической оптимизации
Для регулярного запуска функций очистки создайте расписание с помощью WP-Cron:
function _2wp_ru_schedule_optimization() {
if (!wp_next_scheduled('2wp_ru_daily_db_optimization')) {
wp_schedule_event(time(), 'daily', '2wp_ru_daily_db_optimization');
}
}
add_action('wp', '_2wp_ru_schedule_optimization');
add_action('2wp_ru_daily_db_optimization', function() {
_2wp_ru_delete_expired_transients();
_2wp_ru_optimize_database();
});Так вы будете автоматизировать регулярное удаление мусора и оптимизацию без ручного вмешательства.
Мониторинг и резервное копирование перед оптимизацией
Перед очисткой базы важно сделать резервную копию. Можно использовать плагины, например, WP Backup или встроенные решения хостинга.
Также полезно вести мониторинг размера базы данных и скорости сайта, чтобы оценить эффективность оптимизаций.
Выводы и рекомендации
Удаление старых кэшей и оптимизация базы данных — обязательные процедуры для поддержания производительности WordPress-сайта. Регулярное использование плагинов вроде Clearfy Pro или собственных функций с WP-Cron поможет автоматизировать эти задачи.
Всегда делайте резервное копирование перед оптимизацией и тестируйте сайт после изменений. Такой подход обеспечит стабильную и быструю работу вашего проекта на WordPress.