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

В процессе разработки и поддержки сайтов на WordPress часто возникает необходимость настроить автоматические редиректы. Это может быть связано с изменением структуры URL, удалением страниц или переносом контента. В этой статье мы рассмотрим, как создать автоматический редирект в WordPress без использования плагинов, используя только код и возможности ядра CMS.

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

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

Автоматические редиректы позволяют:

  • Перенаправлять устаревшие URL на актуальные;
  • Сохранять ссылочный вес и позиции в поисковиках;
  • Улучшать пользовательский опыт, избегая страниц с ошибками;
  • Управлять перенаправлениями централизованно, без необходимости редактировать .htaccess.

Создание автоматического редиректа через файл functions.php

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

Ниже приведён пример функции, которая реализует автоматический редирект с определённых URL на новые адреса:

function wpcourse_redirect_old_urls() {
    // Получаем текущий URI
    $request_uri = $_SERVER['REQUEST_URI'];

    // Массив редиректов: ключ — старый URI, значение — новый URL
    $redirects = array(
        '/staryj-url/' => home_url('/novyj-url/'),
        '/udalennaja-stranica/' => home_url('/glavnaja/'),
    );

    if (array_key_exists($request_uri, $redirects)) {
        wp_redirect($redirects[$request_uri], 301); // 301 — постоянный редирект
        exit();
    }
}
add_action('template_redirect', 'wpcourse_redirect_old_urls');

В этом коде мы определяем функцию wpcourse_redirect_old_urls, которая проверяет текущий URL запроса и, если он есть в массиве редиректов, выполняет перенаправление на новый адрес с кодом 301.

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

Обработка динамических редиректов на основе параметров

Иногда необходимо делать редиректы не по точному совпадению URL, а на основе параметров или регулярных выражений. Рассмотрим пример с проверкой параметра в URL:

function wpcourse_redirect_with_query_param() {
    if (isset($_GET['old_param'])) {
        $new_url = home_url('/novaja-stranica/') . '?new_param=' . sanitize_text_field($_GET['old_param']);
        wp_redirect($new_url, 301);
        exit();
    }
}
add_action('template_redirect', 'wpcourse_redirect_with_query_param');

Здесь мы проверяем наличие параметра old_param и перенаправляем пользователя на новый URL с обновлённым параметром.

Редиректы через фильтр template_redirect и безопасность

Хук template_redirect — это правильное место для выполнения редиректов, так как он срабатывает перед загрузкой шаблона страниц, но после того, как WordPress определил, какую страницу показывать.

Важно использовать функцию wp_redirect() и обязательно вызывать exit(); после неё, чтобы избежать дальнейшей обработки скрипта и потенциальных ошибок.

Также для безопасности стоит использовать функции очистки данных, например, sanitize_text_field(), если вы работаете с параметрами из URL.

Автоматический редирект при смене структуры постоянных ссылок

Если вы изменили структуру постоянных ссылок (Permalinks) в WordPress, можно сделать универсальный редирект с помощью регулярных выражений в functions.php. Например, редирект с URL вида /blog/post-name на /post-name:

function wpcourse_redirect_old_permalink_structure() {
    $request_uri = $_SERVER['REQUEST_URI'];

    if (preg_match('#^/blog/(.+)$#', $request_uri, $matches)) {
        $new_url = home_url('/' . $matches[1]);
        wp_redirect($new_url, 301);
        exit();
    }
}
add_action('template_redirect', 'wpcourse_redirect_old_permalink_structure');

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

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

Если вы хотите облегчить работу с редиректами, можно обратить внимание на плагины из каталога WPGPT и Clearfy Pro.

Плагин Clearfy Pro, например, предлагает инструменты для оптимизации сайта, в том числе управление редиректами и очистку базы данных от битых ссылок. WPGPT можно использовать для генерации автоматизированных инструкций и помощи в написании кастомного кода.

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

После установки и активации Clearfy Pro перейдите в раздел «SEO» > «Редиректы» и добавьте новые правила через удобный интерфейс. Плагин поддерживает 301 и 302 редиректы, а также регулярные выражения.

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

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

  • Браузерные инструменты разработчика (Network tab) для отслеживания кода ответа;
  • Онлайн-сервисы проверки редиректов (например, Redirect Checker);
  • Плагины для отладки, например, Query Monitor;
  • Встроенные логи сервера.

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

Заключение

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

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

Как изменить структуру ссылок в WordPress без плагинов
03.03.2026
Как отключить автозаполнение форм в WordPress
05.04.2026
Как использовать хук WooCommerce 'woocommerce_order_status_changed' для автоматизации действий при смене статуса заказа
28.04.2026
Как удалить неиспользуемые шорткоды в WordPress
24.02.2026
Как автоматизировать удаление старых пакетов подключений в WordPress
22.03.2026

Хотите научиться создавать сайты и зарабатывать на этом от 30 000 рублей в месяц?

Записаться на курс сейчас