301 редирект: что это и как настроить
301 редирект - это постоянное перенаправление со старого адреса на новый: браузер сразу открывает новую страницу, а поисковики передают ей позиции и накопленный вес старой. Его настраивают при смене домена, переходе на https, изменении адресов страниц и склейке дублей. Ниже готовые правила для .htaccess, nginx, WordPress и Битрикса и способы проверить результат.

Содержание
Что такое 301 редирект и когда он нужен
Когда браузер или робот запрашивает адрес, сервер отвечает кодом. Код 200 значит "вот страница", 404 значит "такой нет", а 301 редирект означает "страница переехала навсегда, вот новый адрес". Новый адрес передаётся в заголовке Location, браузер переходит по нему автоматически, а поисковик со временем заменяет в индексе старый адрес новым.

Типичные случаи, когда без 301 не обойтись:
- Переход с http на https. Все адреса с http должны вести на https-версию. Про сертификат есть статья SSL-сертификат для сайта, а личный опыт переезда описан в материале переезд с http на https.
- Главное зеркало. Вариант с www перенаправляется на вариант без www или наоборот.
- Смена домена. Каждая страница старого домена ведёт на такую же страницу нового, с сохранением пути.
- Новые адреса страниц. Сменили структуру или ЧПУ, старые ссылки из поиска и с других сайтов не должны вести в 404.
- Склейка дублей. Одна страница открывалась по нескольким адресам: со слешем и без, с
index.php, в разном регистре. - Удалённая страница с заменой. Товар снят, но есть похожий или категория.
301 и 302 редирект: разница
Оба кода перенаправляют посетителя, разница в том, что они говорят поисковику.
| Код | Значение | Когда использовать |
|---|---|---|
| 301 | Перемещено навсегда | Смена домена, https, новые адреса, склейка дублей |
| 302 | Найдено, временно в другом месте | Акция на неделю, технические работы, A/B-тест |
| 307 | Временный, с сохранением метода запроса | Формы и API, где важно не превратить POST в GET |
| 308 | Постоянный, с сохранением метода | Как 301, но для запросов с отправкой данных |
При 302 поисковик оставляет в индексе старый адрес и ждёт, что страница вернётся. Если поставить 302 при переезде сайта, склейка затянется или пройдёт не так, как вы ждёте. Для страниц, которые переехали насовсем, всегда выбирайте 301. Общий обзор видов перенаправлений есть в статье что такое редирект.
301 редирект в .htaccess
Файл .htaccess работает на хостингах с веб-сервером Apache, это большинство виртуальных хостингов. Он лежит в корне сайта. Перед правкой сохраните копию: одна ошибка в файле даёт ошибку 500 на всём сайте.
Одна страница на другую
Redirect 301 /old-page/ https://example.ru/new-page/С http на https и с www на без www
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://example.ru/$1 [R=301,L]Это правило делает переход за один шаг: и http://www.example.ru, и http://example.ru, и https://www.example.ru сразу попадают на https://example.ru без промежуточных остановок.
Если перед Apache стоит nginx (так устроены многие хостинги и панели), Apache может не видеть https и правило уйдёт в бесконечный цикл. Тогда вместо %{HTTPS} off проверяйте заголовок: RewriteCond %{HTTP:X-Forwarded-Proto} !https.
Смена домена с сохранением пути
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old-site\.ru$ [NC]
RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L]301 редирект в nginx
На VPS и своих серверах часто стоит только nginx, а .htaccess он не читает. Правила пишут в конфигурацию сайта, обычно в /etc/nginx/sites-available/ или в разделе настроек панели.
server {
listen 80;
server_name example.ru www.example.ru;
return 301 https://example.ru$request_uri;
}
server {
listen 443 ssl;
server_name example.ru;
location = /old-page/ {
return 301 /new-page/;
}
}Переменная $request_uri сохраняет путь и параметры, поэтому любая страница старого адреса откроется на новом месте. После правки выполните nginx -t для проверки синтаксиса и перезагрузите конфигурацию командой systemctl reload nginx.

