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

|

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

Почему важно сохранять старые URL при изменении slug

Если изменить slug поста без настройки перенаправления, все внешние ссылки, ведущие на старый адрес, будут возвращать ошибку 404. Это ухудшит пользовательский опыт и SEO-показатели сайта. Чтобы избежать этой проблемы, нужно настроить корректные 301 редиректы со старых URL на новые.

Примеры последствий удаления или изменения slug без редиректа

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

Изменение slug можно сделать через стандартный редактор WordPress, но важен этап создания редиректа. Рассмотрим пошагово:

  1. Откройте нужный пост в админке WordPress.
  2. В поле «Постоянная ссылка» измените slug на новый.
  3. Сохраните изменения.
  4. Настройте 301 редирект со старого URL на новый.

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

Для удобства и минимизации ошибок рекомендуем использовать плагины, которые автоматически создают редиректы при изменении slug:

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

Пример ручного создания 301 редиректа в functions.php темы

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

add_action('post_updated', 'wpreboot_redirect_on_slug_change', 10, 3);
function wpreboot_redirect_on_slug_change($post_ID, $post_after, $post_before) {
    if ($post_before->post_name !== $post_after->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 . '/');

        // Сохраняем редирект в опции или базе, здесь простой пример — используем transient
        set_transient('wpreboot_redirect_' . md5($old_url), $new_url, 60 * 60 * 24 * 30); // 30 дней
    }
}

add_action('template_redirect', 'wpreboot_handle_old_slug_redirect');
function wpreboot_handle_old_slug_redirect() {
    $requested_url = (is_ssl() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    $redirect_url = get_transient('wpreboot_redirect_' . md5($requested_url));
    if ($redirect_url) {
        wp_redirect($redirect_url, 301);
        exit;
    }
}

Этот пример иллюстрирует базовый подход, но для боевого сайта лучше использовать проверенные плагины, которые учитывают все нюансы.

Удаление slug из URL постов — особенности и последствия

Иногда возникает задача полностью удалить slug из URL, например, чтобы сделать ссылку короче. В WordPress по умолчанию это не предусмотрено, так как slug используется для распознавания записи.

Риски удаления slug

Реализация удаления slug через фильтр post_type_link

Можно попробовать убрать slug программно, например для кастомного типа записи. Пример для стандартных постов:

add_filter('post_type_link', 'wpreboot_remove_post_slug', 10, 3);
function wpreboot_remove_post_slug($post_link, $post, $leavename) {
    if ('post' === $post->post_type) {
        $post_link = home_url('/' . $post->post_name . '/');
    }
    return $post_link;
}

// Обработка запроса для правильного парсинга URL
add_action('pre_get_posts', 'wpreboot_parse_request_without_slug');
function wpreboot_parse_request_without_slug($query) {
    if (!$query->is_main_query() || 2 !== count($query->query) || !isset($query->query['page'])) {
        return;
    }

    if (!empty($query->query['page'])) {
        $query->set('post_type', array('post'));
    }
}

Однако такой метод требует тонкой настройки и тестирования, а также возможно использование плагинов для более надежного результата.

Рекомендации для безопасного изменения URL в WordPress

Чтобы избежать проблем с изменением slug и URL, следуйте рекомендациям:

Для дополнительной оптимизации URL и работы с редиректами можно использовать плагин Clearfy Pro, который содержит инструменты для SEO и управления ссылками.

Создаем настройки плагинов в WordPress с практическими примерами
02.12.2025
Как сделать автоматический откат изменений при ошибках в WordPress
22.02.2026
Как автоматически изменять meta-теги для пользовательских страниц в WordPress
02.03.2026
Как автоматически удалять неиспользуемые шорткоды в WordPress
16.02.2026
Оптимизация базы данных WordPress: удаляем избыточные данные для ускорения сайта
18.11.2025
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше