302 редирект — это временное перенаправление: сервер сообщает браузеру и поисковому роботу, что страница сейчас доступна по другому адресу, но исходный URL остаётся действующим и должен сохраниться в индексе. Именно этим 302 отличается от 301, и именно на этом отличии чаще всего ошибаются. Ниже — таблица выбора кода под конкретную ситуацию, примеры настройки для Apache и nginx, способ проверить код одной командой и разбор того, что происходит при перепутанном редиректе.
Что такое 302 редирект простыми словами
Когда браузер запрашивает страницу, сервер отвечает кодом состояния. Код 302 (Found) означает: «сейчас смотрите вот здесь, но адрес не изменился». Посетитель попадает на другую страницу автоматически и обычно ничего не замечает — визуально 301 и 302 для человека неразличимы.
Разница целиком в том, как код читает поисковик. При 301 он постепенно заменяет в выдаче старый URL новым и переносит на него накопленные сигналы. При 302 он оставляет в индексе исходный адрес: раз перенаправление временное, значит скоро страница вернётся на место, и переписывать выдачу незачем.
Отсюда простое следствие, вокруг которого построена вся тема: код выбирают не по тому, как настроен сервер, а по тому, планируете ли вы вернуться к старому адресу.
301 или 302: таблица выбора кода
Главный вопрос звучит не «что такое 302», а «какой код ставить мне». Разберём по ситуациям:
| Ситуация | Код | Что произойдёт с индексом |
|---|---|---|
| Переезд на новый домен | 301 | Старые адреса заменяются новыми, сигналы переносятся |
| Смена URL страницы навсегда | 301 | То же — новый адрес занимает место старого |
| Склейка зеркал, http → https | 301 | Остаётся одна каноническая версия |
| Товара временно нет в наличии | 302 | Карточка сохраняется в выдаче и вернётся при поступлении |
| Страница на техработах | 302 | Исходный URL не выпадает из индекса |
| A/B-тест двух версий страницы | 302 | В выдаче остаётся основная версия |
| Акция или сезонная подмена на время | 302 | После акции страница возвращается без потерь |
| Страница удалена, замены нет | 410 | Адрес выводится из индекса быстрее, чем редиректом |
Практическое правило: если возврата к старому адресу не планируется — ставьте 301. Сомневаетесь между «временно» и «навсегда»? Спросите себя, вернёте ли вы старый URL в течение пары месяцев. Если ответ «скорее нет» — это 301.
Постоянный переезд со всеми сценариями, кодом и картой соответствия старых и новых адресов разобран отдельно — в гайде про 301 редирект.
Чем 302 отличается от 301 технически
Три отличия, которые видно на практике:
Что остаётся в выдаче. При 301 поисковик со временем показывает новый URL, при 302 — продолжает показывать исходный. Это не задержка индексации и не ошибка, а прямое следствие кода.
Что происходит с сигналами. 301 передаёт накопленный вес целевому адресу. 302 этого не делает намеренно: раз исходная страница остаётся основной, ей и принадлежат ссылки с историей.
Как быстро откатывается. 301 браузеры кэшируют агрессивно — посетитель, который однажды получил постоянный редирект, может продолжать уходить на новый адрес даже после того, как вы убрали правило. 302 не кэшируется по умолчанию, поэтому для временных ситуаций он ещё и безопаснее: снял правило — всё вернулось сразу.
307 и 308: зачем нужны, если есть 301 и 302
В отчётах краулеров и в консоли браузера встречаются ещё два кода. Оба появились, чтобы устранить старую техническую неоднозначность: 301 и 302 некоторые браузеры обрабатывали вольно и меняли метод запроса с POST на GET.
| Код | Постоянный | Метод запроса | Где встречается на практике |
|---|---|---|---|
| 301 | да | может измениться на GET | Переезды, склейка зеркал |
| 302 | нет | может измениться на GET | Временные подмены страниц |
| 307 | нет | сохраняется строго | HSTS-переадресация на https, API и формы |
| 308 | да | сохраняется строго | Постоянные переезды, где важен метод |
Для SEO 307 равнозначен 302, а 308 — 301: поисковики трактуют их парами. Специально переходить на 307/308 ради оптимизации не нужно. Знать о них стоит по другой причине: увидев 307 в отчёте, легко решить, что кто-то настроил лишний редирект, хотя на деле это чаще всего работа HSTS — браузер сам подставляет https, не обращаясь к серверу.
Как настроить 302 редирект
Принцип общий: код указывается явно. Большинство ошибок возникает там, где код не указан вовсе — тогда сервер или CMS подставляют его по своему усмотрению.
Apache (.htaccess)
RewriteEngine On
# Одна страница -> временная замена
Redirect 302 /tovar-123/ https://site.ru/tovar-456/
# Раздел на техработах -> страница-заглушка
RewriteRule ^catalog/(.*)$ /tehrabory/ [R=302,L]
# Всех, кроме своего IP, увести на заглушку (техработы для посетителей)
RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.10$
RewriteCond %{REQUEST_URI} !^/tehrabory/
RewriteRule ^(.*)$ /tehrabory/ [R=302,L]
Ключевой момент — R=302 в флагах. Если написать просто [R,L], Apache по умолчанию отдаст 302, а вот Redirect без кода — наоборот, 302 только в старых конфигурациях. Указывайте код явно всегда, в обоих случаях.
Nginx
# Одна страница -> временная замена
location = /tovar-123/ {
return 302 https://site.ru/tovar-456/;
}
# Раздел на техработах
location /catalog/ {
return 302 /tehrabory/;
}
Здесь ловушка обратная: директива rewrite ... redirect даёт 302, а rewrite ... permanent — 301. Одно слово в конце строки решает, что произойдёт с вашими позициями, поэтому в спорных местах надёжнее писать return с явным числом.
PHP
header('Location: https://site.ru/tovar-456/', true, 302);
exit;
Третий параметр обязателен: без него PHP отдаст 302 по умолчанию, но полагаться на умолчание не стоит — код должен читаться из самой строки. И не забывайте exit, иначе скрипт продолжит выполняться и может отправить лишний вывод.
Без доступа к серверу
Если конфиги недоступны, редирект настраивается через панель хостинга, плагин CMS или встроенные средства конструктора. Здесь важнее другое — знать, где 302 включается сам собой:
- плагины редиректов в CMS часто ставят 302 по умолчанию, пока код не выбран вручную;
- страницы «товар не найден» и «нет в наличии» в коробочных магазинах нередко перенаправляют временным кодом;
- сервисы поддержки и режим техработ включают 302 на весь сайт целиком — и остаются включёнными дольше, чем планировалось;
- балансировщики и CDN добавляют собственные перенаправления поверх ваших.
Именно эта категория даёт большинство неожиданных 302 в отчётах: их никто не настраивал сознательно. Поэтому проверка кодов ответа полезна даже на сайте, где вы вообще не трогали редиректы — особенно после обновления CMS, смены хостинга или подключения CDN.
Отдельного внимания заслуживает связка с кэшированием. Сеть доставки контента и кэш на стороне сервера могут запомнить ответ вместе с кодом и отдавать его посетителям после того, как вы уже поменяли правило. Если после смены кода curl показывает старый ответ, первым делом сбрасывайте кэш на всех уровнях, а уже потом ищите ошибку в конфиге — в половине случаев конфиг в порядке.
Как проверить, какой код отдаёт страница
Самый быстрый способ — одна команда в терминале:
curl -I https://site.ru/staraya-stranica/
В ответе интересны две строки:
HTTP/2 302
location: https://site.ru/novaya-stranica/
Первая — код, вторая — куда именно ведёт перенаправление. Если хотите увидеть всю цепочку целиком, добавьте -L:
curl -sIL https://site.ru/staraya-stranica/ | grep -E "HTTP/|location:"
Так сразу видно, не превратился ли один редирект в цепочку из трёх. Способ надёжнее онлайн-чекеров: часть из них не достукивается до сайтов на некоторых хостингах и показывает ошибку вместо реального ответа.
Массовую проверку удобнее делать иначе: отчёты по кодам ответа есть в Яндекс Вебмастере и Google Search Console, а полную картину по сайту даёт любой десктопный краулер — он покажет все страницы с 302 списком, включая те, о которых вы не знали.
Чем опасен перепутанный код
Ошибка почти всегда одна и та же: 302 там, где нужен 301. Последствия накапливаются постепенно.
Старый адрес остаётся в выдаче. Вы перевели страницу на новый URL, но поисковик продолжает показывать прежний — потому что вы сами сообщили ему кодом, что менять ничего не надо.
Вес не передаётся. Накопленные ссылки и история остаются у старого адреса. Новая страница стартует так, будто у неё нет прошлого.
Два адреса конкурируют между собой. В индексе живут оба URL с одинаковым содержимым — это классическая ситуация дублирования контента, при которой поисковик сам выбирает, какой адрес показать, и выбор редко совпадает с вашим.
Просадка после переезда. При массовой ошибке — например, весь сайт переехал на https через 302 — эффект виден уже в масштабе всего проекта: позиции проседают, а причина неочевидна, потому что визуально сайт работает нормально.
В Вебмастере это выглядит так: страницы, которые вы считаете удалёнными, остаются в разделе «Страницы в поиске», а новые адреса подолгу не появляются. Как устроен этот отчёт и что означают его статусы — в материале про индексацию сайта в Яндексе.
Обратная ошибка: 301 вместо 302
О ней говорят реже, а неприятностей от неё бывает больше. Ситуация типичная для интернет-магазинов: товара временно нет, карточку решили перенаправить на категорию — и поставили постоянный редирект.
Дальше происходит следующее. Поисковик выводит карточку из выдачи и передаёт её сигналы категории — ровно то, о чём его попросили. Товар приходит на склад, вы снимаете правило, но карточка не возвращается на прежние позиции: её адрес уже вычеркнут из индекса, историю она потеряла, набирать вес приходится заново.
Второй слой проблемы — кэш браузера. Постоянный редирект браузеры запоминают надолго, и посетители, которые однажды по нему прошли, продолжают улетать на категорию даже после того, как правило удалено с сервера. Вы видите работающую карточку, а часть аудитории — нет, причём выяснить это по логам сервера сложно: запрос до сервера просто не доходит.
Отсюда практический вывод: у временных ситуаций цена ошибки несимметрична. Лишний 302 там, где нужен был 301, лечится сменой кода и переобходом. Лишний 301 на временной странице приходится расхлёбывать месяцами, а иногда проще завести новый адрес, чем восстанавливать старый.
Как исправить ошибочный 302 на 301
Порядок действий:
- Найдите все временные редиректы. Прогоните сайт краулером или откройте отчёт по кодам ответа в Вебмастере и GSC. Выпишите адреса с кодом 302.
- Отделите нужные от ошибочных. Оставьте 302 там, где ситуация действительно временная: техработы, отсутствие товара, тест. Остальное — кандидаты на замену.
- Замените код. В
.htaccess—R=301вместоR=302, в nginx —return 301илиpermanent, в CMS — переключатель типа редиректа в настройках правила. - Проверьте результат. Той же командой
curl -I: код должен смениться. Заодно убедитесь, что не образовалась цепочка из старого и нового правил. - Отправьте страницы на переобход. В Вебмастере и GSC — вручную, приоритетно для самых важных URL. Без этого замена кода будет учтена, но нескоро.
Полностью выдача перестраивается не мгновенно: поисковику нужно повторно обойти адреса и убедиться, что код изменился. Ускорить помогает переобход и внутренние ссылки на новый адрес.
Чек-лист: выбираем код за минуту
- Вернётесь к старому адресу в ближайшие месяцы? Нет → 301, да → 302.
- Переезд домена, смена структуры URL, переход на https → всегда 301.
- Техработы, тест, временная акция, товар не в наличии → 302.
- Страница удалена и заменить нечем → 410, а не редирект на главную.
- Код в правиле указан явно, а не оставлен на усмотрение сервера?
- В цепочке ровно один переход, без промежуточных адресов?
- После настройки проверили ответ командой
curl -I? - Проверили, не включила ли CMS или плагин собственный редирект поверх вашего?
Что делать дальше
Разовая проверка кодов ответа — часть технического аудита: обычно вместе с редиректами всплывают цепочки, дубли и страницы, о существовании которых владелец сайта не подозревал. Как провести такую проверку самостоятельно, мы разбирали в гайде по техническому аудиту сайта.
Если разбираться в этом самому некогда, посмотрите нашу услугу аудита сайта — перед началом работы мы бесплатно проверяем сайт и показываем, что именно мешает ему расти.