Как настроить редирект 301 в WordPress

Если страница переехала на новый адрес, вы удалили материал или поменяли структуру URL, старый адрес нельзя просто оставить как есть. Для таких случаев нужен 301-редирект: он сообщает браузеру и поисковым системам, что страница навсегда перемещена, и передаёт посетителя на новый URL.

В WordPress это можно сделать несколькими способами: через плагин, через настройки сервера или прямо в коде. Для большинства сайтов самый безопасный и быстрый вариант — настроить редирект через плагин или через правила веб-сервера, если у вас есть доступ к конфигурации. Ниже разберу, как сделать это без цепочек, лишних переходов и типичных ошибок.

Когда нужен 301-редирект и какой URL указывать

301 используют в трёх основных случаях:

  • страница переехала на новый адрес после редизайна или изменения структуры сайта;
  • вы объединили несколько материалов в один и старые URL больше не нужны;
  • контент удалён, но у него есть замена, на которую логично отправить пользователя.

В редиректе важно указывать не просто «похожую» страницу, а действительно подходящую замену. Если старый материал про конкретную услугу, ведите на новую страницу этой же услуги. Если замены нет, иногда лучше отдать 410, но это уже отдельный сценарий и не замена редиректу.

Ещё один принцип: редирект должен вести сразу на конечный адрес. Если старый URL сначала отправляет на промежуточную страницу, а потом ещё раз перенаправляется, получается цепочка. Для пользователя это лишняя задержка, а для поисковых систем — лишняя нагрузка и риск потери части сигнала.

Самый простой способ: плагин для редиректов

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

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

  • источник — старый путь без домена, например /old-page/;
  • цель — новый полный адрес или путь, например /new-page/;
  • тип — 301 Moved Permanently.

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

После сохранения откройте старый адрес в браузере и проверьте, что он сразу ведёт на нужную страницу. Если у вас есть доступ к инструментам разработчика или к онлайн-проверке заголовков, убедитесь, что ответ действительно 301, а не 302.

Редирект через .htaccess на Apache

Если сайт работает на Apache и у вас есть доступ к файлу .htaccess, редирект можно прописать там. Это хороший вариант, когда нужно быстро перенаправить один или несколько адресов без установки плагина.

Перед изменением файла сделайте резервную копию. Ошибка в .htaccess может уронить сайт или вызвать 500 Internal Server Error.

Для одного URL используйте такое правило:

Redirect 301 /old-page/ https://example.com/new-page/

Если нужен более гибкий вариант, обычно используют модуль mod_rewrite. Например, когда надо перенаправить конкретный адрес и сохранить контроль над логикой правил:

RewriteEngine On
RewriteRule ^old-page/?$ https://example.com/new-page/ [R=301,L]

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

Редирект через nginx

На nginx редиректы настраиваются в конфигурации сервера. Если у вас обычный shared-хостинг, доступа к этому уровню может не быть — тогда используйте плагин или обратитесь в поддержку хостинга.

Пример для одного адреса:

location = /old-page/ {
    return 301 https://example.com/new-page/;
}

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

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

Когда лучше сделать редирект в functions.php

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

Пример для конкретного URL:

add_action('template_redirect', function () {
    if (is_page('old-page')) {
        wp_redirect('https://example.com/new-page/', 301);
        exit;
    }
});

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

Как не создать цепочку редиректов

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

Проверьте три вещи:

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

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

Как проверить, что 301 работает правильно

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

Проверка должна показать:

  • старый адрес отдаёт статус 301;
  • в заголовке Location указан правильный конечный URL;
  • новый адрес открывается без дополнительного перенаправления.

Если у вас есть доступ к командной строке, можно проверить заголовки так:

curl -I https://example.com/old-page/

В ответе ищите строку со статусом HTTP/1.1 301 Moved Permanently или HTTP/2 301 и заголовок Location. Если вместо этого видите 302, значит редирект временный и его нужно исправить.

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

Типичные ошибки при настройке 301

Самые частые проблемы выглядят так:

  • Используется 302 вместо 301. Это временный редирект, он не подходит для постоянного переноса страницы.
  • Редирект ведёт на несуществующий URL. Тогда пользователь получает 404 уже после перенаправления.
  • Создана цепочка. Старый адрес уходит на промежуточный, а потом ещё раз перенаправляется.
  • Правило конфликтует с другим редиректом. Такое бывает при одновременной настройке в плагине, .htaccess и теме.
  • Сломан формат URL. Например, перепутаны адрес с www и без него, HTTP и HTTPS, слэш в конце и без него.

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

Что выбрать на практике

СценарийЧто лучше использоватьПочему
Нужно перенаправить 1–10 страницПлагин или .htaccessБыстро, понятно, легко проверить
Редиректы должны жить вне темы.htaccess или nginxНе зависят от смены оформления
Временное решение в темеtemplate_redirectПодходит только как короткий рабочий вариант
Сайт на nginx без доступа к конфигуПлагинНа уровне WordPress это обычно единственный доступный способ

Если задача — перенести страницу, сменить URL или убрать контент без потери трафика, обычно достаточно одного аккуратно настроенного 301-редиректа на конечный адрес. Главное — не дублировать правила в нескольких местах и сразу проверять ответ сервера, а не только поведение в браузере.

Как добавить уникальный ID к постам WordPress для интеграций и фильтрации
12.09.2026
Как создать автоматические задачи (cron) в WordPress без плагинов
14.09.2026
Как удалить и изменить метаданные товаров WooCommerce после импорта
12.09.2026
Как создать многоуровневую навигацию в WordPress: подробное руководство с примерами
20.09.2026
Как удалить неиспользуемые виджеты из административной панели WordPress
23.09.2026

Разработка под WordPress: подробные руководства, список встроенных функций, готовые решения.