Slug категории — это важная часть URL, которая влияет на удобство навигации и SEO вашего сайта на WordPress. Иногда возникает необходимость изменить или полностью удалить slug категории из адреса, например, чтобы сделать URL короче или более читаемым. Однако простое изменение slug может привести к ошибкам 404 и потере трафика, если не настроить перенаправления правильно.
Почему стоит изменить или удалить slug категории в URL WordPress
По умолчанию WordPress добавляет префикс category в URL категорий, например: https://site.ru/category/novosti/. Это хорошо для структуризации, но иногда хочется убрать этот префикс, чтобы получить более чистый URL: https://site.ru/novosti/.
Удаление slug категории делает URL короче, что положительно влияет на восприятие пользователем и иногда на SEO. Однако WordPress не предлагает такую возможность из коробки, поэтому нужно применять специальные методы.
Кроме того, иногда нужно просто переименовать slug категории, например, с novosti на news, чтобы сделать URL более универсальным или релевантным.
Как изменить slug категории через админку WordPress
Самый простой способ изменить slug категории — это воспользоваться стандартным интерфейсом:
- Перейдите в Консоль → Записи → Рубрики.
- Найдите нужную категорию и нажмите Изменить.
- В поле Ярлык введите новый slug.
- Сохраните изменения.
Этот способ изменит slug, но старые URL перестанут работать, если не настроить перенаправления.
Как удалить slug категории из URL с помощью плагина Clearfy Pro
Один из самых удобных способов — использовать плагин Clearfy Pro, который позволяет убрать префикс category из URL без сложных настроек.
После установки и активации плагина:
- Перейдите в Настройки → Clearfy Pro → SEO.
- Активируйте опцию Удалить базу категории из URL.
- Сохраните настройки и проверьте работу сайта.
Плагин автоматически настроит правильные редиректы и сохранит SEO-параметры.
Удаление или изменение slug категории с помощью кода в functions.php
Если вы предпочитаете не использовать плагины, можно добавить следующий код в файл functions.php вашей темы (желательно дочерней), чтобы убрать slug категории из URL:
function wp3_remove_category_slug( $post_link, $post, $leavename ) {
if ( 'post' != $post->post_type ) {
return $post_link;
}
$categories = get_the_category( $post->ID );
if ( ! $categories ) {
return $post_link;
}
$category_slug = '';
foreach ( $categories as $category ) {
if ( $category->slug !== 'uncategorized' ) {
$category_slug = $category->slug;
break;
}
}
if ( $category_slug ) {
return str_replace( '/category/' . $category_slug, '/' . $category_slug, $post_link );
}
return $post_link;
}
add_filter( 'post_link', 'wp3_remove_category_slug', 10, 3 );
// Перенаправление старых URL с /category/ на новые
function wp3_redirect_category_base() {
if ( strpos( $_SERVER['REQUEST_URI'], '/category/' ) !== false ) {
wp_redirect( str_replace( '/category/', '/', $_SERVER['REQUEST_URI'] ), 301 );
exit();
}
}
add_action( 'template_redirect', 'wp3_redirect_category_base' );
Этот код убирает slug category из ссылок на записи и перенаправляет старые URL с префиксом category на новые.
Обратите внимание, что для корректной работы пермалинков нужно в админке в Настройки → Постоянные ссылки сохранить настройки заново.
Как правильно настроить SEO после изменения slug категории
При изменении slug категории важно избежать потери позиций в поисковиках. Вот несколько рекомендаций:
- Настройте 301 редиректы со старых URL на новые, чтобы поисковики и пользователи не попадали на 404.
- Проверьте карту сайта (sitemap.xml), чтобы новые URL были внесены корректно.
- Обновите внутренние ссылки на сайте, если они содержат старые slug.
- Используйте инструменты вебмастера (Google Search Console, Яндекс.Вебмастер) для отслеживания ошибок и индексации.
Плагины типа Clearfy Pro помогут автоматизировать многие из этих процессов.
Изменение slug категории и WooCommerce
Если на вашем сайте есть интернет-магазин на WooCommerce, то изменение slug категории товаров отличается от стандартных категорий записей. Для изменения slug категории товаров можно сделать так:
- Перейдите в Товары → Категории.
- Измените поле Ярлык у нужной категории.
- Для удаления префикса
product-categoryможно добавить такой код вfunctions.php:
function wp3_remove_product_category_slug( $terms, $taxonomies, $args, $term_query ) {
if ( in_array( 'product_cat', $taxonomies ) && ! is_admin() ) {
foreach ( $terms as $key => $term ) {
$terms[$key]->slug = str_replace( 'product-category/', '', $term->slug );
}
}
return $terms;
}
add_filter( 'get_terms', 'wp3_remove_product_category_slug', 10, 4 );
Однако для WooCommerce рекомендуется использовать специализированные плагины, например Clearfy Pro, так как WooCommerce более чувствителен к структуре URL.