301, 302, 307, 308: когда какой редирект ставить
Размер текста: A+ A-

301, 302, 307, 308: когда какой редирект ставить

Нажмите, чтобы оценить наш труд:
[Всего: 1 Средняя: 5]

Когда страница переезжает на новый адрес, недостаточно просто поставить ссылку. Нужно объяснить поисковику, как обращаться со старым URL: забыть навсегда или подождать. От этого зависит, передастся ли вес ссылок, останется ли старая страница в индексе и не потеряете ли вы позиции. Коды 301, 302, 307 и 308 — это именно те инструкции. Разберём на конкретных примерах, какой код и в какой ситуации ставить, чтобы не ошибиться.

Редирект — это табличка на двери: «Мы переехали».

  • Код редиректа — это уточнение: «навсегда», «временно», «обязательно тем же способом».
  • Если вы просто переедете и не оставите табличку, посетитель увидит пустую комнату.
  • Если оставите неправильную — он забредёт не туда или поисковик продолжит показывать старый адрес, хотя новый уже работает.

Задача кодов — чётко сказать браузеру и роботу: что делать с запросом.

Прочие материалы по теме:

301 — постоянный переезд

Этот код используется, когда страница переехала навсегда и старого адреса больше не будет. Поисковики воспринимают 301 как сигнал: «весь авторитет, ссылочный вес и позиции нужно передать новому URL». Старый адрес постепенно уходит из выдачи, на его место встаёт новый.

  • Без 301 вы рискуете потерять весь накопленный годами рейтинг в поисковых системах.

Пример: вы перенесли статью с poznayu.com/old-article/ на poznayu.com/new-article/В настройках сервера (например, в .htaccess) прописываете:

Redirect 301 /old-article/ https://poznayu.com/new-article/

Или если используете Nginx:

location /old-article/ {
return 301 https://poznayu.com/new-article/;
}

После этого Google и Яндекс начнут заменять старый URL новым, сохраняя почти 100% веса.

302 — временный редирект

302 говорит: «страница временно здесь, но скоро вернётся». Поисковики при таком коде оставляют старый URL в индексе, а новый не получает полного веса. Используют его, когда проводят акцию, тестируют новую версию страницы или делают технические работы.

  • Главное — не перепутать 302 с 301, иначе вы случайно «обнулите» накопленный авторитет на долгие месяцы.

Пример: вы временно перенаправляете раздел акций poznayu.com/sale/ на poznayu.com/black-friday/ на время распродажи.

Redirect 302 /sale/ https://poznayu.com/black-friday/
После окончания акции редирект убираете, и старый адрес снова работает. Поисковик не накажет за временную переадресацию.

307 — временный, но строгий

307 — это аналог 302, но с одним важным отличием. Он гарантирует, что метод запроса (GET, POST и т.д.) останется тем же. Если на старый адрес отправляли POST‑запрос, то и на новый он пойдёт тем же методом. 302 иногда может менять POST на GET, а 307 — нет.

  • Для обычных ссылок разница невелика, но для форм оплаты или отправки данных 307 предпочтительнее.

Пример: на poznayu.com/order/ принимали POST‑данные, и вы временно перенаправляете на poznayu.com/new-order. Для Nginx это будет так:

location /order/ {
return 307 https://poznayu.com/new-order/;
}

Браузер переотправит те же данные без потери информации.

Для htaccess:

RewriteEngine On 
RewriteRule ^order/$ https://poznayu.com/new-order/ [R=307,L]

308 — постоянный и строгий

308 — постоянный аналог 301. Он заменяет 301 в ситуациях, когда нужно сохранить метод запроса (например, при перенаправлении POST‑запросов навсегда). Для обычных страниц 301 вполне достаточно, но если вы навсегда переносите страницу, которая принимает данные через POST, то лучше использовать 308.

Пример: форма подписки на poznayu.com/subscribe/ переехала на poznayu.com/newsletter/, и вы хотите, чтобы POST сохранился.


location /subscribe/ {
return 308 https://poznayu.com/newsletter/;
}

В большинстве проектов 308 встречается редко, но знать о нём стоит — особенно если вы работаете с API или веб‑формами.

Для htaccess это будет так:

Redirect 308 /subscribe/ https://poznayu.com/newsletter/

Так в чем же выбор ? Оба, 308 и 301 — оба постоянные редиректы. Но между ними есть принципиальная разница, о которой молчат 90 процентов гайдов.

  1. 301 может изменить метод запроса. Отправляли POST на старый адрес? При 301 браузер почти наверняка превратит его в GET при перенаправлении. Для обычных ссылок это не проблема. А если вы перенаправляете отправку формы или платежку — данные потеряются.
  2. 308 этого не делает. Он сохраняет исходный метод. Был POST — останется POST. Поэтому 308 называют «строгим постоянным редиректом».

Сравнительная таблица кодов редиректа

Ниже таблица, которая поможет быстро выбрать нужный код:

Код Тип Сохраняет метод запроса Передаёт SEO-вес Когда использовать
301 Постоянный Нет (меняет POST на GET) Да Полный переезд страницы, смена домена
302 Временный Нет (часто меняет) Нет Временные акции, тесты
307 Временный Да Нет Временный редирект для форм, API
308 Постоянный Да Да Постоянный редирект для POST-запросов

Какой код редиректа выбрать ?

На практике для 95% задач на обычном информационном сайте достаточно 301 и 302.

  1. Для постоянного перемещения статей, разделов или всего домена — 301.
  2. Для временного тестирования или сезонных скидок — 302.
  3. Если вы работаете с платежными формами или любыми POST-запросами, присмотритесь к 307 и 308.

Важно помнить: цепочки из нескольких редиректов (например, 301 → 302 → 200) замедляют загрузку и размывают вес. Старайтесь вести пользователя и робота с одного старого URL на один конечный напрямую.

Выводы: перед тем как прописывать редирект, ответьте себе — переезд навсегда или на время? Меняется ли метод запроса? Ответ на эти два вопроса укажет на нужный код. И не забывайте проверять результат через инструменты для веб-мастеров, чтобы убедиться, что редирект работает именно так, как вы задумали.

Нажмите, чтобы оценить наш труд:
[Всего: 1 Средняя: 5]
Ethan Carter

Я, Итан Картер – американский разработчик и технический автор с более чем 20-летним опытом в системном и прикладном программировании. Мой основной профиль — низкоуровневая разработка на Assembler: 22 года практики, включая глубокую работу с оптимизацией кода, архитектурой процессоров и производительностью критичных по скорости решений. Я защитил PhD dissertation по Assembler, а также более 18 лет работаю с ASP.NET, создавая корпоративные веб-системы, API и масштабируемые backend-решения.

Дополнительно я имею 9 лет опыта в C++ и C#, а также 7 лет практики программирования микроконтроллеров на Assembler. Благодаря моему сочетанию академической подготовки и прикладного инженерного опыта я могу писать статьи на стыке архитектуры ПО, низкоуровневой оптимизации и современной разработки, делая сложные технические темы понятными для профессиональной аудитории.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.

О нас | Контакты


Прокрутить вверх