301 редирект: что это, чем отличается от 302 и как его настроить
301 редирект — самый частый инструмент при переезде сайта, смене адресов страниц и переходе на https. Разбираем простыми словами, что он делает, чем отличается от 302 и других кодов, как его настроить на популярных серверах и движках и как убедиться, что настроено правильно.
Что такое 301 редирект
Когда браузер или поисковый робот запрашивает страницу, сервер отвечает кодом. 200 — «вот страница», 404 — «такой нет». А код 301 Moved Permanently означает «страница переехала навсегда, вот её новый адрес». Браузер сразу открывает новый адрес, посетитель этого почти не замечает.
Главное в 301 — слово «навсегда». Поисковики понимают, что старого адреса больше не будет: заменяют его в выдаче на новый и переносят на новую страницу накопленные позиции и вес ссылок. Именно поэтому при переездах нужен 301, а не любой другой редирект.
301, 302, 307, 308 — в чём разница
| Код | Что значит | Когда использовать |
|---|---|---|
| 301 Moved Permanently | переехала навсегда | смена адреса страницы, домена, переход на https, склейка www |
| 308 Permanent Redirect | навсегда, и метод запроса сохраняется | то же, что 301, когда важно, чтобы отправка формы (POST) не превратилась в обычный переход |
| 302 Found | временно по другому адресу | акция, страница на доработке, выбор языка или города |
| 307 Temporary Redirect | временно, метод сохраняется | то же, что 302, для отправки форм и API |
| 303 See Other | смотрите другую страницу | после отправки формы — переход на страницу «спасибо» |
Для поисковиков важно деление на постоянные (301, 308) и временные (302, 307). По постоянному редиректу Яндекс и Google со временем оставляют в индексе только новый адрес. По временному — сохраняют старый и считают, что скоро всё вернётся. Если переезд постоянный, а редирект временный, новый адрес может долго не набирать позиций.
Когда нужен 301 редирект
- Переход на https — все адреса
http://ведут наhttps://. - Склейка зеркал —
www.site.ruиsite.ruэто для поисковика два разных сайта; один вариант должен вести на другой. - Смена домена — каждая страница старого домена ведёт на ту же страницу нового.
- Новая структура адресов — после смены движка или переделки каталога.
- Удалённые страницы — снятый с продажи товар ведёт на похожий товар или раздел, а не в 404.
- Дубли — один и тот же адрес со слешем и без, с
index.phpи без.
Как настроить 301 редирект
Apache: файл .htaccess
Большинство виртуальных хостингов работает на Apache, и редиректы настраиваются в файле .htaccess в
корне сайта. Одна страница на другую:
Redirect 301 /old-page/ https://site.ru/new-page/
Весь сайт на https и без www — одним шагом, без цепочки:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
Весь старый домен на новый с сохранением адресов страниц:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old-site\.ru$ [NC]
RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L]
Важно: флаг R без числа означает 302, а не 301 — код нужно писать явно.
nginx
server {
listen 80;
server_name site.ru www.site.ru;
return 301 https://site.ru$request_uri;
}
location = /old-page/ {
return 301 /new-page/;
}
После правки конфигурации nginx нужно проверить и перечитать: nginx -t и
nginx -s reload.
PHP
Если редирект зависит от логики сайта, его отдают из кода — до вывода любой страницы:
header('Location: https://site.ru/new-page/', true, 301);
exit;
Без третьего параметра 301 PHP отправит 302.
WordPress, 1С-Битрикс, Тильда
- WordPress — плагином Redirection или правилами в
.htaccess; в плагине проверьте, что выбран тип 301. - 1С-Битрикс — правилами в
.htaccessв корне сайта; для https и склейки www это надёжнее, чем настройки внутри движка. - Тильда — в настройках сайта есть раздел для 301-редиректов: старый адрес и новый, построчно.
Частые ошибки
- Цепочки. http → https → www → слеш в конце — четыре адреса вместо одного. Каждый шаг замедляет открытие страницы, а длинные цепочки роботы проходят не до конца. Правило должно вести сразу на окончательный адрес.
- Циклы. Два правила противоречат друг другу, и адрес ведёт сам на себя. Браузер пишет «слишком много переадресаций», сайт не открывается вообще. Частая причина — https на стороне Cloudflare или хостинга вместе с правилом https в самом сайте.
- Всё на главную. Удобно, но поисковики считают это «мягкой 404» и не переносят позиции.
- Редирект на 404. Правило ведёт на адрес, которого нет: опечатка или страницу удалили позже.
- Убрали редиректы через месяц. Старые ссылки на других сайтах, в закладках и рассылках живут годами — правила переезда лучше не удалять вовсе.
Как проверить редирект
Браузер для проверки не подходит: он запоминает 301 и в следующий раз переходит по нему без запроса к серверу. Удобнее проверять со стороны:
- один адрес — на странице проверки редиректов: покажем каждый шаг цепочки с кодом;
- сотни адресов после переезда — массовой проверкой; как она устроена и что искать в результате, мы разобрали в статье «Массовая проверка редиректов»;
- из консоли —
curl -I https://site.ru/old-page/покажет код и заголовокLocation.
А чтобы узнать, что редирект или страница сломались после очередного обновления сайта, поставьте ключевые страницы на мониторинг доступности: SiteFalcon проверяет их круглосуточно и присылает уведомление в Telegram, если страница перестала открываться. Уведомления — на тарифах от 290 ₽ в месяц, первые 3 дня бесплатно.
Частые вопросы
Сколько времени поисковики переносят позиции после 301 редиректа?
Обычно от нескольких дней до нескольких недель — пока робот заново обойдёт старые адреса. Всё это время редиректы должны работать; удалять их не нужно и после переклейки.
Что лучше для переезда: 301 или 308?
Для поисковиков оба — постоянные. 301 — привычный вариант для страниц сайта. 308 нужен, когда важно сохранить метод запроса, например чтобы отправка формы не превратилась в обычный переход.
Почему браузер всё ещё перекидывает по старому редиректу?
Браузеры запоминают 301 надолго и не спрашивают сервер повторно. Проверьте в режиме инкогнито или внешним инструментом — так видно, что отвечает сервер на самом деле.
Можно ли сделать 301 редирект без доступа к серверу?
Иногда да: в WordPress — плагином, в Тильде и других конструкторах — в настройках сайта. Но склейку www и переход на https надёжнее настраивать на уровне сервера или хостинга.