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

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

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

Неиспользуемые теги — это так называемые "мертвые" таксономии, которые не связаны с какими-либо записями. Они создают несколько проблем:

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

Поэтому регулярная очистка тегов — это важная часть поддержки сайта на WordPress.

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

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

  1. Перейдите в раздел Записи → Метки.
  2. Найдите теги с нулём в колонке «Количество».
  3. Отметьте их галочками и выберите действие «Удалить» в списке массовых действий.

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

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

Для автоматизации удаления неиспользуемых тегов можно создать PHP-функцию, которую запускают вручную или периодически через cron. Ниже — пример функции для сайта с доменом wpexamples.ru, которая удаляет все теги без привязанных записей.

function wpexamples_delete_unused_tags() {
    $tags = get_terms(array(
        'taxonomy' => 'post_tag',
        'hide_empty' => true,
        'fields' => 'ids',
    ));

    $all_tags = get_terms(array(
        'taxonomy' => 'post_tag',
        'fields' => 'ids',
        'hide_empty' => false
    ));

    $unused_tags = array_diff($all_tags, $tags);

    if (!empty($unused_tags)) {
        foreach ($unused_tags as $tag_id) {
            wp_delete_term($tag_id, 'post_tag');
        }
    }
}
// Запуск функции вручную
wpexamples_delete_unused_tags();

Объяснение кода:

  • Сначала получаем все ID тегов, у которых есть связанные записи (hide_empty = true).
  • Затем получаем все ID тегов без фильтра (hide_empty = false).
  • Вычисляем разницу — это и есть теги без записей.
  • Удаляем каждый такой тег с помощью wp_delete_term.

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

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

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

function wpexamples_schedule_tag_cleanup() {
    if (!wp_next_scheduled('wpexamples_weekly_tag_cleanup')) {
        wp_schedule_event(time(), 'weekly', 'wpexamples_weekly_tag_cleanup');
    }
}
add_action('wp', 'wpexamples_schedule_tag_cleanup');

add_action('wpexamples_weekly_tag_cleanup', 'wpexamples_delete_unused_tags');

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

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

Если не хотите писать код, можно использовать плагины. Однако плагинов, которые удаляют именно неиспользуемые теги массово, немного. Вот пара рекомендаций:

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

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

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

После установки WP Sweep:

  1. Перейдите в Инструменты → Sweep.
  2. Найдите раздел "Terms" или "Tags".
  3. Нажмите кнопку "Sweep" напротив пунктов с неиспользуемыми тегами.

Это простой способ поддерживать базу в чистоте.

Советы по работе с тегами, чтобы избежать накопления неиспользуемых

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

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

Для ограничения создания новых тегов можно использовать фильтр pre_insert_term и проверять, разрешено ли создавать новый тег. Пример:

function wpexamples_limit_tag_creation($term, $taxonomy) {
    if ($taxonomy === 'post_tag' && !current_user_can('manage_options')) {
        return new WP_Error('forbidden', 'Создание новых тегов запрещено');
    }
    return $term;
}
add_filter('pre_insert_term', 'wpexamples_limit_tag_creation', 10, 2);

Так только администраторы смогут создавать новые теги.

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

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

Если вы хотите расширить функционал сайта и упростить управление таксономиями, обратите внимание на плагины из WPShop.ru, например, Clearfy Pro, который оптимизирует и упрощает работу с WordPress, включая очистку базы и таксономий.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как создать динамический попап в WordPress на AJAX с примером кода
27.02.2026
WooCommerce: как избежать ошибки 429 Too Many Requests при массовом обновлении заказов
14.05.2026
Как использовать WPRemark для создания динамических форм в WordPress
29.03.2026
Как использовать хуки для оптимизации WordPress: практические примеры
06.12.2025
Как создать собственный шорткод в WordPress: подробное руководство
01.11.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее