Slug — это часть URL, которая отвечает за читабельный адрес записи, страницы или категории в WordPress. Правильная работа со slug важна для SEO и удобства пользователей, но иногда приходится менять или удалять slug, и тут важно не навредить сайту и не потерять позиции в поисковиках.
Что такое slug и почему его нужно менять или удалять
Slug (от англ. slug — ярлык) — это человекочитаемый идентификатор страницы в URL, например, в адресе https://clearfy.ru/kak-udalit-slug — slug это kak-udalit-slug. Иногда нужно изменить slug, чтобы сделать URL более понятным или коротким, или удалить slug из URL (например, убрать префикс категории). Но делать это нужно аккуратно, чтобы не получить ошибки 404 и не потерять поисковый трафик.
Чаще всего причины изменить slug:
- Оптимизация URL под ключевые слова;
- Изменение структуры сайта;
- Устранение дублей URL;
- Удаление лишних частей URL, например, /category/;
- Изменение slug при редизайне или изменении тематики.
Если просто изменить slug через админку WordPress без дополнительных действий, то старые ссылки перестанут работать, а поисковики и пользователи будут получать ошибку 404.
Как правильно изменить slug записи или страницы в WordPress
Для изменения slug записи или страницы сделайте так:
- Откройте нужную запись или страницу в админке WordPress.
- Под заголовком найдите поле с URL (Permalink) и нажмите кнопку «Изменить».
- Впишите новый slug, например,
novyj-slug. - Сохраните изменения.
Но чтобы не потерять SEO, важно настроить 301 редирект с старого URL на новый. Без этого поисковики не смогут правильно перенаправлять трафик, и позиции сайта упадут.
Настройка редиректа через плагин Redirection
Самый простой способ — использовать плагин Redirection. Он позволяет создавать 301 редиректы прямо из админки.
Как настроить:
- Установите и активируйте плагин Redirection.
- Перейдите в раздел "Инструменты > Redirection".
- В поле «Источник URL» введите старый slug, например,
/starij-slug/. - В поле «Целевой URL» введите новый slug, например,
/novyj-slug/. - Выберите тип редиректа 301 и сохраните.
Теперь при заходе на старую ссылку пользователь и поисковики автоматически перейдут на новую страницу.
Автоматизация редиректов для измененных slug с помощью кода
Если вы хотите автоматизировать создание редиректов при смене slug, можно использовать хук post_updated и создавать редиректы программно. Пример функции для файла functions.php вашей темы или плагина:
function clearfy_redirect_on_slug_change($post_ID, $post_after, $post_before) {
if ($post_after->post_name !== $post_before->post_name) {
$old_slug = $post_before->post_name;
$new_slug = $post_after->post_name;
$old_url = home_url('/' . $old_slug . '/');
$new_url = home_url('/' . $new_slug . '/');
// Добавляем правило редиректа в .htaccess или кэшируем в базе
// Здесь пример с использованием функции wp_safe_redirect
add_action('template_redirect', function() use ($old_slug, $new_url) {
if (strpos($_SERVER['REQUEST_URI'], '/' . $old_slug . '/') !== false) {
wp_safe_redirect($new_url, 301);
exit;
}
});
}
}
add_action('post_updated', 'clearfy_redirect_on_slug_change', 10, 3);Этот код отслеживает изменение slug и создает редирект с прежнего URL на новый. Для больших проектов лучше использовать специализированные плагины, но для небольших сайтов это может помочь.
Как удалить slug из URL категории или таксономии в WordPress
По умолчанию WordPress добавляет префикс к URL категорий, например, https://clearfy.ru/category/novosti/. Иногда хочется убрать этот префикс для более коротких и чистых адресов, например, https://clearfy.ru/novosti/.
Важно понимать, что простое удаление префикса без настройки редиректов и правил может привести к конфликтам с другими страницами и ошибкам.
Способы убрать префикс категории
Существует несколько популярных способов убрать slug категории:
- Использование плагинов: Remove Category URL, No Category Base (WPML).
- Добавление пользовательских правил перезаписи (rewrite rules) через functions.php.
Пример удаления slug категории через код
Можно добавить следующий код в файл functions.php темы для удаления префикса /category/:
function clearfy_remove_category_slug($string, $type) {
if ($type !== 'single' && $type !== 'category') {
return $string;
}
$string = str_replace('/category', '', $string);
return $string;
}
add_filter('user_trailingslashit', 'clearfy_remove_category_slug', 100, 2);
function clearfy_fix_category_rewrite_rules($rules) {
$new_rules = [];
foreach ($rules as $rule => $rewrite) {
if (strpos($rule, 'category/') === 0) {
$new_rule = substr($rule, strlen('category'));
$new_rules[$new_rule] = $rewrite;
}
}
return $new_rules + $rules;
}
add_filter('rewrite_rules_array', 'clearfy_fix_category_rewrite_rules');После добавления кода нужно обновить постоянные ссылки в настройках WordPress, чтобы правила переписались.
Плюсы и минусы удаления slug категории
Плюсы:
- Короткие, чистые URL;
- Лучшее восприятие пользователями;
- Возможное улучшение SEO из-за ключевых слов ближе к корню URL.
Минусы:
- Возможные конфликты с другими страницами или постами;
- Сложности с настройкой и поддержкой;
- Потенциальные ошибки 404 без правильных редиректов.
Как проверить и исправить 404 ошибки после изменения slug
После изменения slug или удаления его части на сайте могут появиться ошибки 404 — страницы не найдены. Чтобы минимизировать негативное влияние:
- Настройте 301 редиректы с прежних URL на новые.
- Используйте инструменты Google Search Console для мониторинга ошибок.
- Настройте плагин Redirection для отслеживания 404 и автоматического создания редиректов.
- Проверьте внутренние ссылки на сайте и исправьте ссылки с устаревшими slug.
Это позволит сохранить SEO и пользовательский опыт.
Выводы и рекомендации по работе со slug в WordPress
Изменение или удаление slug — частая задача при развитии сайта. Главное — помнить про SEO и делать редиректы. Нельзя просто менять URL без перенаправления, иначе потеряете трафик и позиции.
Используйте проверенные плагины для редиректов, либо автоматизируйте процесс программно с помощью хуков WordPress. Перед изменениями сделайте резервную копию сайта и протестируйте новую схему URL на локальной копии.
Удаление префикса категорий возможно, но требует аккуратности и тестирования. Это улучшит внешний вид ссылок, но может вызвать конфликты.
Следуя этим рекомендациям, вы сможете безопасно и эффективно управлять slug в своем WordPress-сайте.