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

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

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

Редиректы позволяют:

  • Избежать ошибок 404 и потерю трафика;
  • Сохранять позиции страниц в поисковой выдаче при смене URL;
  • Перенаправлять пользователей на актуальный контент;
  • Обеспечивать корректную работу ссылок после миграций сайта или изменения структуры.

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

Реализация редиректа через functions.php: базовый пример

Самый простой способ сделать редирект — добавить код в файл functions.php вашей темы или в отдельный плагин. Ниже пример функции, которая проверяет URL и выполняет редирект на другую страницу.

function wpturbo_redirect_old_page() {
    if ( is_page('staraia-stranica') ) {
        wp_redirect( home_url('/novaya-stranica/'), 301 );
        exit;
    }
}
add_action('template_redirect', 'wpturbo_redirect_old_page');

Здесь мы проверяем, что пользователь зашел на страницу с ярлыком staraia-stranica, и делаем редирект на /novaya-stranica/ с кодом 301 (постоянный редирект). Функция wp_redirect — встроенная в WordPress, она корректно устанавливает заголовки.

Редирект по произвольным URL с помощью массива соответствий

Если нужно сделать несколько редиректов, можно хранить пары «старый URL — новый URL» в массиве и проверять текущий адрес.

function wpturbo_mass_redirects() {
    $redirect_map = array(
        '/staryi-url-1/' => '/novyi-url-1/',
        '/staryi-url-2/' => '/novyi-url-2/',
        '/staryi-url-3/' => '/novyi-url-3/',
    );

    $request_uri = trim( $_SERVER['REQUEST_URI'], '/' );

    foreach ($redirect_map as $old => $new) {
        if ( trim($old, '/') === $request_uri ) {
            wp_redirect( home_url($new), 301 );
            exit;
        }
    }
}
add_action('template_redirect', 'wpturbo_mass_redirects');

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

Редирект с условием по параметрам GET

Иногда нужно делать редиректы не только по URL, но и с учетом параметров запроса. Например, перенаправить /promo?old=1 на /promo-new.

function wpturbo_redirect_with_query() {
    if ( is_page('promo') && isset($_GET['old']) && $_GET['old'] == '1' ) {
        wp_redirect( home_url('/promo-new/'), 301 );
        exit;
    }
}
add_action('template_redirect', 'wpturbo_redirect_with_query');

Этот код проверяет, что мы на странице promo и параметр old равен 1, после чего делает редирект.

Редирект после отправки формы с использованием AJAX и WP AJAX API

Если на сайте есть формы, которые отправляются через AJAX, и после успешной отправки требуется сделать редирект, то достаточно в JS получить ответ и изменить location:

jQuery.ajax({
    url: ajaxurl,
    type: 'POST',
    data: {
        action: 'wpturbo_form_submit',
        data: formData
    },
    success: function(response) {
        if(response.success) {
            window.location.href = response.data.redirect_url;
        }
    }
});

В PHP обработчике:

function wpturbo_form_submit_callback() {
    // Обработка формы
    wp_send_json_success( array('redirect_url' => home_url('/thank-you/')) );
}
add_action('wp_ajax_wpturbo_form_submit', 'wpturbo_form_submit_callback');
add_action('wp_ajax_nopriv_wpturbo_form_submit', 'wpturbo_form_submit_callback');

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

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

Резюме и рекомендации по безопасности редиректов

При создании редиректов важно:

  • Использовать постоянные редиректы (301) для SEO, если страница навсегда переехала;
  • Вызывать exit; после wp_redirect чтобы прекратить выполнение скрипта;
  • Проверять входящие данные и не делать открытые редиректы на внешние сайты — это угроза безопасности;
  • Для массовых редиректов предпочтительнее использовать серверные настройки (.htaccess, nginx), чтобы снизить нагрузку на PHP.

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

Как использовать хук pre_get_posts для кастомных фильтров в WordPress
12.03.2026
Как использовать REST API в WordPress для создания настроек
26.11.2025
Удаление неиспользуемых вариаций товаров WooCommerce через код
05.06.2026
Удаление неиспользуемых вариаций товаров в WooCommerce без плагинов
09.05.2026
Как создать динамические метаполя для кастомных типов записей в WordPress
07.02.2026