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

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

Почему важно удалять неиспользуемые теги в WordPress

Теги в WordPress – это таксономия, которая помогает структурировать контент и улучшает навигацию. Но если теги не используются в записях, они становятся мусором в базе данных. Такие неиспользуемые теги занимают место в таблице wp_terms и связанной с ней wp_term_taxonomy. Чем больше лишних тегов, тем медленнее работают запросы на выборку и тем более загроможденной становится админ-панель.

Удаление неиспользуемых тегов помогает:

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

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

Теги в WordPress хранятся как термины таксономии post_tag. В таблице wp_term_taxonomy поле count хранит количество записей, связанных с каждым тегом. Если count равен нулю, значит тег не используется.

Для проверки можно выполнить SQL-запрос через phpMyAdmin или любой другой инструмент работы с базой данных:

SELECT t.term_id, t.name, tt.count FROM wp_terms AS t
JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
WHERE tt.taxonomy = 'post_tag' AND tt.count = 0;

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

Удаление неиспользуемых тегов через код в functions.php

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

function wpcontent_delete_unused_tags() {
    global $wpdb;
    // Получаем неиспользуемые теги
    $unused_tags = $wpdb->get_col("SELECT t.term_id FROM {$wpdb->terms} AS t
        INNER JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id
        WHERE tt.taxonomy = 'post_tag' AND tt.count = 0");

    if (empty($unused_tags)) {
        return 'Неиспользуемых тегов не найдено.';
    }

    foreach ($unused_tags as $term_id) {
        wp_delete_term($term_id, 'post_tag');
    }

    return count($unused_tags) . ' неиспользуемых тегов удалено.';
}

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

add_action('admin_init', function() {
    if (current_user_can('manage_options') && isset($_GET['delete_unused_tags'])) {
        echo wpcontent_delete_unused_tags();
        exit;
    }
});

После добавления этого кода можно перейти в админку с параметром ?delete_unused_tags=1 и запустить удаление. Не забудьте убрать этот код после выполнения.

Удаление неиспользуемых тегов с помощью плагинов

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

Один из вариантов — плагин Term Management Tools, который помогает управлять тегами и категориями. В нем есть возможность массового удаления терминов, но предварительно нужно фильтровать по счетчику.

Также стоит обратить внимание на Clearfy Pro из WPShop, который содержит функции для оптимизации базы и удаления неиспользуемых таксономий вместе с другими инструментами оптимизации.

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

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

OPTIMIZE TABLE wp_terms, wp_term_taxonomy;

Или через плагин, например, WP-Optimize или Clearfy Pro из WPShop.

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

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

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

Также можно автоматизировать удаление неиспользуемых тегов с помощью WP-Cron, запуская функцию wpcontent_delete_unused_tags() по расписанию, например раз в месяц.

Пример настройки WP-Cron для автоматического удаления

function wpcontent_schedule_tag_cleanup() {
    if (!wp_next_scheduled('wpcontent_cron_tag_cleanup')) {
        wp_schedule_event(time(), 'monthly', 'wpcontent_cron_tag_cleanup');
    }
}
add_action('wp', 'wpcontent_schedule_tag_cleanup');

add_action('wpcontent_cron_tag_cleanup', 'wpcontent_delete_unused_tags');

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

Выводы

Удаление неиспользуемых тегов в WordPress — важная задача для поддержания базы данных в чистоте и высокой производительности сайта. Используйте SQL-запросы для анализа, функции PHP для безопасного удаления и автоматизацию через WP-Cron. Если предпочитаете без кода — обратите внимание на плагины Clearfy Pro и Term Management Tools. Регулярная очистка и оптимизация позволят избежать проблем с производительностью и улучшить качество контента.

Решение проблемы неработающего обновления товаров WooCommerce при использовании кэширования
16.05.2026
Удаление неиспользуемых пользовательских полей в WordPress для оптимизации базы данных
11.02.2026
Как создать автоматическое удаление неиспользуемых meta данных в WordPress
26.01.2026
Как автоматически оптимизировать картинки в WordPress при загрузке
04.02.2026
Как создать дерево категорий в WordPress с помощью кода
19.11.2025