Настройка 301 редиректа: .htaccess, nginx, Битрикс и WordPress

Коротко

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

Сделать редирект можно на разных уровнях: в файле .htaccess на Apache, в конфигурации nginx, средствами CMS или в коде. Выбор зависит от сервера и задачи. Для переезда на HTTPS и смены домена надёжнее серверные правила, для отдельных страниц удобны модули CMS.

ЗадачаГде лучше настроитьИнструмент
HTTP на HTTPSСервер.htaccess или nginx
www и без wwwСервер.htaccess или nginx
Смена доменаСерверПравило для всего старого домена
Отдельные страницыCMS или серверМодуль редиректов, Rank Math, .htaccess
Сотни адресов после смены структурыСерверКарта соответствий map в nginx или набор правил

Основная мысль

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

Чаще всего проблемы возникают не из-за отсутствия редиректов, а из-за неправильных. Все старые страницы отправляются на главную, редиректы выстраиваются в цепочки из трёх-четырёх переходов, вместо 301 стоит временный 302, а правила для HTTPS и www конфликтуют и создают бесконечный цикл.

Поэтому редиректы настраивают по плану: сначала список старых и новых адресов, затем правила, затем проверка каждого адреса. Этот порядок одинаков для WordPress, 1С-Битрикс и любого другого сайта.

301 редирект и другие коды: когда какой нужен

Коды перенаправления

КодЗначениеКогда использовать
301Перемещено навсегдаСмена адреса страницы, домена, протокола, структуры
302Найдено, временное перемещениеВременная акция, техническая недоступность раздела
307Временный редирект с сохранением метода запросаВременное перенаправление форм и API
308Постоянный редирект с сохранением метода запросаПостоянное перенаправление, где важен метод POST

Для SEO основное различие — между постоянным и временным перенаправлением. При 301 поисковик понимает, что старый адрес больше не актуален. При 302 он может продолжать держать в индексе старый URL.

Когда нужно настроить редиректы

  • Переход с HTTP на HTTPS.
  • Выбор главного зеркала: с www или без.
  • Смена домена или переезд на новый.
  • Изменение структуры адресов: новые ЧПУ, перенос разделов.
  • Объединение страниц с похожим содержанием.
  • Удаление товаров или услуг, у которых есть близкая замена.
  • Приведение адресов к единому виду: со слешем в конце или без.

Когда редирект не нужен

Если страница удалена и замены нет, правильнее отдать код 404 или 410, чем перенаправлять на главную. Массовые редиректы на главную поисковики могут расценивать как «мягкую» 404, и пользы от них нет.

Htaccess редирект: настройка на Apache

На хостингах с Apache редиректы чаще всего прописывают в файле .htaccess в корне сайта. Перед любыми изменениями сохраните копию файла: одна ошибка в синтаксисе приводит к ошибке 500 на всём сайте.

Редирект одной страницы

Простейший вариант — директива Redirect из модуля mod_alias:

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

Если на сайте уже используется mod_rewrite, а в WordPress и 1С-Битрикс это так, надёжнее писать правила через него, чтобы не смешивать два модуля:

RewriteEngine On
RewriteRule ^old-page/?$ /new-page/ [R=301,L]

Редирект с HTTP на HTTPS

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Если сайт работает за прокси-сервером или балансировщиком, который сам принимает HTTPS, переменная HTTPS может быть всегда выключена, и правило создаст бесконечный цикл. В этом случае проверяют заголовок, который передаёт прокси, например X-Forwarded-Proto, или настраивают редирект на уровне прокси. Уточните схему у хостинга.

Редирект с www на домен без www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Слеш в конце адреса

Адреса /catalog и /catalog/ для сервера — разные страницы. Если обе открываются с кодом 200, появляются дубли. Выберите один вариант и перенаправляйте на него. Правило для Apache, которое добавляет слеш к адресам, не являющимся файлами:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ /$1/ [R=301,L]

