Ведение чистой и оптимизированной базы данных — ключ к стабильной и быстрой работе сайта на WordPress. Одной из распространённых проблем становится накопление неиспользуемых тегов, которые не только загромождают админпанель, но и могут негативно влиять на SEO и производительность. В этой статье мы подробно разберём, как найти и удалить неиспользуемые теги на вашем сайте WordPress, используя как готовые плагины, так и собственные решения на PHP.
Почему важно удалять неиспользуемые теги
Теги в WordPress служат для группировки записей по определённым темам, но со временем многие из них перестают использоваться. Их накопление ведёт к нескольким негативным последствиям:
- Загромождение базы данных. Каждая запись тега — это дополнительная строка в таблицах, что замедляет запросы и увеличивает размер базы.
- Плохой пользовательский опыт. В админке становится сложнее ориентироваться, что затрудняет управление контентом.
- Потенциальное негативное влияние на SEO. Неиспользуемые теги могут создавать дублированный контент или пустые страницы архива, что поисковики воспринимают негативно.
Регулярная чистка тегов помогает поддерживать сайт в порядке и улучшает его работу.
Как найти неиспользуемые теги через интерфейс WordPress
Самый простой способ — просмотреть список тегов в разделе Записи > Метки. Там отображается количество записей для каждого тега. Теги с нулевым значением — кандидаты на удаление.
Однако, если тег используется в пользовательских типах записей (CPT), число может не отображаться корректно. Кроме того, если тег использовался раньше, но потом записи из него были удалены, он остаётся в базе.
Для более точного анализа лучше использовать SQL-запросы или плагины.
Удаление неиспользуемых тегов с помощью SQL-запроса
Если у вас есть доступ к базе данных через phpMyAdmin или другой инструмент, можно выполнить следующий запрос, чтобы получить список тегов без связанных записей:
SELECT t.term_id, t.name 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;Этот запрос выбирает все теги с нулевым счётчиком записей. Чтобы удалить их, можно выполнить:
DELETE t, tt 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;<Важно: перед выполнением любых операций с базой данных сделайте резервную копию!
Автоматизация удаления неиспользуемых тегов с помощью PHP-функции
Если вы предпочитаете работать через код, можно добавить следующую функцию в файл functions.php вашей темы или создать небольшой плагин. Эта функция найдёт и удалит все теги без записей:
function wpfind_remove_unused_tags() {
$args = array(
'taxonomy' => 'post_tag',
'hide_empty' => true,
'fields' => 'ids',
);
$used_tags = get_terms($args);
$all_tags = get_terms(array(
'taxonomy' => 'post_tag',
'hide_empty' => false,
'fields' => 'ids',
));
$unused_tags = array_diff($all_tags, $used_tags);
foreach ($unused_tags as $tag_id) {
wp_delete_term($tag_id, 'post_tag');
}
}
// Запустите функцию один раз, затем удалите вызов
// wpfind_remove_unused_tags();Обратите внимание, что вызов функции нужно делать один раз, например, через админку или подключение к init, и затем удалить, чтобы не удалять теги при каждом загрузке сайта.
Плагины для управления тегами и оптимизации таксономий
Для тех, кто не хочет работать с кодом, есть удобные плагины:
- Term Management Tools — расширяет возможности управления таксономиями, позволяет объединять и удалять теги.
- Press Tager — помогает очистить и оптимизировать теги, в том числе удалить неиспользуемые.
- Clearfy Pro — комплексный плагин для оптимизации сайта, включая управление таксономиями и удаление мусора.
Использование таких плагинов позволяет безопасно и удобно управлять тегами без риска повредить базу данных.
Как избежать повторного появления неиспользуемых тегов
После очистки важно контролировать появление неактуальных тегов. Вот рекомендации:
- Ограничьте права пользователей. Разрешайте создавать теги только проверенным редакторам.
- Используйте автокомплит при вводе тегов. Это снижает вероятность создания синонимов и дубликатов.
- Регулярно проверяйте и удаляйте пустые теги. Можно настроить автоматизацию с помощью WP-Cron и кастомного кода.
Пример кода для планового удаления пустых тегов
Добавьте в functions.php следующий код для еженедельного запуска очистки:
function wpfind_schedule_unused_tags_cleanup() {
if (! wp_next_scheduled('wpfind_cleanup_unused_tags_hook')) {
wp_schedule_event(time(), 'weekly', 'wpfind_cleanup_unused_tags_hook');
}
}
add_action('wp', 'wpfind_schedule_unused_tags_cleanup');
function wpfind_cleanup_unused_tags() {
$args = array('taxonomy' => 'post_tag', 'hide_empty' => true, 'fields' => 'ids');
$used_tags = get_terms($args);
$all_tags = get_terms(array('taxonomy' => 'post_tag', 'hide_empty' => false, 'fields' => 'ids'));
$unused_tags = array_diff($all_tags, $used_tags);
foreach ($unused_tags as $tag_id) {
wp_delete_term($tag_id, 'post_tag');
}
}
add_action('wpfind_cleanup_unused_tags_hook', 'wpfind_cleanup_unused_tags');Таким образом, вы обеспечите автоматическую очистку базы без вмешательства.
Заключение
Удаление неиспользуемых тегов в WordPress — важный элемент поддержки сайта в порядке и оптимизации производительности. Используйте SQL-запросы, PHP-функции или плагины, чтобы контролировать и чистить базу данных. Рекомендуется настроить регулярную автоматическую очистку, чтобы не допустить накопления мусора. Если хотите расширенные возможности оптимизации, обратите внимание на Clearfy Pro с инструментами для удобного управления таксономиями и оптимизации сайта.