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

Со временем в базе данных WordPress могут накапливаться таблицы, которые больше не используются. Это происходит из-за удаления плагинов, тем или некорректных миграций. Неиспользуемые таблицы могут замедлять работу сайта и занимать лишнее место в базе данных. В этой статье разберём, как найти такие таблицы и безопасно их удалить.

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

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

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

Удаление лишних таблиц поможет:

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

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

Для начала нужно получить список всех таблиц в базе данных. Обычно таблицы WordPress имеют префикс, указанный в файле wp-config.php, например wp_. Но плагины могут создавать таблицы с другими названиями.

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

SHOW TABLES;

Далее нужно определить, какие таблицы принадлежат самому WordPress (стандартные) и какие создали плагины. Стандартные таблицы WordPress:

  • wp_posts
  • wp_postmeta
  • wp_users
  • wp_usermeta
  • wp_options
  • wp_terms
  • wp_termmeta
  • wp_term_taxonomy
  • wp_term_relationships
  • wp_comments
  • wp_commentmeta

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

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

Пример функции для вывода таблиц базы WordPress

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

function wpboot_list_unused_tables() {
    global $wpdb;
    $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
    $wp_prefix = $wpdb->prefix;
    $standard_tables = [
        'posts', 'postmeta', 'users', 'usermeta', 'options',
        'terms', 'termmeta', 'term_taxonomy', 'term_relationships',
        'comments', 'commentmeta'
    ];
    $custom_tables = [];
    foreach ($tables as $table) {
        $table_name = $table[0];
        if (strpos($table_name, $wp_prefix) === 0) {
            $suffix = str_replace($wp_prefix, '', $table_name);
            if (!in_array($suffix, $standard_tables)) {
                $custom_tables[] = $table_name;
            }
        } else {
            $custom_tables[] = $table_name;
        }
    }
    return $custom_tables;
}

// Использование
$unused_tables = wpboot_list_unused_tables();
foreach ($unused_tables as $table) {
    echo $table . "<br>";
}

Эта функция вернёт таблицы, которые не входят в стандартный набор WordPress, и которые стоит проверить на использование.

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

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

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

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

Если хотите автоматизировать этот процесс, можно создать скрипт на PHP, который удалит массив таблиц:

function wpboot_delete_tables(array $tables) {
    global $wpdb;
    foreach ($tables as $table) {
        $wpdb->query("DROP TABLE IF EXISTS {$table}");
    }
}

// пример вызова
// wpboot_delete_tables(['wp_oldplugin_data', 'wp_temp_table']);

Используйте эту функцию только после того, как точно убедитесь, что таблицы не нужны.

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

Чтобы в будущем не сталкиваться с проблемой лишних таблиц:

  • При удалении плагинов проверяйте, очищают ли они свою базу данных. Если нет — удаляйте вручную.
  • Используйте проверенные плагины с хорошей репутацией.
  • Регулярно делайте аудит базы данных с помощью инструментов оптимизации, например Clearfy Pro.
  • Используйте плагин ABC Pagination или другие решения для улучшения работы с базой, если у вас много данных.

Выводы

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

Автоматическое удаление старых записей в WordPress через cron с примерами
25.02.2026
Как отключить AJAX-загрузку в Gutenberg блоках WordPress
02.04.2026
Почему не работают купоны в WooCommerce и как это исправить
20.04.2026
WooCommerce: автоматическое изменение стоимости товара при применении купона
30.06.2026
Как быстро использовать атрибуты WooCommerce для фильтрации и вывода товаров
03.05.2026