В WordPress формат слеша задаётся структурой постоянных ссылок, и движок сам перенаправляет на правильный вариант. В 1С-Битрикс поведение зависит от настроек компонентов и шаблонов ЧПУ, поэтому правило на сервере проверяют на разных типах страниц: разделах, товарах, фильтрах.

Порядок правил

Правила выполняются сверху вниз. Размещайте собственные редиректы выше блока CMS: в WordPress — выше строки «# BEGIN WordPress», в 1С-Битрикс — выше правил, которые передают запросы в /bitrix/urlrewrite.php. Иначе CMS перехватит запрос раньше.

Редирект с домена на домен

Смена домена — самый ответственный сценарий. Ошибка здесь может стоить значительной части поискового трафика.

Правило для Apache

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.ru$ [NC]
RewriteRule ^(.*)$ https://new-domain.ru/$1 [R=301,L]

Так страница old-domain.ru/catalog/item/ ведёт на new-domain.ru/catalog/item/, а не на главную нового сайта.

Пошаговый план переезда

  1. Подготовьте новый сайт на новом домене и закройте его от индексации до переключения.
  2. Составьте таблицу соответствия старых и новых адресов, если структура меняется.
  3. Выпустите SSL-сертификаты для обоих доменов: иначе редирект со старого HTTPS-адреса не сработает, браузер покажет ошибку сертификата.
  4. Откройте новый сайт для индексации и включите редиректы.
  5. Добавьте новый домен в Яндекс Вебмастер и Google Search Console, подтвердите права.
  6. В Яндекс Вебмастере воспользуйтесь инструментом переезда сайта, в Search Console — инструментом смены адреса.
  7. Обновите ссылки в рекламе, справочниках, соцсетях и карточках организации.
  8. Сохраняйте старый домен и редиректы как можно дольше, минимум несколько месяцев, а лучше постоянно.

Подробнее о переезде на другой сервер — в статье перенос сайта на другой хостинг.

Как настроить редиректы в nginx

На VPS и выделенных серверах часто работает nginx, и .htaccess он не читает. Правила пишутся в конфигурации сервера.

HTTP на HTTPS и главное зеркало

server {
    listen 80;
    server_name example.ru www.example.ru;
    return 301 https://example.ru$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example.ru;
    # здесь директивы ssl_certificate и ssl_certificate_key
    return 301 https://example.ru$request_uri;
}

Первый блок переводит весь HTTP-трафик на HTTPS-версию без www, второй — HTTPS-запросы с www. Основной блок server для example.ru на порту 443 остаётся без изменений.

Редирект отдельной страницы

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

Массовые редиректы через map

Когда адресов много, удобнее карта соответствий. Блок map размещается на уровне http, а проверка — внутри server:

map $uri $new_uri {
    default "";
    /old-1/ /new-1/;
    /old-2/ /new-2/;
}

server {
    # остальные директивы
    if ($new_uri) {
        return 301 $new_uri;
    }
}

Применение изменений

После правки конфигурации проверьте синтаксис и перезагрузите nginx:

nginx -t
systemctl reload nginx

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

Битрикс редиректы: варианты настройки

В 1С-Битрикс редиректы делают несколькими способами, и выбор зависит от сервера и задачи.

Через .htaccess

На Apache правила прописывают в .htaccess в корне сайта, выше стандартного блока, который передаёт запросы в /bitrix/urlrewrite.php. Это самый надёжный вариант для HTTPS, зеркала и массовых переносов.

Через nginx на виртуальной машине Битрикс

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

В коде

Для редиректов, которые зависят от логики, например при удалении товара с переходом в его раздел, используют функцию LocalRedirect с указанием кода:

LocalRedirect('/catalog/new-section/', false, '301 Moved permanently');

Модули из Маркетплейса

Для управления редиректами из админки есть модули в Маркетплейсе 1С-Битрикс: список правил, импорт из таблицы, журнал 404. Удобно, когда контент-менеджеры сами переносят страницы. При большом количестве правил серверный вариант работает быстрее.

