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

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

Зачем нужен автоматический редирект в WordPress

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

Основные задачи редиректов:

  • Перенаправление с устаревших или удалённых URL на новые;
  • Исправление битых ссылок;
  • Объединение нескольких страниц в одну;
  • Улучшение SEO и сохранение ссылочного веса.

Как реализовать автоматический редирект без плагинов

Самый простой способ — добавить правила редиректа в файл .htaccess на сервере, если вы используете Apache. Но это требует доступа к серверу и знаний синтаксиса. В WordPress можно реализовать редирект на уровне PHP с помощью хука template_redirect. Это позволяет гибко управлять логикой редиректов прямо из кода темы или плагина.

Пример кода для автоматического редиректа

Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function wpgenerate_redirect_old_to_new() {
    if (is_404()) {
        $requested_url = $_SERVER['REQUEST_URI'];
        // Пример: редирект со старого URL /old-page/ на новый /new-page/
        if (strpos($requested_url, '/old-page/') !== false) {
            wp_redirect(home_url('/new-page/'), 301);
            exit;
        }
    }
}
add_action('template_redirect', 'wpgenerate_redirect_old_to_new');

Этот код проверяет, если текущая страница — ошибка 404, и URL содержит /old-page/, то пользователь будет перенаправлен на /new-page/ с кодом 301 (постоянный редирект).

Как сделать массовый редирект по списку URL

Если нужно настроить много редиректов, лучше хранить их в массиве и проверять текущий URL относительно ключей массива. Пример:

function wpgenerate_mass_redirects() {
    $redirects = array(
        '/old-page/' => '/new-page/',
        '/outdated-url/' => '/updated-url/',
        '/another-old/' => '/another-new/',
    );

    $requested_url = $_SERVER['REQUEST_URI'];

    foreach ($redirects as $old => $new) {
        if (strpos($requested_url, $old) !== false) {
            wp_redirect(home_url($new), 301);
            exit;
        }
    }
}
add_action('template_redirect', 'wpgenerate_mass_redirects');

Такой подход легко масштабируется и не требует установки плагинов.

Редиректы для сайтов с мультиязычностью

Если на вашем сайте реализована мультиязычность, например с помощью плагина WPML или Polylang, важно учитывать язык при настройке редиректов. Можно добавить проверку языка и перенаправлять пользователя на нужную языковую версию страницы.

Пример кода с проверкой языка (на примере WPML):

function wpgenerate_redirect_by_language() {
    if (is_404()) {
        $lang = apply_filters('wpml_current_language', NULL);
        if ($lang === 'ru') {
            wp_redirect(home_url('/ru/novaya-stranica/'), 301);
            exit;
        } elseif ($lang === 'en') {
            wp_redirect(home_url('/en/new-page/'), 301);
            exit;
        }
    }
}
add_action('template_redirect', 'wpgenerate_redirect_by_language');

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

Автоматизация редиректов при смене URL записи

При изменении постоянной ссылки (слага) записи WordPress автоматически сохраняет старый URL в ревизиях, но не всегда корректно перенаправляет на новый. Чтобы решить эту проблему, можно использовать хук post_updated и добавлять редиректы программно.

Пример функции для автоматического редиректа со старого URL на новый при смене слага записи:

function wpgenerate_redirect_on_slug_change($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 (пример простой реализации)
        set_transient('wpgenerate_redirect_' . md5($old_url), $new_url, 60 * 60 * 24 * 30); // на 30 дней
    }
}
add_action('post_updated', 'wpgenerate_redirect_on_slug_change', 10, 3);

// Обработчик редиректа при загрузке страницы
function wpgenerate_handle_slug_change_redirect() {
    $requested_url = home_url($_SERVER['REQUEST_URI']);
    $redirect_url = get_transient('wpgenerate_redirect_' . md5($requested_url));
    if ($redirect_url) {
        wp_redirect($redirect_url, 301);
        exit;
    }
}
add_action('template_redirect', 'wpgenerate_handle_slug_change_redirect');

В этом примере при изменении слага записи создаётся временный редирект на 30 дней, который потом применяется при заходе на старый URL.

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

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

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

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

После настройки редиректов важно тщательно их проверить:

  • Используйте инструменты браузера или расширения (например, Redirect Path) для отслеживания кода ответа;
  • Проверяйте редиректы как для пользователей, так и для поисковых систем;
  • Обратите внимание на циклы редиректов и избегайте их;
  • Проводите тесты на разных устройствах и браузерах.

Также не забывайте очищать кеш сайта и сервера после внесения изменений.

Как автоматически создавать отзывы с экспертной оценкой в WordPress
22.02.2026
Хуки и фильтры WooCommerce: практическое руководство по автоматизации
30.04.2026
Как автоматически отправлять сообщения в Telegram из WordPress
09.03.2026
Как сделать автоматический импорт продуктов в WordPress с помощью WP All Import
30.03.2026
WooCommerce: автоматическое создание отзывов после покупки
23.05.2026