301 или 302 редирект: какой выбрать и когда это важно для SEO
Редирект отправляет посетителей и поисковые системы с одного адреса на другой. Для человека результат выглядит одинаково, какой бы тип вы ни выбрали. Для поисковика тип — это сигнал: «страница переехала навсегда» или «страница временно в другом месте». Неверный выбор редко ломает сайт за одну ночь, но может замедлить перенос позиций на новый адрес и повлиять на то, какой URL Google показывает в выдаче.
301 и 302 — по одной фразе
- 301 Moved Permanently — старого адреса больше нет, отныне используйте новый. Поисковики воспринимают это как сильный сигнал, что индексировать и считать каноническим нужно адрес назначения.
- 302 Found (временный) — содержимое временно находится по другому адресу, главным остаётся исходный URL. Поисковики склонны оставлять в индексе исходный адрес.
Меняете URL и не собираетесь возвращать старый — ставьте 301. Вернётесь (страница обслуживания, короткая акция, A/B-тест, временно отсутствующий товар) — 302.
Все типы редиректов на одной схеме
| Тип | Смысл | Метод запроса при переходе | Типичное применение |
|---|---|---|---|
| 301 | Постоянный | Браузер может сменить POST на GET | Смена URL, переезд домена, HTTP→HTTPS |
| 302 | Временный | Браузер может сменить POST на GET | Временный перенос, гео- и языковая маршрутизация, тесты |
| 303 | Смотрите другой | Всегда GET | После отправки формы (post/redirect/get) |
| 307 | Временный | Метод и тело сохраняются | Временные редиректы API и форм |
| 308 | Постоянный | Метод и тело сохраняются | Постоянный перенос, где POST должен остаться POST |
| Meta refresh | HTML-тег, задержка 0 и больше | — | Когда нет доступа к настройкам сервера |
| JavaScript | window.location в скрипте | — | Одностраничные приложения, крайний случай |
Для SEO документация Google относит 301 и 308 к постоянным, а 302, 303 и 307 — к временным. Разница между 301 и 308 (или 302 и 307) важна браузерам и API, а не позициям.
Как Google обрабатывает редиректы
Google называет серверные постоянные редиректы сильным сигналом для выбора канонического адреса, а временные — слабым. На практике:
- При 301/308 Google обычно заменяет в выдаче старый адрес новым и переносит на него сигналы, например ссылки.
- При 302/307 Google обычно какое-то время продолжает показывать старый адрес — вы же сказали, что переезд временный.
- Если 302 стоит долго, а адрес назначения выглядит постоянной заменой, Google со временем может начать считать его постоянным. Полагаться на это не стоит: имеете в виду «навсегда» — так и скажите кодом 301.
- Meta refresh с нулевой задержкой обычно понимается как постоянный редирект, с задержкой — как временный. JavaScript-редиректы срабатывают только после рендеринга страницы, а он происходит позже и менее надёжно. Используйте оба варианта, только если серверный редирект невозможен.
Редирект — лишь один из сигналов канонизации наряду с тегом rel=canonical, внутренними ссылками и картой сайта. Держите их согласованными; как они работают вместе, объясняет статья о каноническом адресе.
Когда выбор действительно важен
- Переезд сайта или смена домена — всегда 301 (или 308). 302 здесь может дольше держать старые адреса в выдаче и задержать перенос сигналов.
- HTTP → HTTPS и www ↔ без www — 301, по одному на адрес, сразу на итоговую версию. Это постоянные решения.
- Удалённый товар или статья с близкой заменой — 301 на замену. Если настоящего аналога нет, 404 или 410 честнее, чем редирект на главную, который Google всё равно может счесть «мягкой 404».
- Сезонные страницы или товары, которые вернутся — 302, а лучше оставить страницу открытой с пометкой.
- Определение языка или страны — временные редиректы встречаются часто, но не уводите принудительно поисковых роботов от языковых версий; связывайте версии через hreflang.
Цепочки и циклы
Цепочка — редирект, ведущий на другой редирект: http://example.com/page → https://example.com/page → https://www.example.com/page → https://www.example.com/new-page. Каждый шаг — лишний круг запроса для посетителя. Google проходит ограниченное число переходов (в документации упоминается до 10) и на длинной цепочке может остановиться раньше конца. Лечится так: каждый старый адрес ведёт сразу на итоговый, а внутренние ссылки обновляются на него.
Цикл — цепочка, возвращающаяся в начало: A → B → A. Браузер останавливается с ошибкой «слишком много переадресаций», и страница недоступна никому, включая роботов. Обычно циклы возникают, когда два правила противоречат друг другу: например, CDN принудительно ходит по HTTP, а сервер — принудительно на HTTPS.
Как настроить 301
Редиректы настраивают на сервере или в CMS, а не в коде страницы. Для двух самых распространённых веб-серверов:
# Apache (.htaccess)
Redirect 301 /old-page/ https://example.com/new-page/
# Nginx
location = /old-page/ { return 301 https://example.com/new-page/; }
В WordPress и большинстве других CMS то же самое делает плагин редиректов или встроенный менеджер переадресаций — без правки серверных файлов. Если сайт стоит за CDN, его правила редиректов срабатывают раньше, чем запрос дойдёт до вашего сервера: удобно, но помните о них при отладке. При переезде всего домена перенаправляйте каждый путь на тот же путь на новом домене, а не всё на главную. Каким бы способом вы ни пользовались, проверьте результат снаружи: опечатка в правиле может незаметно отдавать 302, создать цикл или перенаправить страницы, которые вы трогать не собирались.
Как проверить редирект
Не верьте адресной строке: браузеры агрессивно кэшируют 301, и после смены правила вы ещё долго можете видеть старое поведение. Проверяйте на стороне сервера:
- Проверка редиректов проходит всю цепочку и показывает каждый шаг с кодом — видно 302 там, где ждали 301, лишние переходы и циклы.
- Проверка кода ответа показывает точный код одного адреса и конечную точку.
- Из терминала:
curl -I https://example.com/old-pageвыведет код и заголовокLocation.
Пошаговый разбор цепочек и поиск их источников — в статье как проверить редиректы и цепочки переадресаций.
Чек-лист переезда
- Выгрузите полный список старых адресов: из краулера, карты сайта, аналитики и Search Console (сначала страницы с трафиком и обратными ссылками).
- Сопоставьте каждому старому адресу ближайший новый, один к одному. Не отправляйте всё на главную.
- Настройте 301 на сервере, а не через meta refresh или JavaScript.
- Объединяйте смену протокола, хоста и пути в один переход, где это возможно.
- Обновите внутренние ссылки, canonical, hreflang и карту сайта на новые адреса — пусть редиректы обслуживают только внешние ссылки и закладки.
- Проверьте выборку старых адресов (в том числе с параметрами и слешем на конце) проверкой редиректов до запуска и сразу после.
- При смене домена воспользуйтесь инструментом «Изменение адреса» в Google Search Console и держите редиректы долго — Google рекомендует не меньше года.
- Следите в Search Console за ошибками 404 и ошибками переадресации в следующие недели.