Особенность: urlrewrite.php

Файл urlrewrite.php отвечает за обработку ЧПУ, а не за редиректы. Правила в нём сопоставляют адреса с компонентами, но не отправляют код 301. Путать эти механизмы не стоит.

Редиректы в WordPress

Встроенные механизмы

WordPress сам перенаправляет со старого адреса записи, если изменить её ярлык после публикации: старый ярлык сохраняется, и посетитель попадает на новый адрес. Для переезда на HTTPS в разделе «Настройки → Общие» меняют адрес WordPress и адрес сайта, но серверный редирект всё равно нужно настроить отдельно.

Плагины

Для ручного управления используют плагин Redirection или модуль перенаправлений в Rank Math. В них можно создать правило, выбрать код 301, импортировать список адресов и отслеживать ошибки 404, чтобы вовремя добавлять недостающие редиректы.

Когда лучше сервер

Для HTTPS, зеркала www и смены домена используйте .htaccess или nginx. Плагин срабатывает только после загрузки WordPress, а серверное правило — сразу, до выполнения PHP. Это быстрее и не зависит от работоспособности плагинов.

Как проверить редирект

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

Проверка через curl

curl -I http://example.ru/old-page/

В ответе должен быть код 301 и заголовок Location с новым адресом. Чтобы увидеть всю цепочку переходов, добавьте ключ -L:

curl -sIL http://example.ru/old-page/

Другие способы

  • Инструмент проверки ответа сервера в Яндекс Вебмастере.
  • Панель разработчика браузера, вкладка сети с включённым сохранением журнала.
  • Онлайн-сервисы проверки кода ответа.
  • Краулеры сайта, которые находят цепочки и циклы по всему сайту.

Что проверять

  1. Код ответа — 301, а не 302.
  2. Один переход, без цепочек.
  3. Конечная страница отвечает кодом 200.
  4. Все четыре варианта главной — http, https, с www и без — ведут на одно главное зеркало.
  5. Внутренние ссылки сайта ведут сразу на новые адреса, а не через редирект.

Проверка после переезда всего сайта

Когда меняется домен или структура, проверять адреса по одному бессмысленно. Возьмите полный список старых URL: из прежней карты сайта, из отчётов Вебмастера о страницах в поиске и из аналитики с посещаемыми страницами. Прогоните этот список через краулер или скрипт и отфильтруйте всё, что отвечает не 301 с одним переходом на страницу с кодом 200. Отдельно проверьте адреса с GET-параметрами, страницы пагинации и файлы, на которые могут вести внешние ссылки: PDF-каталоги, прайсы, изображения. Если сайт большой и переезд затрагивает тысячи страниц, такую проверку разумно провести в рамках технического аудита.

Сценарии из практики

Переход на HTTPS

Сертификат установлен, сайт открывается по https, но старые http-адреса продолжают отвечать кодом 200. Поисковик видит две копии сайта. Решение — серверное правило 301 с HTTP на HTTPS, обновление адреса сайта в настройках CMS, замена внутренних ссылок и ресурсов на https и проверка, что на страницах не осталось смешанного содержимого.

Смена структуры каталога

Интернет-магазин переименовал разделы, и адреса товаров изменились. Если не настроить редиректы, товары из выдачи ведут на 404. Порядок действий: выгрузить старые адреса из карты сайта или Вебмастера, сопоставить их с новыми по артикулу или идентификатору, сформировать правила и загрузить их на сервер или в модуль редиректов. Сопоставление по идентификатору надёжнее ручного, когда товаров тысячи.

Объединение похожих страниц

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

Удаление товара

Товар снят с производства. Если есть прямая замена, редирект ведёт на неё; если нет — на раздел каталога или карточка остаётся с пометкой «нет в наличии» и ссылками на аналоги. Отправлять все удалённые товары на главную не стоит.

Редиректы и SEO после изменений

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

