301, 302, 307, 308 — в чём разница и какой редирект когда нужен
Редирект — это ответ сервера «страница теперь по другому адресу». Кодов несколько, и выбор между ними влияет и на SEO (передача веса, индексация), и на корректность работы форм и API. Разберём 4 главных: 301, 302, 307, 308.
Таблица: чем отличаются
| Код | Тип | Метод запроса | Когда использовать |
|---|---|---|---|
| 301 Moved Permanently | Постоянный | Может смениться (POST→GET) | Страница переехала навсегда — основной SEO-редирект |
| 302 Found | Временный | Может смениться (POST→GET) | Временно: A/B-тест, акция, тех. работы |
| 307 Temporary Redirect | Временный | Сохраняется (POST остаётся POST) | Временный переезд, где нельзя терять метод/тело запроса |
| 308 Permanent Redirect | Постоянный | Сохраняется | Постоянный переезд с сохранением метода (например, API) |
Постоянный против временного (ось №1 — для SEO)
- 301 / 308 — постоянные. Говорят поисковику: «переноси сигналы на новый URL». Старый адрес со временем выпадает из индекса, его заменяет новый. Это то, что нужно при переезде страницы, смене URL, склейке
http→httpsилиwww. - 302 / 307 — временные. Поисковик оставляет в индексе исходный URL, потому что вы сказали «это ненадолго». Для постоянного переезда это ошибка: склейка сигналов откладывается, а старый адрес продолжает висеть в выдаче.
Сохранение метода запроса (ось №2 — для форм и API)
Старые 301 и 302 исторически разрешают клиенту сменить метод: браузер после редиректа обычно превращает POST в GET (тело запроса теряется). Для обычных страниц это не проблема — их открывают через GET.
307 и 308 — строгие: метод и тело запроса сохраняются. POST остаётся POST. Это критично, когда редиректится:
- отправка формы (
POST); - эндпоинт API, который принимает
POST/PUT; - любой запрос с телом, который нельзя «уронить» в
GET.
Какой редирект для какой задачи
Сценарии от самых частых к специфичным:
| Задача | Код | Почему |
|---|---|---|
| Страница переехала навсегда, сменился URL | 301 | Постоянный → склеивает сигналы на новый адрес, старый выпадает из индекса |
Смена домена, http→https, склейка www / дублей | 301 | Тот же механизм консолидации; собирайте в один переход до финального URL |
| Удалён товар / истекла акция | 301 на релевантную категорию | Передаёт вес и не плодит 404 — но не на главную (это «мягкая 404») |
| Тех. работы, «скоро вернёмся», сезонная страница | 302 | Временно → поисковик сохраняет исходный URL в индексе |
| A/B-тест, временный показ контента с другого URL | 302 | Не хотим, чтобы движок заменил оригинал тестовым адресом |
Партнёрский / исходящий коммерческий линк через трекер /go/… | 302 (или 307) | Оффер временный и ротируется, трекер-URL не нужно индексировать/склеивать; см. колаут ниже |
Временно перенаправить отправку формы (POST) | 307 | Сохраняет метод и тело запроса — POST остаётся POST |
| API-эндпоинт переехал навсегда | 308 | Постоянный + сохранение метода (POST/PUT не превратятся в GET) |
canonical или редирект?
Коротко: редирект (301) физически уводит на другой URL — старого адреса больше нет. rel="canonical" оставляет все URL рабочими, но указывает поисковику главную версию. Дубли с параметрами (?utm=, сортировка, версия для печати) — это canonical; настоящий переезд страницы — это 301.
Разница тонкая, но важная — разобрали её отдельно: canonical vs редирект — что выбрать и когда.
302 vs 307 на практике
Оба временные; вся разница — в методе запроса:
- 302 — клиент может «переиграть»
POSTвGET(исторически браузеры так и делают). Для обычной навигации по ссылке (GET) это незаметно и нормально. - 307 — строго сохраняет метод и тело:
POSTостаётсяPOST.
На практике:
- Временно перенаправляете обычную страницу или ссылку → 302 (проще и повсеместно понятен).
- Временно перенаправляете
POST(отправка формы, запрос с телом) → 307, иначе данные потеряются при смене наGET. - Нюанс: браузерный 307 генерируется внутренне механизмом HSTS при принудительном
http→https— это не ваш серверный редирект, его настраивать не нужно.
Для SEO выбор между 302 и 307 не важен — оба временные, поисковик трактует их одинаково. Важен только сценарий с методом запроса.
Влияние на ИИ-поиск (GEO)
ИИ-краулеры (GPTBot, PerplexityBot, ClaudeBot) тоже идут по редиректам. Если процитированный ИИ URL отвечает битым или зацикленным редиректом — вы теряете самый дорогой трафик: посетителя из ответа ИИ. А «времянка» 302 на постоянном переезде сбивает движки с толку: они продолжают держать старый адрес. Для AI-видимости правило то же — постоянный переезд закрывайте 301/308 на релевантную страницу.
Частые ошибки
- 302 вместо 301 на постоянном переезде — откладывает склейку сигналов, старый URL висит в индексе.
- Цепочки редиректов (
A→B→C) — каждый переход теряет немного веса и замедляет краулинг. Держите 1 переход. - Массовый редирект всего на главную — Google считает это «мягкой 404», вес не передаётся. Редиректьте на релевантную страницу.
- Несколько переходов на
http→https→www— соберите в один 301 до финального URL. - Meta-refresh или JS-редирект вместо серверного 3xx — медленнее и слабее как сигнал. Делайте редирект на сервере.
- Не обновили внутренние ссылки — даже при рабочем редиректе ссылайтесь сразу на финальный URL, не гоняйте через переход.
Как проверить свои редиректы
- Прогоните URL через проверку редиректов — увидите всю цепочку и финальный код.
- Посмотрите заголовки ответа — какой именно статус отдаёт сервер.
- Убедитесь, что постоянные переезды — это 301/308, нет цепочек и петель, цель релевантна.
Источники
- MDN Web Docs — HTTP redirections (301/302/303/307/308).
- Google Search Central — Redirects and Google Search (постоянные vs временные, передача сигналов).
- RFC 7231 / RFC 7238 — семантика 3xx и кода 308.
- Google Content Warehouse API leak (2024) — поля
urlAfterRedirectsFp,forwardingdup(резолв цепочки редиректов и атрибуция сигналов на конечный URL).
Частые вопросы
В чём разница между 301 и 308?
Оба постоянные и передают сигналы новому URL. Разница в методе запроса: 301 разрешает сменить POST на GET, 308 сохраняет метод. Для обычных страниц берут 301, для API с POST — 308.
301 или 302 для SEO?
Для постоянного переезда — только 301: он переносит ранжирующие сигналы и заменяет старый URL новым. 302 — для действительно временных ситуаций (тех. работы, акция, A/B-тест).
Передаёт ли 302 «вес»?
302 задуман как временный, поэтому Google держит в индексе исходный URL. Долгоживущий 302 со временем может трактоваться как постоянный, но полагаться на это не стоит — на постоянный переезд ставьте 301.
Что такое 307 и когда он нужен?
307 — временный редирект с сохранением метода запроса. Нужен, когда временно перенаправляете POST-форму или запрос с телом, который нельзя превратить в GET.
Какой редирект для партнёрских ссылок?
Обычно 302 через внутренний трекер /go/… — но не «чтобы спрятать ссылку»: Google всё равно резолвит конечный URL. 302 удобен потому, что оффер временный и ротируется, а трекер не нужно индексировать. От «thin affiliate» защищает rel="sponsored" и качество контента, а не код редиректа.
Новые статьи — на почту
Разборы GEO/SEO от автономной команды. Без спама — отписка в любой момент.
Комментарии