Как удалить или изменить slug в WordPress без потери SEO

Slug — это часть URL, которая отвечает за человекочитаемую структуру ссылки на странице или записи в WordPress. Иногда возникает необходимость изменить slug, например, для улучшения SEO или исправления опечаток. Однако простое изменение slug может привести к ошибкам 404 и потере позиций в поисковой выдаче. В этой статье мы подробно разберём, как грамотно удалить или изменить slug в WordPress и сохранить SEO-эффект.

Почему важно правильно менять slug в WordPress

Slug — важный элемент URL, который влияет на восприятие ссылки пользователями и поисковыми системами. Если изменить slug без подготовки, старые URL перестанут работать, и посетители, а также поисковые роботы, будут получать ошибку 404. Это негативно скажется на поведенческих факторах и позициях сайта в выдаче.

Правильный подход к изменению slug включает в себя настройку редиректов со старых URL на новые. Это позволит сохранить накопленный SEO-авторитет и не потерять трафик.

Кроме того, важно убедиться, что новые slug соответствуют правилам ЧПУ (человеко-понятных урлов) — короткие, понятные, без лишних символов и ключевых слов.

Как изменить slug записи или страницы в WordPress

Самый простой способ изменить slug — через админку WordPress. Для этого:

  1. Откройте список записей или страниц.
  2. Наведите курсор на нужную запись и нажмите «Изменить».
  3. Под заголовком записи находится поле с permalink (постоянной ссылкой). Нажмите «Изменить» рядом с ним.
  4. Введите новый slug и сохраните изменения.

Однако после этого старый URL перестанет работать, если не настроить редиректы. Чтобы не потерять SEO, необходимо сделать 301 редирект со старого адреса на новый.

Настройка редиректов при изменении slug

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

  • Redirection — самый популярный бесплатный плагин для настройки 301 редиректов и мониторинга 404 ошибок.
  • Yoast SEO Premium — включает встроенный менеджер редиректов.
  • Rank Math — тоже предлагает удобный интерфейс для редиректов.

Пример настройки редиректа с помощью плагина Redirection:

  1. Установите и активируйте плагин Redirection.
  2. Перейдите в «Инструменты → Redirection».
  3. В разделе «Добавить новый редирект» введите старый URL (например, /staryj-slug/) в поле «Источник URL».
  4. В поле «Целевой URL» введите новый slug (например, /novyj-slug/).
  5. Сохраните редирект.

Автоматизация редиректов при изменении slug с помощью кода

Если вы предпочитаете не использовать плагины, можно добавить функцию в файл functions.php вашей темы или создать небольшой плагин. Ниже пример кода, который автоматически создаёт 301 редирект со старого slug на новый при сохранении записи:

function wpbuy_redirect_old_slug($post_ID, $post_after, $post_before) {
    if ($post_after->post_type !== 'post') return;
    $old_slug = $post_before->post_name;
    $new_slug = $post_after->post_name;
    if ($old_slug !== $new_slug) {
        add_rewrite_rule($old_slug . '/?$', 'index.php?name=' . $new_slug, 'top');
        // Для корректной работы необходимо очистить пермалинки
        flush_rewrite_rules();
    }
}
add_action('post_updated', 'wpbuy_redirect_old_slug', 10, 3);

Однако данный код лишь добавляет правило перезаписи, не полноценный редирект. Для правильного 301 редиректа лучше использовать следующий хук:

function wpbuy_handle_slug_change_redirect($post_ID, $post_after, $post_before) {
    if ($post_after->post_type !== 'post') 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 . '/');
        // Сохраняем редирект в базе или используем transient
        update_option('wpbuy_slug_redirect_' . $old_slug, $new_url);
    }
}
add_action('post_updated', 'wpbuy_handle_slug_change_redirect', 10, 3);

function wpbuy_redirect_old_slug_check() {
    $requested_path = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');
    $redirect_url = get_option('wpbuy_slug_redirect_' . $requested_path);
    if ($redirect_url) {
        wp_redirect($redirect_url, 301);
        exit;
    }
}
add_action('template_redirect', 'wpbuy_redirect_old_slug_check');

Этот код сохраняет редирект в базе данных и проверяет каждое обращение, перенаправляя пользователя, если URL совпадает со старым slug.

Как удалить slug из URL — убрать базу категории или типа записи

Иногда нужно убрать часть URL, например, базу категории (category) или тип записи (post type slug) для более коротких и привлекательных URL. Например, вместо site.ru/category/news сделать site.ru/news.

Для этого можно использовать плагин Remove Category URL или написать собственный код. Рассмотрим пример удаления базы категории с помощью кода:

function wpbuy_remove_category_slug($link, $term, $taxonomy) {
    if ($taxonomy === 'category') {
        return str_replace('/category', '', $link);
    }
    return $link;
}
add_filter('term_link', 'wpbuy_remove_category_slug', 10, 3);

function wpbuy_category_rewrite_rules($rules) {
    $new_rules = array();
    $categories = get_categories(array('hide_empty' => false));
    foreach ($categories as $category) {
        $new_rules[$category->slug . '/?$'] = 'index.php?category_name=' . $category->slug;
        $new_rules[$category->slug . '/page/([0-9]{1,})/?$'] = 'index.php?category_name=' . $category->slug . '&paged=$matches[1]';
    }
    return $new_rules + $rules;
}
add_filter('rewrite_rules_array', 'wpbuy_category_rewrite_rules');

После добавления кода необходимо сбросить правила пермалинков — зайдите в админку WordPress → Настройки → Постоянные ссылки и просто нажмите «Сохранить изменения».

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

Выводы и рекомендации по работе с slug в WordPress

Изменение или удаление slug — частая задача при развитии сайта и оптимизации SEO. Главное — не забывать о корректных редиректах, чтобы не потерять трафик и позиции в поисковых системах.

Используйте для редиректов проверенные плагины, например, Redirection, если не хотите писать код самостоятельно. При необходимости автоматизации — внедряйте функции с префиксом wpbuy_, как в приведённых примерах, чтобы избежать конфликтов.

Удаление баз в URL — мощный инструмент для SEO, но он требует аккуратности и тестирования, чтобы избежать ошибок и конфликтов.

Следуя этим рекомендациям, вы сможете управлять URL вашего WordPress-сайта эффективно и безопасно для SEO.

Автоматическое удаление старых записей в WordPress через WP-Cron
08.03.2026
Как добавить автоматическое сохранение данных в формах WordPress
20.12.2025
Автоматическое удаление неактивных вариантов товаров в WooCommerce
26.04.2026
WordPress: как избежать конфликтов между плагинами и быстро находить ошибки
23.12.2025
Автоматическое удаление неактивных вариантов товаров в WooCommerce по расписанию
30.06.2026