В 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 можно выделить теги с нулевым количеством и удалить их массово:
- Перейдите в Записи > Метки.
- Отсортируйте список по колонке «Количество» (Count).
- Выделите теги с нулём.
- В выпадающем списке «Действия» выберите «Удалить» и примените.
Этот способ подходит для небольшого количества тегов, но при большом их количестве удобнее автоматизировать процесс.
Автоматическое удаление неиспользуемых тегов с помощью кода
Для автоматизации удаления неиспользуемых тегов можно создать функцию, которая будет запускаться вручную или по расписанию. Пример функции для удаления всех неиспользуемых тегов:
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 или специализированных плагинов вы сможете быстро очистить базу и ускорить работу сайта. Рекомендуется делать это регулярно, а также следить за качеством создаваемых тегов, чтобы избежать беспорядка.