Редирект в WordPress, Битриксе и у хостинга
Если доступа к конфигурации сервера нет или нужно перенаправить пару страниц, хватит средств CMS или панели хостинга.
WordPress
Для отдельных страниц удобнее плагин, например Redirection: в нём добавляют пары "Исходный URL - Целевой URL", выбирают код 301 и смотрят журнал 404, чтобы ловить битые адреса. WordPress сам делает 301, если поменять ярлык записи, но только пока помнит старый адрес. Переход на https и склейку зеркал лучше делать на уровне сервера, а не плагином: так быстрее и надёжнее. Сменить адрес сайта в WordPress нужно в "Настройки - Общие", иначе ссылки внутри сайта останутся старыми.
Как настроить 301 редирект в Битриксе
На сайтах 1С-Битрикс работает тот же .htaccess (если сервер Apache) или конфиг nginx на виртуальной машине Битрикса. Для единичных страниц можно использовать функцию в коде страницы:
<?php
LocalRedirect("/new-page/", false, "301 Moved permanently");
?>В некоторых редакциях есть модули SEO с разделом для перенаправлений, а также сторонние решения из Маркетплейса. Если сайт на Битриксе с каталогом и фильтрами, загляните в статью SEO страниц фильтров в Битриксе.
Через панель хостинга
Многие хостинги дают настроить редирект для домена без правки файлов: в панели ищите раздел "Домены", "Перенаправления" или "Редиректы". Проверьте, что выбран именно постоянный тип (301) и включено сохранение пути. Не уверены, на какой CMS сайт, поможет статья как узнать CMS сайта.
Цепочки и циклы редиректов
Цепочка появляется, когда адрес перенаправляет на другой, тот на третий, и только потом открывается страница: http://www.example.ru → https://www.example.ru → https://example.ru. Каждый шаг замедляет загрузку, а роботы проходят ограниченное число переходов и могут не дойти до конца.
- Делайте редирект сразу на конечный адрес одним правилом.
- После смены структуры обновите старые редиректы: если
/a/вёл на/b/, а теперь/b/ведёт на/c/, перепишите первое правило на/c/. - Меняйте внутренние ссылки, меню и sitemap на новые адреса, а не полагайтесь на редирект.
Цикл - это когда адреса перенаправляют друг на друга по кругу. Браузер показывает ошибку "Слишком много переадресаций", сайт не открывается вовсе. Частая причина - правило https за прокси, о котором говорилось выше.

Как проверить 301 редирект
Проверять нужно код ответа, а не только то, что страница открылась: 302 и JavaScript-переход внешне выглядят так же.
- В Яндекс Вебмастере откройте "Инструменты - Проверка ответа сервера".
- Вставьте старый адрес и нажмите "Проверить".
- Убедитесь, что код ответа 301, а в поле адреса перенаправления указан нужный адрес.
- Проверьте конечный адрес отдельно: он должен отдавать 200.
Из командной строки то же самое показывает curl -I http://example.ru/old-page/: в ответе будут строки HTTP/1.1 301 и Location. Флаг -L проходит всю цепочку и показывает каждый шаг. В браузере откройте инструменты разработчика (F12), вкладку "Network" ("Сеть"), включите сохранение журнала и обновите страницу: в колонке статуса будет 301.
Если сайт ещё не подключён к Вебмастеру, начните с инструкции как добавить сайт в Яндекс Вебмастер. Когда редиректы поставлены, через несколько недель в отчёте об индексе старые адреса уйдут в исключённые с причиной "Редирект", это нормально. Как следить за этим, рассказано в статье как проверить индексацию сайта.
Частые ошибки
- Все старые страницы перенаправлены на главную. Поисковики считают такие редиректы ошибкой 404, вес не передаётся. Ведите каждую страницу на ближайшую по смыслу.
- Редирект снят через месяц после переезда. Держите его постоянно, по крайней мере год, пока старые ссылки живут на других сайтах.
- Перенаправление сделано через JavaScript или мета-тег refresh вместо серверного 301.
- Canonical указывает на один адрес, а редирект ведёт на другой. Когда страница доступна, но должна склеиться с другой, иногда достаточно тега canonical, а смешивать сигналы не стоит.
Частые вопросы
Как проверить 301 редирект онлайн?
В Яндекс Вебмастере есть бесплатный инструмент "Проверка ответа сервера": он покажет код ответа и адрес перенаправления. Подходят и сторонние сервисы проверки заголовков.
Передаёт ли 301 редирект позиции?
Да, поисковики переносят сигналы старой страницы на новую, если содержание похоже. Полная склейка занимает от нескольких недель.
Сколько держать 301 редирект после переезда?
Постоянно или минимум год. Старые адреса остаются в закладках, на других сайтах и в кэше, и без редиректа эти переходы будут теряться.
Почему после настройки редиректа сайт не открывается?
Скорее всего, получился цикл: адреса перенаправляют друг на друга. Проверьте правила на https за прокси и уберите дублирующие редиректы в CMS и на сервере.
Нужно ли делать редирект со страницы со слешем на без слеша?
Да, если страница открывается по обоим вариантам. Выберите один формат для всего сайта и перенаправьте второй на него одним правилом.



