Стандартный URL записи в WordPress, если используется структура с категориями, содержит сегмент категории, например: https://site.ru/category/novosti. Иногда возникает задача убрать этот сегмент category из URL, чтобы сделать ссылки короче и удобнее для пользователей и поисковых систем.
Почему нужно удалять категорию из URL WordPress
По умолчанию WordPress добавляет префикс category в URL категорий, чтобы избежать конфликтов с другими страницами. Однако для многих проектов важно получить чистый и короткий адрес, например /novosti/ вместо /category/novosti/. Это улучшает восприятие ссылок и может положительно сказаться на SEO.
Удаление категории из URL помогает:
- Сделать адреса лаконичнее и удобнее для пользователя.
- Избежать дублированного контента при правильной настройке редиректов.
- Упростить структуру сайта без плагинов.
Как удалить /category/ из URL категорий — два способа
1. Использование настроек постоянных ссылок WordPress
Самый простой способ — изменить префикс категории в настройках WordPress:
- Перейдите в Консоль > Настройки > Постоянные ссылки.
- В поле Префикс категории введите точку
.или оставьте пустым (в новых версиях WP можно оставить пустым). - Сохраните изменения.
Этот способ сработает, если ваша тема и сервер позволяют работать с такими URL. Однако иногда сервер или настройки .htaccess блокируют такой способ, и тогда требуется использовать ручное перенаправление.
2. Удаление через functions.php и правила перезаписи
Для более надежного и гибкого решения можно добавить следующий код в файл functions.php вашей темы (лучше дочерней) или в специальный плагин:
function wpskills_remove_category_slug($post_link, $post) {
if ('post' !== $post->post_type) {
return $post_link;
}
$categories = get_the_category($post->ID);
if (!$categories) {
return $post_link;
}
$category = $categories[0];
$category_slug = $category->slug;
return str_replace('/category/' . $category_slug, '', $post_link);
}
add_filter('post_link', 'wpskills_remove_category_slug', 10, 2);
function wpskills_change_category_rewrite_rules($rules) {
$new_rules = array();
foreach ($rules as $key => $rule) {
$new_key = str_replace('category/', '', $key);
$new_rules[$new_key] = $rule;
}
return $new_rules;
}
add_filter('category_rewrite_rules', 'wpskills_change_category_rewrite_rules');
function wpskills_flush_rewrite_rules_on_init() {
flush_rewrite_rules();
}
add_action('init', 'wpskills_flush_rewrite_rules_on_init');Этот код удаляет сегмент category из URL категорий и ссылок постов. После добавления кода необходимо перейти в Настройки > Постоянные ссылки и сохранить их, чтобы обновить правила перезаписи.
Как избежать проблем с SEO и дублированием
После удаления category из URL важно настроить 301 редиректы с устаревших адресов на новые. Это поможет сохранить позиции в поисковых системах и избежать дублей.
Варианты решения:
- Использовать плагин Clearfy Pro — он умеет управлять редиректами и оптимизировать URL.
- Добавить в
.htaccessправило для редиректа старых URL, например:
RewriteRule ^category/(.+)$ /$1 [R=301,L]Этот код перенаправит все запросы с /category/ на адрес без него.
Проверка и отладка результата
После внесения изменений нужно:
- Пройтись по основным категориям и проверить, что ссылки работают без
category. - Проверить редиректы с URL с
category, чтобы убедиться, что они корректно переадресуются. - Использовать инструменты типа Google Search Console для проверки индексации новых URL.
Если вы пользуетесь кэш-плагинами, не забудьте очистить кэш после изменений.
Альтернативные плагины для удаления категории из URL
Если вы предпочитаете использовать готовые решения, обратите внимание на следующие плагины:
- WP Root — минималистичный плагин для кастомизации URL.
- Clearfy Pro — комплексный инструмент оптимизации, включая управление URL.
Использование плагинов упрощает процесс, но требует внимательного подхода к настройкам, чтобы избежать конфликтов с другими плагинами и темами.
Общие рекомендации по работе с постоянными ссылками
При работе с постоянными ссылками всегда:
- Создавайте резервные копии файлов и базы данных перед изменениями.
- Проверяйте работу сайта после каждого изменения.
- Избегайте частых изменений структуры URL, чтобы не терять позиции в поисковых системах.
Таким образом, удаление категории из URL WordPress — задача выполнимая без плагинов с помощью небольшой доработки кода и настройки правил перезаписи. Это улучшит структуру сайта и сделает ссылки удобными для пользователей и поисковиков.