Если в адресах рубрик у вас сейчас есть лишний фрагмент /category/, его можно убрать и сделать URL короче. В WordPress это решается двумя путями: через настройки постоянных ссылок, если хостинг и структура сайта позволяют, или через код, если нужен более контролируемый вариант. Но перед изменениями важно понимать один момент: после смены структуры ссылок старые адреса рубрик перестанут открываться, если не настроить редиректы.
Ниже разберу оба способа и покажу, как проверить результат без лишнего риска для сайта.
Когда вообще можно убрать /category/
Фрагмент /category/ появляется в URL рубрик из-за базовой части для категорий. По умолчанию WordPress использует её, чтобы отличать рубрики от записей, страниц и других типов архивов. Убрать её можно, если вы хотите:
- сделать адреса короче и чище;
- убрать технический префикс из публичных URL;
- привести структуру ссылок к более лаконичному виду.
Но есть и ограничения. Если у вас уже опубликован сайт, смена структуры может затронуть индексацию, старые ссылки из поиска, закладки и внешние переходы. Поэтому на живом проекте лучше сразу предусмотреть перенаправления со старых адресов на новые.
Самый простой способ: изменить базу рубрик в настройках
В WordPress есть штатная настройка для базы рубрик. Она не всегда полностью убирает префикс, но в ряде конфигураций позволяет заменить /category/ на более короткое значение или на пустую базу, если это поддерживается темой, плагинами и сервером.
Что нужно сделать:
- Откройте админку WordPress.
- Перейдите в раздел Настройки → Постоянные ссылки.
- Найдите поле База рубрик или Category base.
- Удалите значение
categoryили замените его на нужный вариант. - Нажмите Сохранить изменения.
После сохранения WordPress обновит правила маршрутизации. Если всё прошло нормально, адреса рубрик изменятся сразу.
Этот способ удобен, когда вы хотите обойтись без правки файлов. Но у него есть практическое ограничение: WordPress не во всех случаях позволяет безопасно оставить базу рубрик полностью пустой через интерфейс, особенно если на сайте уже есть пересечения в слаге рубрик и записей. Если после сохранения адреса начинают конфликтовать, лучше перейти к варианту с кодом и редиректами.
Удаление /category/ через код: когда это оправдано
Код нужен, если вы хотите именно убрать префикс, а не просто заменить его на другое слово. Такой вариант чаще используют на сайтах, где структура уже продумана, рубрики не пересекаются с другими URL, а владелец готов контролировать редиректы.
Самый безопасный путь — добавить небольшой код в functions.php дочерней темы или в собственный мини-плагин. Не правьте ядро WordPress: после обновления изменения всё равно пропадут.
Ниже пример, который убирает базу рубрик из URL и корректно обрабатывает запросы к рубрикам:
add_filter( 'category_link', function( $termlink, $term_id ) {
$term = get_term( $term_id, 'category' );
if ( $term && ! is_wp_error( $term ) ) {
return home_url( user_trailingslashit( $term->slug, 'category' ) );
}
return $termlink;
}, 10, 2 );
add_action( 'init', function() {
add_rewrite_rule( '([^/]+)/?$', 'index.php?category_name=$matches[1]', 'top' );
add_rewrite_rule( '([^/]+)/page/([0-9]{1,})/?$', 'index.php?category_name=$matches[1]&paged=$matches[2]', 'top' );
} );Этот пример показывает сам принцип, но на реальном сайте его нельзя ставить без проверки структуры URL. Причина простая: правило ([^/]+)/?$ слишком общее и может конфликтовать со страницами, записями и другими типами контента. Для сайтов с обычными страницами в корне домена такой вариант часто оказывается слишком рискованным.
Поэтому на практике лучше использовать более аккуратное решение: либо менять базу рубрик через настройки, либо применять готовый плагин, который умеет безопасно управлять структурой ссылок и редиректами. Если вы пишете код вручную, нужно отдельно учитывать все пересечения URL на конкретном сайте.
Что обязательно сделать после изменения URL
Если старые адреса рубрик уже были в индексе или где-то опубликованы, после смены структуры нужно сохранить доступность старых ссылок. Иначе пользователь или поисковый робот получит 404.
Минимальный набор действий такой:
- обновить правила постоянных ссылок в Настройки → Постоянные ссылки;
- проверить, открываются ли новые адреса рубрик;
- настроить 301-редиректы со старых URL на новые, если структура изменилась;
- очистить кэш сайта и кэш плагинов, если они используются;
- проверить несколько рубрик вручную в браузере.
Если у вас установлен плагин кэширования или серверный кэш на хостинге, старые адреса могут продолжать открываться из кэша даже после изменения настроек. В таком случае сначала очистите кэш, а уже потом проверяйте результат.
Как проверить, что всё работает правильно
После настройки откройте несколько рубрик в новом формате и убедитесь, что:
- адрес больше не содержит
/category/; - страница рубрики открывается без ошибки 404;
- внутри рубрики отображаются нужные записи;
- старый адрес либо редиректит на новый, либо больше не используется намеренно.
Проверять лучше не одну рубрику, а несколько: верхнего уровня, вложенную и ту, у которой длинный слаг. Так вы быстрее заметите проблемы с правилами маршрутизации.
Если после изменений главная страница или отдельные записи начали открываться неправильно, значит правило для рубрик конфликтует с другими URL. В этом случае нужно откатить изменения и выбрать более безопасный вариант — обычно это замена базы рубрик через настройки, а не агрессивная правка rewrite-правил.
Какие ошибки встречаются чаще всего
На практике проблемы обычно связаны не с самой идеей убрать /category/, а с тем, как именно это сделали.
- Не настроили редирект. Старые ссылки из поиска и внешних сайтов начинают отдавать 404.
- Использовали слишком общее rewrite-правило. Оно перехватывает страницы и записи в корне сайта.
- Не обновили постоянные ссылки. WordPress продолжает работать по старым правилам.
- Не очистили кэш. В браузере или на сервере остаются старые маршруты.
- Сделали изменение в родительской теме. После обновления всё пропадает.
Если сайт уже рабочий и на него идут переходы из поиска, безопаснее сначала создать резервную копию, а потом менять структуру URL. Это особенно важно, если на сайте много рубрик и часть из них уже проиндексирована.
Что выбрать: настройки или код
| Способ | Когда подходит | Риск |
|---|---|---|
| Настройки WordPress | Нужен простой и быстрый вариант без глубокой правки сайта | Низкий, если структура не конфликтует с другими URL |
| Код | Нужна точная настройка структуры и вы понимаете последствия | Выше, особенно при конфликте с записями и страницами |
Если задача — просто убрать лишний префикс и не ломать рабочий сайт, я бы начинал с настроек постоянных ссылок. Код имеет смысл только тогда, когда вы точно понимаете структуру URL на сайте и готовы отдельно обработать редиректы и возможные конфликты.
В итоге убрать /category/ из URL в WordPress можно, но делать это стоит не вслепую. Сначала меняете структуру, потом проверяете открытие рубрик, затем обязательно закрываете старые адреса редиректами. Так адреса станут короче, а сайт не потеряет работоспособность.