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

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

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

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

  • Производительность базы данных. Чем больше записей и таксономий, тем тяжелее запросы.
  • Поисковую оптимизацию (SEO). Поисковые системы могут воспринимать множество неактивных тегов как дублированный или некачественный контент.
  • Удобство администрирования. Большое количество устаревших тегов затрудняет навигацию и выбор нужных.

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

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

Самый простой способ — использовать панель администратора. Зайдите в Записи > Метки. Там отображаются все теги с указанием количества записей, к которым они привязаны.

Теги с числом 0 — не используются ни в одной записи и могут быть удалены без риска потерять контент.

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

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

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

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

В админке WordPress можно выделить теги с нулевым количеством и удалить их массово:

  1. Перейдите в Записи > Метки.
  2. Отсортируйте список по колонке «Количество» (Count).
  3. Выделите теги с нулём.
  4. В выпадающем списке «Действия» выберите «Удалить» и примените.

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

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

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

function wplessons_delete_unused_tags() {
    $unused_tags = get_terms(array(
        'taxonomy' => 'post_tag',
        'hide_empty' => true,
        'fields' => 'ids',
        'count' => 0
    ));

    if (!empty($unused_tags) && !is_wp_error($unused_tags)) {
        foreach ($unused_tags as $tag_id) {
            wp_delete_term($tag_id, 'post_tag');
        }
        return count($unused_tags) . ' неиспользуемых тегов удалено.';
    } else {
        return 'Неиспользуемых тегов не найдено.';
    }
}

Однако параметр hide_empty => true возвращает теги, которые используются. Чтобы получить неиспользуемые, нужно указать hide_empty => false и фильтровать по count == 0:

function wplessons_get_unused_tags_ids() {
    $all_tags = get_terms(array(
        'taxonomy' => 'post_tag',
        'hide_empty' => false,
    ));
    $unused = array();
    if (!empty($all_tags) && !is_wp_error($all_tags)) {
        foreach ($all_tags as $tag) {
            if ($tag->count == 0) {
                $unused[] = $tag->term_id;
            }
        }
    }
    return $unused;
}

function wplessons_delete_unused_tags() {
    $unused_tags = wplessons_get_unused_tags_ids();
    if (!empty($unused_tags)) {
        foreach ($unused_tags as $tag_id) {
            wp_delete_term($tag_id, 'post_tag');
        }
        return count($unused_tags) . ' неиспользуемых тегов удалено.';
    } else {
        return 'Неиспользуемых тегов не найдено.';
    }
}

Вы можете вызвать функцию wplessons_delete_unused_tags() из консоли WP-CLI, из административного интерфейса через кастомную страницу или по крону.

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

Если не хотите писать код — воспользуйтесь специализированными плагинами. Среди них:

  • Term Management Tools — позволяет массово удалять термины, в том числе неиспользуемые.
  • WP Sweep — удаляет мусор в базе, включая неиспользуемые термины и метаданные.
  • Clearfy Pro — не только оптимизирует базу, но и улучшает работу с таксономиями, включая удаление неиспользуемых тегов. Подробнее о Clearfy Pro можно узнать на официальной странице плагина.

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

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

Удаление — это хорошо, но лучше предотвратить рост бессмысленных тегов. Вот несколько советов:

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

Выводы и рекомендации

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

Как исправить ошибку 503 Service Unavailable в WordPress
18.11.2025
Как создать собственный вид регистрации в WordPress с помощью плагинов
10.11.2025
Как использовать фильтры WP_Query для комплексного поиска в WordPress
22.03.2026
Как удалить автоматические частые запросы в WordPress для оптимизации производительности
19.01.2026
Как удалить неиспользуемые теги в WordPress для оптимизации базы данных
02.03.2026