Как удалить неиспользуемые таблицы базы данных WordPress

При работе с WordPress накапливаются не только записи и медиафайлы, но и множество таблиц в базе данных. Многие из них могут оставаться после удаления плагинов или тем, что приводит к «загрязнению» базы и снижению производительности. В этой статье разберёмся, как найти и безопасно удалить неиспользуемые таблицы базы данных WordPress, чтобы оптимизировать работу сайта.

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

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

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

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

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

Основные таблицы WordPress имеют префикс, который задаётся при установке (по умолчанию wp_). К ним относятся:

  • wp_posts
  • wp_postmeta
  • wp_users
  • wp_usermeta
  • wp_options
  • и другие стандартные 12 таблиц

Все остальные таблицы обычно создают плагины или темы. Чтобы найти их, можно использовать SQL запрос:

SHOW TABLES LIKE 'wp_%';

Далее нужно сверить найденные таблицы с официальным списком стандартных.

Также можно использовать плагин WP-DBManager или Advanced Database Cleaner, которые показывают список таблиц и помогают выявить устаревшие.

Пример автоматического поиска нестандартных таблиц с помощью PHP-скрипта

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

function wpsetup_find_unused_tables($wpdb) {
    $standard_tables = [
        $wpdb->posts,
        $wpdb->postmeta,
        $wpdb->users,
        $wpdb->usermeta,
        $wpdb->options,
        $wpdb->comments,
        $wpdb->commentmeta,
        $wpdb->terms,
        $wpdb->termmeta,
        $wpdb->term_taxonomy,
        $wpdb->term_relationships,
        $wpdb->links
    ];
    $all_tables = $wpdb->get_col('SHOW TABLES');
    $unused_tables = [];
    foreach ($all_tables as $table) {
        if (!in_array($table, $standard_tables)) {
            $unused_tables[] = $table;
        }
    }
    return $unused_tables;
}

Этот код возвращает массив с названиями таблиц, которые не входят в стандартный набор WordPress. Далее можно проверить каждую на принадлежность плагинам.

Как безопасно удалить неиспользуемые таблицы из базы данных WordPress

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

Удалять таблицы можно вручную через phpMyAdmin или с помощью SQL запросов:

DROP TABLE IF EXISTS имя_таблицы;

Пример удаления нескольких таблиц:

DROP TABLE IF EXISTS wp_plugin1_data, wp_plugin2_cache;

Если вы хотите автоматизировать удаление, можно использовать PHP-функцию с проверками и логированием:

function wpsetup_delete_unused_tables($wpdb, $tables) {
    foreach ($tables as $table) {
        $wpdb->query("DROP TABLE IF EXISTS {$table}");
    }
}
<

Вызов функции:

$unused = wpsetup_find_unused_tables($wpdb);
wpsetup_delete_unused_tables($wpdb, $unused);

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

Удаление таблиц с помощью плагина Advanced Database Cleaner

Плагин Advanced Database Cleaner позволяет безопасно находить и удалять устаревшие таблицы. Он анализирует базу, показывает владельца таблиц и предлагает очистить неиспользуемые данные.

Основные шаги:

  1. Установите и активируйте плагин.
  2. Перейдите в раздел «Таблицы».
  3. Проверьте список неиспользуемых таблиц, убедитесь, что они не нужны.
  4. Выберите таблицы и нажмите «Удалить».

Рекомендации по профилактике появления неиспользуемых таблиц

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

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

Если вы разрабатываете собственные плагины, реализуйте функцию очистки базы при деактивации или удалении плагина. Это можно сделать через хук register_uninstall_hook:

function wpsetup_plugin_uninstall() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'myplugin_table';
    $wpdb->query("DROP TABLE IF EXISTS {$table_name}");
}
register_uninstall_hook(__FILE__, 'wpsetup_plugin_uninstall');

Заключение

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

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

Как добавить AJAX фильтрацию товаров в WordPress без перезагрузки страницы
25.01.2026
Как использовать хуки для изменения функциональности WordPress без переписывания кода
16.03.2026
Как добавить произвольные типы постов в WordPress с примерами кода
20.12.2025
Как отключить или удалить XML-RPC в WordPress
01.01.2026
WooCommerce не отображает товары при фильтрации AJAX: как исправить проблему
20.04.2026