Как создать автоматический редирект после изменения URL в WordPress

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

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

Когда вы меняете постоянную ссылку (permalink) страницы или записи, старый URL больше не работает, и посетители видят ошибку 404. Поисковые системы тоже фиксируют такие ошибки и могут понизить рейтинг сайта.

Ручное создание редиректов для каждой изменённой страницы – трудоёмкий и рискованный процесс, особенно на больших сайтах. Автоматизация позволяет:

  • Сохранять SEO-позиции без потери трафика.
  • Уменьшить количество ошибок 404 и улучшить пользовательский опыт.
  • Облегчить управление сайтом и избежать человеческих ошибок.

Как WordPress обрабатывает изменение URL по умолчанию

Если вы меняете URL записи в админке WordPress, система сама не создаёт редирект с старого адреса на новый. В результате старые ссылки перестают работать.

Без внешних плагинов или кода вы столкнётесь с проблемой битых ссылок. Чтобы это исправить, можно использовать плагины или написать свой код, который будет отслеживать изменения URL и сохранять старые адреса для редиректа.

Использование плагина для автоматических редиректов

Самые популярные плагины для управления редиректами в WordPress:

  • Redirection – бесплатный и мощный плагин, который позволяет создавать редиректы вручную и автоматически логировать 404 ошибки.
    Ссылка: https://wordpress.org/plugins/redirection/
  • Yoast SEO Premium – в платной версии есть функция автоматических редиректов при изменении URL.
  • Clearfy Pro – среди множества оптимизаций есть удобные инструменты для управления редиректами, совместимые с другими функциями оптимизации.
    Подробнее: Clearfy Pro на WPSHOP

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

Пример кода для автоматического создания 301 редиректа при смене URL записи

Ниже приведён пример, как с помощью хука post_updated отслеживать смену URL и сохранять редирект в базу данных. Для хранения редиректов создадим собственную таблицу. В реальном проекте стоит добавить обработку удаления редиректов и проверку безопасности.

function wp_puzzle_create_redirect_on_url_change($post_ID, $post_after, $post_before) {
    // Проверяем, что это публикация или страница
    if ($post_after->post_status !== 'publish') return;

    // Получаем старый и новый URL
    $old_url = get_permalink($post_before->ID);
    $new_url = get_permalink($post_after->ID);

    if ($old_url !== $new_url) {
        global $wpdb;
        $table_name = $wpdb->prefix . 'wp_puzzle_redirects';

        // Проверяем существует ли таблица, если нет - создаём (один раз)
        if ($wpdb->get_var("SHOW TABLES LIKE '{$table_name}'") !== $table_name) {
            $charset_collate = $wpdb-&gtget_charset_collate();
            $sql = "CREATE TABLE {$table_name} (
                id mediumint(9) NOT NULL AUTO_INCREMENT,
                old_url varchar(255) NOT NULL,
                new_url varchar(255) NOT NULL,
                PRIMARY KEY  (id),
                UNIQUE KEY old_url (old_url)
            ) $charset_collate;";
            require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
            dbDelta($sql);
        }

        // Вставляем или обновляем редирект
        $wpdb->replace(
            $table_name,
            [
                'old_url' => $old_url,
                'new_url' => $new_url
            ],
            ['%s', '%s']
        );
    }
}
add_action('post_updated', 'wp_puzzle_create_redirect_on_url_change', 10, 3);

// Обработка редиректа
function wp_puzzle_redirect_old_urls() {
    if (is_admin()) return; // В админке не редиректим

    global $wpdb;
    $table_name = $wpdb->prefix . 'wp_puzzle_redirects';
    $current_url = home_url($_SERVER['REQUEST_URI']);

    $redirect = $wpdb->get_row($wpdb->prepare("SELECT new_url FROM {$table_name} WHERE old_url = %s", $current_url));

    if ($redirect) {
        wp_redirect($redirect->new_url, 301);
        exit;
    }
}
add_action('template_redirect', 'wp_puzzle_redirect_old_urls');

Пояснения к коду

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

Советы по управлению редиректами и производительностью

При большом количестве редиректов важно оптимизировать их хранение и обработку, чтобы не замедлять сайт. Некоторые рекомендации:

  • Используйте индексированные таблицы в базе данных для быстрых запросов.
  • Кэшируйте результаты редиректов, чтобы уменьшить нагрузку на базу.
  • Удаляйте устаревшие редиректы, которые уже не нужны.
  • Проверяйте, чтобы не было циклических редиректов.

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

Заключение

Автоматическое создание редиректов после изменения URL – важная задача для поддержки SEO и стабильной работы сайта. Используйте готовые плагины для простых решений или интегрируйте собственный код для гибкости и контроля. В любом случае, настройка редиректов должна стать частью процесса редактирования контента.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как использовать Meta Box в WordPress для расширения функциональности
27.02.2026
Как полностью настроить страницу входа в WordPress: плагины и примеры кода
10.01.2026
WooCommerce: автоматическое удаление товаров с нулевым остатком и управление запасами
21.05.2026
WordPress: как удалить пустое место в меню и исправить пробелы между пунктами
08.12.2025
WordPress: решение проблемы с блокировкой сервисных роботов через robots.txt
24.01.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее