Изменение slug (человеко-читаемой части URL) постов в WordPress — частая задача, особенно при реструктуризации сайта или оптимизации под SEO. Однако простое изменение slug может привести к потере трафика, если старые ссылки перестанут работать. В этой статье я расскажу, как правильно менять slug постов в WordPress, сохраняя SEO и не теряя посетителей.
Почему важно правильно менять slug постов
Slug — это часть URL, которая отображает название поста или страницы. Например, в URL https://example.com/kak-izmenit-slug slug — kak-izmenit-slug. Если вы меняете slug, старая ссылка перестанет быть доступна, и поисковые системы увидят 404 ошибку, что негативно скажется на ранжировании.
Поэтому важно не только изменить slug, но и организовать перенаправление со старого URL на новый, чтобы сохранить SEO-показатели и не потерять посетителей.
Как изменить slug поста в стандартном редакторе WordPress
В админке WordPress изменить slug можно прямо на странице редактирования поста:
- Откройте пост для редактирования.
- Под заголовком найдите поле «Пермалинк» или «URL».
- Нажмите «Редактировать» и введите новый slug.
- Сохраните изменения.
Но этот способ не создаст автоматический редирект. Старый URL останется доступен, но будет вызывать ошибку 404. Чтобы этого избежать, нужно настроить перенаправления.
Настройка 301 редиректа после изменения slug с помощью плагинов
Для автоматизации редиректов используйте плагины. Вот несколько надежных вариантов:
- Redirection — самый популярный плагин для управления редиректами. Он автоматически отслеживает изменения URL и создает 301 редиректы.
- Rank Math SEO — SEO-плагин с функцией автоматических редиректов при изменении slug.
- Yoast SEO Premium — платный SEO-плагин, умеющий автоматически создавать редиректы при смене URL.
Например, чтобы использовать Redirection:
- Установите и активируйте плагин Redirection.
- Перейдите в Инструменты > Redirection.
- Проверьте, что включена опция отслеживания изменений URL.
- Измените slug поста — плагин автоматически создаст 301 редирект со старого URL на новый.
Пример кода для автоматического создания 301 редиректа при смене slug
Если вы хотите обойтись без плагинов, можно добавить код, который будет создавать редиректы при сохранении поста с измененным slug. Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:
function wplist_redirect_old_slug_to_new( $post_id, $post_after, $post_before ) {
if ( wp_is_post_revision( $post_id ) ) {
return;
}
$old_slug = $post_before->post_name;
$new_slug = $post_after->post_name;
if ( $old_slug !== $new_slug ) {
$old_url = home_url( '/' . $old_slug . '/' );
$new_url = home_url( '/' . $new_slug . '/' );
add_rewrite_rule( '^' . $old_slug . '/?$', 'index.php?redirect_to=' . urlencode( $new_url ), 'top' );
// Сохраняем редиректы в опции для обработки позже
$redirects = get_option( 'wplist_slug_redirects', array() );
$redirects[ $old_slug ] = $new_url;
update_option( 'wplist_slug_redirects', $redirects );
}
}
add_action( 'post_updated', 'wplist_redirect_old_slug_to_new', 10, 3 );
function wplist_handle_slug_redirects() {
$redirects = get_option( 'wplist_slug_redirects', array() );
$requested_path = trim( $_SERVER['REQUEST_URI'], '/' );
if ( isset( $redirects[ $requested_path ] ) ) {
wp_redirect( $redirects[ $requested_path ], 301 );
exit;
}
}
add_action( 'template_redirect', 'wplist_handle_slug_redirects' );Этот код следит за изменениями постов, и если slug изменился, создает правило для редиректа с 301 статусом со старого URL на новый. Обратите внимание, что для применения новых правил нужно обновить постоянные ссылки в админке (Настройки > Постоянные ссылки > Сохранить изменения).
Ограничения и доработки кода
Этот пример подходит для простых случаев, когда slug меняется на одном уровне. Для вложенных категорий или сложных структур URL нужно расширять логику. Также рекомендуется очищать старые редиректы из опции, чтобы база не разрасталась.
Использование плагина Clearfy Pro для управления редиректами и SEO
Если вы используете Clearfy Pro, то управление редиректами и SEO оптимизацией станет еще проще. Clearfy умеет автоматически настраивать 301 редиректы при изменении URL, а также оптимизирует метаданные страниц для SEO.
Это решение интегрируется с WordPress и позволяет не ставить отдельный плагин для редиректов, уменьшив нагрузку на сайт.
Советы по SEO при изменении slug
При изменении slug важно:
- Всегда делайте 301 редирект со старого URL на новый, чтобы сохранить вес ссылок и позиции в поиске.
- Проверяйте внутренние ссылки на сайте — если они ведут на старый slug, обновите их.
- Обновляйте карту сайта (sitemap), чтобы поисковые роботы быстрее нашли новые URL.
- Уведомляйте поисковые системы об изменениях через Google Search Console — отправляйте новую карту сайта и проверяйте ошибки сканирования.
Заключение по технической части
Изменение slug постов — несложная задача, но требует серьезного подхода к сохранению SEO. Использование плагинов типа Redirection или Clearfy Pro значительно упрощает процесс и минимизирует риски. Если хотите сделать все вручную, используйте пример кода с хуками post_updated и template_redirect, приведенный выше.
Всегда тестируйте редиректы после изменений и внимательно следите за аналитикой, чтобы вовремя заметить возможные проблемы.