Что делать в первые недели

  • Обновить карту сайта: в ней должны быть только новые адреса с кодом 200.
  • Проверить канонические адреса на страницах: они не должны указывать на старые URL.
  • Заменить внутренние ссылки в меню, текстах и шаблонах на новые адреса.
  • Следить за отчётами об ошибках и исключённых страницах в Вебмастере.
  • Отправить важные новые страницы на переобход.

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

Типичные ошибки

  • Все старые страницы на главную. Посетитель не находит нужное, поисковик считает это «мягкой» 404.
  • Цепочки. http → https → www → без www → новая страница. Каждый лишний шаг замедляет загрузку и расходует краулинговый бюджет.
  • Циклы. Правила противоречат друг другу, и браузер показывает ошибку слишком многих перенаправлений.
  • Временный 302 вместо 301. Старый адрес может надолго остаться в индексе.
  • Редиректы в CMS и на сервере одновременно. Они конфликтуют и создают цепочки.
  • Удаление редиректов через месяц. Ссылки на старые адреса живут годами.
  • Отсутствие SSL на старом домене. Редирект с https-адреса не срабатывает.

Чек-лист

  • Составлена таблица старых и новых адресов.
  • Правила размещены выше блока CMS в .htaccess или в конфигурации nginx.
  • Все варианты главной ведут на одно зеркало за один переход.
  • Коды ответа — 301, конечные страницы отвечают 200.
  • Внутренние ссылки, карта сайта и канонические адреса обновлены.
  • В Вебмастере и Search Console отражена смена адресов.
  • Настроено отслеживание 404 после изменений.

Частые вопросы

Что такое 301 редирект простыми словами?

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

Как сделать редирект одной страницы?

В .htaccess — директивой Redirect 301 или правилом RewriteRule, в nginx — через location с return 301, в WordPress — плагином или модулем Rank Math.

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

Прописать правило на старом домене, которое переносит все адреса с сохранением пути, и сообщить о переезде в Яндекс Вебмастере и Search Console.

Как сделать редирект с HTTP на HTTPS?

На Apache — правилом с условием RewriteCond %{HTTPS} off, на nginx — отдельным блоком server для порта 80 с return 301.

Как проверить редирект?

Командой curl -I, инструментом проверки ответа сервера в Яндекс Вебмастере или вкладкой сети в браузере. Для массовой проверки сотен адресов удобнее краулер или скрипт, который пройдёт по списку и сохранит коды ответа и конечные адреса в таблицу.

Где настраивать редиректы в Битрикс?

В .htaccess или nginx для глобальных правил, функцией LocalRedirect для логики в коде, модулями из Маркетплейса для управления из админки.

Передаёт ли 301 редирект позиции новой странице?

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

Как долго держать редиректы?

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

Почему после редиректа ошибка слишком многих перенаправлений?

Правила противоречат друг другу, например CMS перенаправляет на www, а сервер — обратно. Проверьте все места, где настроены редиректы, и оставьте одно.

Влияет ли редирект на скорость сайта?

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

Можно ли настроить редирект без доступа к серверу?

Да, средствами CMS: плагином в WordPress или модулем в 1С-Битрикс. Для отдельных страниц этого достаточно. Для HTTPS и смены домена доступ к .htaccess, конфигурации nginx или панели хостинга всё же понадобится.

Чем 301 отличается от 302?

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

Итог

301 редирект сохраняет трафик и позиции при смене протокола, домена или структуры сайта. Главное правило — каждый старый адрес одним переходом ведёт на близкую по смыслу новую страницу, без цепочек и циклов.

Глобальные правила настраивайте на сервере через .htaccess или nginx, точечные — средствами CMS. После любых изменений проверяйте коды ответа и следите за ошибками 404 в Вебмастере.

Если вы переносите сайт, меняете домен или структуру адресов, я как частный разработчик на WordPress и 1С-Битрикс составлю карту редиректов, настрою их на сервере и проверю, чтобы сайт не потерял позиции. Работаю напрямую, без посредников — подробности на странице переноса сайта.

Что будем искать? Например,Продвижение