wpmake.ru wordpress WPMake

Оптимизация базы данных WordPress: практическое руководство с примерами кода

Оптимизация базы данных WordPress — одна из важнейших задач для поддержания быстродействия и стабильности сайта. Со временем в базе данных накапливаются избыточные данные: ревизии записей, спам-комментарии, устаревшие опции и транзиенты, что замедляет работу сайта и увеличивает размер БД.

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

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

  • Уменьшить размер базы данных;
  • Ускорить запросы;
  • Избавиться от мусора;
  • Повысить стабильность сайта.

Даже небольшие оптимизации могут дать заметный прирост скорости.

Типы «мусора» в базе данных WordPress

Основные категории данных, которые стоит удалять или оптимизировать:

  • Ревизии записей — автосохранения и версии постов, которые накапливаются в таблице wp_posts с типом revision.
  • Автосохранения — временные черновики, которые не нужны после публикации.
  • Спам и удалённые комментарии — занимают место в таблице wp_comments.
  • Транзиенты — временные кэшированные данные, которые не всегда корректно удаляются.
  • Неиспользуемые метаданные — устаревшие записи в таблицах wp_postmeta и wp_usermeta.
  • Опции — старые настройки в таблице wp_options, особенно с типом autoload.

Как оптимизировать базу данных WordPress вручную с помощью SQL-запросов

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

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

DELETE FROM wp_posts WHERE post_type = 'revision';

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

Удаление спам-комментариев

DELETE FROM wp_comments WHERE comment_approved = 'spam';

Очищаем таблицу комментариев от спама.

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

DELETE FROM wp_options WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%';

Удаляет все транзиенты, которые могут остаться после некорректного удаления.

Оптимизация базы данных программно с помощью функций WordPress

Для автоматизации очистки и оптимизации удобно использовать PHP-код, например, добавить в файл functions.php или создать свой плагин. Ниже пример функции для удаления ревизий:

function wpmake_delete_post_revisions() {
    global $wpdb;
    $revisions = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision'");
    foreach ($revisions as $revision_id) {
        wp_delete_post($revision_id, true);
    }
}
// Запускаем очистку при активации плагина или вручную
// wpmake_delete_post_revisions();

Аналогично можно написать функции для удаления спам-комментариев и транзиентов.

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

Если вы предпочитаете готовые решения, рекомендуем несколько проверенных плагинов с расширенными функциями:

  • Clearfy Pro — плагин для оптимизации производительности и очистки БД с удобным интерфейсом и расширенными настройками;
  • WP-Optimize — популярный инструмент для очистки базы данных, кэширования и сжатия изображений;
  • WP DB Cleaner — плагин для удаления ненужных записей и оптимизации таблиц.

Как ограничить количество ревизий с помощью кода

Чтобы не допускать избыточного накопления ревизий, можно ограничить их число в файле wp-config.php добавлением этой строки:

define('WP_POST_REVISIONS', 5);

Здесь 5 — максимальное количество ревизий для одной записи. Можно уменьшить или увеличить в зависимости от потребностей.

Использование фильтра для удаления ревизий при сохранении

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

function wpmake_limit_post_revisions( $num, $post ) {
    return 5; // оставляем только 5 ревизий
}
add_filter('wp_revisions_to_keep', 'wpmake_limit_post_revisions', 10, 2);

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

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

OPTIMIZE TABLE wp_posts, wp_postmeta, wp_comments, wp_commentmeta, wp_options, wp_usermeta, wp_terms, wp_termmeta, wp_term_relationships, wp_term_taxonomy;

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

Заключение по технической оптимизации базы данных WordPress

Регулярное обслуживание базы данных — залог быстрого и стабильного сайта. Используйте как ручные методы с SQL и PHP, так и проверенные плагины. Внедрите ограничение на ревизии, удаляйте спам и устаревшие транзиенты, оптимизируйте таблицы. Такой подход поможет избежать проблем с производительностью и нагрузкой на сервер.

×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