В WordPress стандартная структура URL для таксономий (категорий, меток и пользовательских таксономий) часто не устраивает разработчиков и владельцев сайтов. Иногда необходимо изменить базу URL или полностью убрать префикс таксономии, чтобы получить более короткие и удобочитаемые ссылки. В этой статье подробно разберём, как безопасно и грамотно изменить URL таксономии, не потеряв SEO-показатели и не нарушив работу сайта.
Почему важно правильно менять URL таксономий
Изменение URL без корректной настройки может привести к массовым ошибкам 404, потере позиций в поисковой выдаче и ухудшению пользовательского опыта. Поисковые системы индексируют страницы с текущими URL, и резкие изменения без перенаправлений могут негативно повлиять на трафик.
Поэтому задача состоит не только в том, чтобы изменить структуру, но и настроить правильные редиректы, а также учесть особенности работы с пользовательскими таксономиями и стандартными.
Как изменить базу URL для таксономии: пример для пользовательской таксономии
Допустим, у вас есть пользовательская таксономия wpclass_topic с базовой ссылкой site.ru/wpclass_topic/slug, и вы хотите изменить базу на topics, чтобы получить URL вида site.ru/topics/slug.
Для этого при регистрации таксономии через функцию register_taxonomy нужно указать параметр rewrite с нужной базой:
function wpclass_register_taxonomy() {
register_taxonomy('wpclass_topic', ['post'], [
'label' => 'Темы',
'rewrite' => ['slug' => 'topics'], // изменяем базу URL
'hierarchical' => true,
]);
}
add_action('init', 'wpclass_register_taxonomy');
После этого нужно обновить правила перезаписи (перейдите в админке в Настройки > Постоянные ссылки и нажмите «Сохранить изменения» без изменений), чтобы WordPress пересоздал правила.
Что делать, если нужно убрать базу таксономии из URL полностью
Иногда требуется сделать URL максимально коротким, например, убрать /category/ или /tag/ из ссылок. Для пользовательских таксономий это возможно, но требует дополнительной доработки.
Один из вариантов — использовать фильтр pre_get_posts и перенаправлять запросы вручную, либо регистрировать таксономию с пустым слагом и добавлять правила перезаписи самостоятельно.
function wpclass_remove_taxonomy_base() {
// Убираем базу 'topics' из URL таксономии wpclass_topic
add_rewrite_rule(
'^([^/]+)/?$',
'index.php?wpclass_topic=$matches[1]',
'top'
);
}
add_action('init', 'wpclass_remove_taxonomy_base');
Однако такой метод может конфликтовать с другими типами записей и страницами, поэтому нужно тщательно тестировать сайт после внесения изменений.
Автоматические редиректы для сохранения SEO после изменения URL
Чтобы не потерять позиции в поисковых системах, важно настроить 301 редиректы со старых URL таксономий на новые. Это можно сделать с помощью плагина Redirection, который позволяет удобно управлять перенаправлениями.
Пример редиректа в файле .htaccess:
Redirect 301 /wpclass_topic/(.*) /topics/$1
Или программно через хук:
function wpclass_redirect_old_taxonomy_url() {
if (is_tax('wpclass_topic')) {
$term = get_queried_object();
wp_redirect(home_url('/topics/' . $term->slug), 301);
exit;
}
}
add_action('template_redirect', 'wpclass_redirect_old_taxonomy_url');
Примеры использования плагинов для управления URL таксономий
Если хотите упростить процесс, можно использовать плагины:
- Clearfy Pro — позволяет легко убирать базу категорий и таксономий, управлять ЧПУ без кода.
- WPRemark — помогает оптимизировать SEO, в том числе перенаправления.
Советы и рекомендации по изменению URL таксономий
Изменение структуры URL — это серьёзный шаг, который требует внимательной подготовки:
- Всегда делайте резервную копию сайта и базы данных перед изменениями.
- Тестируйте новые URL на тестовом стенде или локально.
- Обязательно настройте 301 редиректы со старых адресов на новые.
- Проверьте sitemap и robots.txt после изменений, чтобы поисковые системы корректно индексировали новые URL.
- Используйте инструменты Google Search Console для мониторинга ошибок сканирования.
Выводы
Изменение URL структуры таксономий в WordPress требует понимания работы rewrite правил, правильной настройки регистраций таксономий и продуманного подхода к редиректам. Следуя приведённым примерам и рекомендациям, вы сможете сделать URL более удобными и SEO-дружелюбными без потерь трафика.