Удаление category и tag из URL WordPress: 7 шагов для чистых permalinks
Почему стоит удалять /category/ и /tag/ из URL
Чистый URL улучшает восприятие пользователем, повышает кликабельность в SERP и упрощает работу с аналитикой. По данным тестам скорости PHP, сокращённые ссылки слегка ускоряют обработку запросов, а Google явно отдает предпочтение лаконичным структурам.
Шаг 1. Настройка базовых permalinks
Перейдите в Настройки → Постоянные ссылки и выберите структуру / %postname% /. После сохранения WordPress уже не будет добавлять /category/ в архивы, но /tag/ останется.
Шаг 2. Удаление /category/ через .htaccess
Если вы используете Apache, добавьте правило редиректа в файл .htaccess в корне сайта:
# Убираем /category/ из URL
RewriteEngine On
RewriteBase /
RewriteRule ^category/(.*)$ /$1 [R=301,L]
Это перенаправит любые запросы типа example.com/category/novosti/ на example.com/novosti/ без потери индексации.
Шаг 3. Плагины для автоматического удаления
- Remove Category Base – бесплатный, удаляет базу категории и автоматически создаёт 301‑редиректы.
- Yoast SEO – в разделе «Подключения» есть опция «Убрать базу тегов», но работает только при включённом Cloudflare WAF для кэш‑правил.
- WP No Category Base – WPML compatible – поддерживает многоязычность.
Плагин удобен, если вы не хотите трогать код, однако в некоторых случаях он конфликтует с кастомными таксономиями.
Шаг 4. Ручной код в functions.php
Для полного контроля добавьте следующий сниппет в тему (или в плагин‑модуль):
// Убираем базу категории и тега
add_filter('category_rewrite_rules', '__return_empty_array');
add_filter('tag_rewrite_rules', '__return_empty_array');
// Перезаписываем правила таксономий без базовых сегментов
function custom_taxonomy_rewrites() {
$taxonomies = ['category', 'post_tag'];
foreach ( $taxonomies as $tax ) {
$terms = get_terms([ 'taxonomy' => $tax, 'hide_empty' => false ]);
foreach ( $terms as $term ) {
$slug = $term->slug;
add_rewrite_rule("^{$slug}/?", "index.php?{$tax}={$slug}", 'top');
}
}
}
add_action('init', 'custom_taxonomy_rewrites');
// 301 редиректы со старых URL
function redirect_old_taxonomy_urls() {
$request = trim($_SERVER['REQUEST_URI'], '/');
if ( preg_match('#^(category|tag)/(.+)$#', $request, $matches) ) {
wp_redirect(home_url('/' . $matches[2] . '/'), 301);
exit;
}
}
add_action('template_redirect', 'redirect_old_taxonomy_urls');
После добавления кода выполните Настройки → Постоянные ссылки → Сохранить изменения, чтобы обновить правила.
Шаг 5. Настройка 301‑редиректов для SEO
Редиректы обязательны, иначе поисковые системы могут посчитать удалённые страницы 404 и потерять вес. Если вы пользуетесь плагином Redirection, добавьте правило:
Source URL: ^/category/(.*)$
Target URL: /$1
HTTP Code: 301 – Permanent Redirect Аналогично для /tag/. Проверьте корректность через инструменты ускорения — они покажут, что запросы теперь попадают напрямую в кэш.
Шаг 6. Проверка SEO‑влияния
После внедрения изменений запустите проверку в Google Search Console – раздел «Покрытие». Убедитесь, что старые URL находятся в статусе «Перенаправлен» и нет 404‑ошибок. Также стоит обновить sitemap.xml, чтобы поисковики сразу получили новые ссылки.
Если вы используете шорткоды в описаниях, проверьте, что они не генерируют ссылки с базой /category/ – замените их на новые URL.
Шаг 7. Итоги и рекомендации
Удаление базовых сегментов из URL WordPress – простая, но мощная оптимизация. Сочетайте правильные permalinks, редиректы и, при необходимости, плагин или ручной код. Регулярно проверяйте 404‑лог и Search Console, чтобы избежать потери трафика. В итоге ваш сайт получит более чистые ссылки, улучшится показатель CTR и ускорится отдача контента.
❓ Часто задаваемые вопросы
Сломаются ли внутренние ссылки после удаления /category/?
Нет, если настроить 301‑редиректы. Плагин Redirection или код в functions.php автоматически перенаправят старые ссылки на новые.
Можно ли убрать /tag/ без плагинов?
Да. Достаточно добавить правила переписывания в .htaccess и функции‑фильтры в functions.php, как показано в статье.
Нужен ли кеш после изменения URL‑структуры?
Обязательно. После правок очистите кэш в плагинах (WP Super Cache, LiteSpeed) и в CDN (например, Cloudflare), иначе пользователи могут увидеть старые ссылки.
Как проверить, что редиректы работают корректно?
Воспользуйтесь онлайн‑инструментами типа httpstatus.io или встроенными отчетами Google Search Console – они покажут статус 301 для всех старых URL.