Как удалить категорию из URL в WordPress

Часто при создании сайтов на WordPress возникает необходимость упростить структуру URL, убрав из них категорию. Например, стандартный URL записи выглядит так: site.ru/category/post-name, а хочется получить чистый site.ru/post-name без категории. Это улучшает восприятие ссылки пользователями и положительно влияет на SEO.

Почему WordPress добавляет категорию в URL по умолчанию

В структуре постоянных ссылок WordPress по умолчанию использует базу для категорий — обычно это category. При выборе структуры типа /category/%category%/%postname%/ в URL появляется название категории. Это сделано для логической группировки контента и предотвращения коллизий URL.

Однако бывают случаи, когда категория в URL нежелательна — например, для минимализма или маркетинговых целей.

Удаление категории из URL нужно делать аккуратно, чтобы не сломать структуру ссылок и избежать проблем с SEO.

Способы удалить категорию из URL в WordPress

Существует несколько проверенных способов убрать категорию из URL:

  • Использование плагинов
  • Настройка постоянных ссылок через админку
  • Добавление кода в файл functions.php или свой плагин

1. Плагин Remove Category URL

Один из самых простых вариантов — использовать плагин Remove Category URL. Он автоматически перенаправляет старые URL с категорией на новые без нее и корректно обрабатывает запросы.

Однако плагин не обновлялся долго, и в некоторых случаях может конфликтовать с новыми версиями WordPress.

2. Настройка через настройки постоянных ссылок

В админ-панели WordPress можно изменить базу категории:

  • Перейдите в Настройки > Постоянные ссылки
  • В поле "База для категорий" введите точку . или оставьте пустым (в зависимости от хостинга и конфигурации сервера)
  • Сохраните изменения

Этот способ прост, но иногда не работает корректно из-за особенностей сервера или конфликтов с другими плагинами.

3. Кастомный код для удаления категории из URL

Самый надежный и гибкий способ — добавить код, который удалит категорию из URL и настроит правильные редиректы. Ниже пример решения, адаптированного под wpdo:

function wpdo_remove_category_from_permalink( $permalink, $post, $leavename ) {
    if ( strpos( $permalink, '%category%' ) === false ) {
        return $permalink;
    }
    $categories = get_the_category( $post->ID );
    if ( ! $categories ) {
        $category_slug = 'uncategorized';
    } else {
        usort( $categories, function ( $a, $b ) {
            return $a->term_id - $b->term_id;
        } );
        $category_slug = $categories[0]->slug;
    }
    return str_replace( '%category%', $category_slug, $permalink );
}
add_filter( 'post_link', 'wpdo_remove_category_from_permalink', 10, 3 );

// Редирект со старых URL с категорией на новые
function wpdo_redirect_category_url() {
    if ( is_singular() ) {
        global $post;
        $current_url = home_url( add_query_arg( array(), $_SERVER['REQUEST_URI'] ) );
        $correct_url = get_permalink( $post->ID );
        if ( untrailingslashit( $current_url ) !== untrailingslashit( $correct_url ) ) {
            wp_redirect( $correct_url, 301 );
            exit;
        }
    }
}
add_action( 'template_redirect', 'wpdo_redirect_category_url' );

Данный код заменяет %category% на первую категорию записи и перенаправляет старые ссылки на новые, без категории в URL.

Дополнительные рекомендации по работе с URL без категории

При удалении категории из URL важно учесть следующие моменты:

  • Перенаправления: нужно обязательно настроить 301 редиректы со старых URL, чтобы не потерять SEO-трафик.
  • ЧПУ: убедитесь, что структура постоянных ссылок настроена правильно, например /postname/.
  • Конфликты URL: если есть посты с одинаковыми slug в разных категориях, без категории в URL они будут конфликтовать.
  • Кэширование: после изменений очистите кэш сайта и браузера.

Пример использования плагина Clearfy Pro для оптимизации URL

Если вы используете плагин Clearfy Pro, в нем есть функция для удаления базы категории из URL. Это удобный и безопасный способ без добавления кода вручную.

Для активации:

  1. Установите и активируйте Clearfy Pro.
  2. В настройках плагина найдите раздел SEO или URL.
  3. Включите опцию "Удалить категорию из URL".
  4. Сохраните настройки и проверьте работу сайта.

Clearfy Pro также автоматически настроит перенаправления и очистит лишние базы, что удобно для новичков и профессионалов.

Проверка и отладка после удаления категории из URL

После внесения изменений важно проверить:

  • Работу всех ссылок на сайте, включая внутренние и внешние.
  • Отсутствие ошибок 404 и корректные редиректы.
  • Работу функционала поиска и архивов.
  • Позиции сайта в поисковых системах (для оценки влияния SEO).

Для отладки можно использовать плагины типа Redirection или инструменты браузера.

Выводы

Удаление категории из URL — популярная задача для улучшения юзабилити и SEO. На wpdo.ru рекомендуем использовать кастомный код или проверенные плагины, такие как Clearfy Pro, чтобы сделать это безопасно и эффективно. Не забывайте про редиректы и тестирование после изменений.

Как отладить проблемы с загрузкой изображений в WordPress
06.12.2025
Как сделать кэширование в WordPress с помощью плагинов
05.11.2025
WooCommerce: отладка проблем с отправкой писем после оформления заказа
30.04.2026
Как использовать хуки для динамического изменения заголовков страниц в WordPress
01.03.2026
Оптимизация загрузки шаблонов WordPress: практические советы от WPDO
19.11.2025