В процессе развития сайта на WordPress часто накапливается большое количество категорий, которые перестают быть актуальными или используются редко. Это может негативно влиять на юзабилити, навигацию и SEO. В этой статье подробно разберем, как безопасно и эффективно удалить ненужные категории из WordPress, а также как автоматизировать этот процесс с помощью кода и плагинов.
Почему важно удалять ненужные категории в WordPress
Накопление устаревших или дублирующихся категорий ведет к следующим проблемам:
- Сложность навигации для посетителей сайта;
- Потеря концентрации ключевых слов, что снижает SEO-эффективность;
- Увеличение громоздкости базы данных и админки;
- Визуальный беспорядок в виджетах и меню.
Удаление ненужных категорий помогает поддерживать структуру сайта в чистоте и улучшает пользовательский опыт.
Как удалить категории вручную через админку WordPress
Самый простой способ — использовать стандартный интерфейс:
- Перейдите в раздел Записи > Рубрики в админке.
- Найдите категорию, которую хотите удалить.
- Наведите курсор на название категории и нажмите Удалить.
- Подтвердите удаление.
Важно: WordPress не удаляет записи, которые были привязаны к этой категории. Все они автоматически переходят в категорию по умолчанию (обычно "Без рубрики"). Если хотите сохранить структуру, лучше заранее назначить записи другой категории.
Как программно удалять категории с помощью функции wp-shablon_delete_category()
Для автоматизации удаления категорий можно написать простую функцию на PHP. Она будет принимать ID категории и удалять её, при этом можно контролировать, что происходит с записями.
function wp_shablon_delete_category($cat_id) {
if (!term_exists($cat_id, 'category')) {
return new WP_Error('not_found', 'Категория не найдена');
}
// Переназначим записи из категории в категорию по умолчанию
$default_cat_id = get_option('default_category');
if (!$default_cat_id) {
$default_cat_id = 1; // Обычно ID категории 'Без рубрики'
}
$posts = get_posts(array(
'category' => $cat_id,
'numberposts' => -1
));
foreach ($posts as $post) {
wp_set_post_categories($post->ID, array($default_cat_id), false);
}
// Удаляем категорию
$result = wp_delete_term($cat_id, 'category');
return $result;
}
Данная функция сначала проверяет, существует ли категория, затем переносит все связанные с ней записи в категорию по умолчанию, и после этого удаляет категорию. Это предотвращает потерю контента и ошибок отображения.
Пример использования функции
$delete_result = wp_shablon_delete_category(15);
if (is_wp_error($delete_result)) {
echo 'Ошибка: ' . $delete_result->get_error_message();
} else {
echo 'Категория успешно удалена';
}
Использование плагинов для управления категориями
Если вы не хотите писать код, можно воспользоваться специализированными плагинами с расширенным функционалом:
- Bulk Delete — позволяет массово удалять категории и другие таксономии по разным параметрам, включая количество записей, дату и статус.
- Term Management Tools — расширяет стандартные возможности по объединению, удалению и переназначению таксономий.
- WP Bulk Delete — похож на Bulk Delete, но с дополнительными фильтрами и интеграцией с WP-Cron для автоматизации.
Для установки плагина зайдите в админку WordPress, раздел Плагины > Добавить новый, введите название плагина и нажмите "Установить" и "Активировать".
Как избежать ошибок после удаления категории: настраиваем перенаправления и SEO
Удаление категорий может привести к 404 ошибкам, если на них были ссылки в меню или внешние ссылки. Для этого важно:
- Проверить наличие ссылок на удалённую категорию и заменить их на актуальные;
- Настроить 301 редиректы с URL удалённых категорий на релевантные страницы или главную;
- Использовать плагины для SEO, например, Clearfy Pro, чтобы управлять перенаправлениями и оптимизировать структуру сайта.
Пример настройки редиректа через файл .htaccess:
Redirect 301 /category/old-category-slug/ https://yourwebsite.com/new-category/
Советы по поддержанию чистоты категорий на сайте
Чтобы не накапливать лишние категории, придерживайтесь следующих правил:
- Создавайте категории только под значимые направления контента;
- Периодически проводите аудит категорий, удаляя или объединяя устаревшие;
- Используйте вложенные категории для логической группировки;
- Автоматизируйте процесс с помощью кода и плагинов — это сэкономит время и убережет от ошибок.
Например, можно добавить в functions.php уведомление для администраторов с перечнем категорий без записей, чтобы вовремя их удалять или перераспределять.
Заключение
Удаление ненужных категорий — важная задача для поддержания структуры и SEO вашего WordPress сайта. В статье мы рассмотрели как делать это вручную, так и с помощью собственного кода и плагинов. Также разобрали, как избежать негативных последствий удаления и поддерживать порядок в таксономиях. Используйте эти методы для эффективного управления категориями и улучшения работы сайта.