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

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

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

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

Кроме того, автоматические редиректы можно использовать для:

  • Перенаправления пользователей с несуществующих или устаревших URL;
  • Перенаправления по геолокации или устройству;
  • Перенаправления после изменений в структуре сайта;
  • Оптимизации SEO и контроля канонических URL.

Как реализовать редирект через файл functions.php

Самый простой и лёгкий способ добавить редиректы — использовать хук template_redirect в файле functions.php вашей темы. Этот метод не требует установки плагинов и полностью контролируется вами.

Пример кода для редиректа с конкретного URL на новый адрес:

add_action('template_redirect', 'wpnote_redirect_old_url');
function wpnote_redirect_old_url() {
    if (strpos($_SERVER['REQUEST_URI'], '/staryy-url/') !== false) {
        wp_redirect(home_url('/novyy-url/'), 301);
        exit;
    }
}

В этом примере, если пользователь заходит на страницу с адресом, содержащим /staryy-url/, его автоматически перенаправляет на /novyy-url/. Код использует постоянный редирект 301, что важно для SEO.

Редиректы с несколькими условиями

Если нужно настроить сразу несколько правил, можно расширить функцию:

add_action('template_redirect', 'wpnote_multiple_redirects');
function wpnote_multiple_redirects() {
    $uri = $_SERVER['REQUEST_URI'];

    $redirects = [
        '/staryy-url/' => '/novyy-url/',
        '/udalennaya-stranica/' => '/glavnaya-stranica/',
    ];

    foreach ($redirects as $old => $new) {
        if (strpos($uri, $old) !== false) {
            wp_redirect(home_url($new), 301);
            exit;
        }
    }
}

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

Редиректы на основе пользовательских условий

Иногда необходимо делать редиректы не просто по URL, а по другим параметрам — например, по типу устройства или геолокации. Для этого можно использовать PHP и дополнительные библиотеки.

Редирект по типу устройства

Допустим, нужно перенаправить мобильных пользователей на мобильную версию сайта. Можно использовать PHP-библиотеку Mobile Detect.

Пример реализации:

require_once get_template_directory() . '/Mobile_Detect.php';

add_action('template_redirect', 'wpnote_redirect_mobile');
function wpnote_redirect_mobile() {
    $detect = new Mobile_Detect();

    if ($detect->isMobile() && !is_admin()) {
        wp_redirect(home_url('/mobile-version/'), 302);
        exit;
    }
}

Для использования нужно скачать библиотеку и положить файл Mobile_Detect.php в папку вашей темы.

Редирект по геолокации

Для геолокации можно использовать IP-адрес и бесплатные сервисы, например, ipgeolocation.io. Ниже пример простой реализации с cURL:

function wpnote_get_user_country() {
    $ip = $_SERVER['REMOTE_ADDR'];
    $url = "https://api.ipgeolocation.io/ipgeo?apiKey=ВАШ_КЛЮЧ&ip=$ip";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);

    $data = json_decode($response, true);
    return $data['country_code2'] ?? '';
}

add_action('template_redirect', 'wpnote_redirect_by_country');
function wpnote_redirect_by_country() {
    $country = wpnote_get_user_country();
    if ($country === 'RU') {
        wp_redirect(home_url('/ru/'), 302);
        exit;
    }
}

Не забудьте зарегистрироваться и получить API-ключ на сайте сервиса.

Преимущества и недостатки решения без плагинов

Плюсы:

  • Максимальная производительность — лишний плагин не загружает сайт.
  • Полный контроль над логикой редиректов.
  • Отсутствие зависимости от сторонних разработчиков.

Минусы:

  • Необходимость писать и поддерживать код самостоятельно.
  • Отсутствие удобного интерфейса для управления редиректами.
  • Можно допустить ошибки, которые приведут к циклам редиректов или потерям трафика.

Когда стоит использовать плагины для редиректов

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

  • Clearfy Pro — многофункциональный плагин с модулем для редиректов и оптимизаций сайта;
  • Redirection — бесплатный и простой в использовании плагин для управления редиректами;
  • WPRemark — плагин для автоматизации разных процессов, включая некоторые возможности редиректов.

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

Советы по SEO при создании редиректов

Для сохранения и улучшения SEO важно:

  • Использовать редиректы 301 для постоянных перенаправлений;
  • Избегать цепочек и циклов редиректов, чтобы не замедлять загрузку;
  • Обновлять внутренние ссылки на сайте, чтобы они сразу вели на актуальный URL;
  • Проверять редиректы с помощью специальных инструментов, например, httpstatus.io;
  • Добавлять канонические URL, если это необходимо.
Как добавить поддержку JSON-LD в WordPress
25.11.2025
Как добавить поддержку PHP 8.2 в WordPress и решить проблемы с совместимостью
20.02.2026
Как использовать плагин CPT UI для создания собственных типов записей в WordPress
09.12.2025
Как добавить поддержку AMP в WordPress: подробный разбор и практические решения
25.12.2025
WooCommerce: Автоматическое изменение атрибутов товара при оформлении заказа
06.06.2026