Часто при создании сайтов на 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. Это удобный и безопасный способ без добавления кода вручную.
Для активации:
- Установите и активируйте Clearfy Pro.
- В настройках плагина найдите раздел SEO или URL.
- Включите опцию "Удалить категорию из URL".
- Сохраните настройки и проверьте работу сайта.
Clearfy Pro также автоматически настроит перенаправления и очистит лишние базы, что удобно для новичков и профессионалов.
Проверка и отладка после удаления категории из URL
После внесения изменений важно проверить:
- Работу всех ссылок на сайте, включая внутренние и внешние.
- Отсутствие ошибок 404 и корректные редиректы.
- Работу функционала поиска и архивов.
- Позиции сайта в поисковых системах (для оценки влияния SEO).
Для отладки можно использовать плагины типа Redirection или инструменты браузера.
Выводы
Удаление категории из URL — популярная задача для улучшения юзабилити и SEO. На wpdo.ru рекомендуем использовать кастомный код или проверенные плагины, такие как Clearfy Pro, чтобы сделать это безопасно и эффективно. Не забывайте про редиректы и тестирование после изменений.