-
Назначение
Постоянно или временно
-
Метод
Обычная страница или обработчик
-
Маршрут
Location и конечный адрес
-
Результат
Нужный документ без петли
Код редиректа выбирают по двум признакам: перенос постоянный или временный и нужно ли сохранить HTTP-метод запроса. Для постоянного переноса обычной страницы часто используют 301. Если важно сохранить метод и тело запроса, рассматривают 308. Временные аналоги — 302 и 307.
Проверять нужно весь маршрут: исходный URL → статус и Location → конечный адрес → содержание. Ответ 301 на старте не подтверждает, что человек в итоге попал на нужную страницу.
Чем отличаются 301, 302, 307 и 308
| Код | Назначение | Метод запроса | Пример |
|---|---|---|---|
| 301 | Постоянный перенос | При перенаправлении POST клиент может перейти на GET | Статья получила новый постоянный адрес |
| 302 | Временный перенос | Для POST также возможно изменение на GET | Временная замена обычной GET-страницы |
| 307 | Временный перенос | Метод и тело сохраняются | Согласованный временный маршрут запроса приложения |
| 308 | Постоянный перенос | Метод и тело сохраняются | Постоянная смена обработчика с сохранением метода |
Google относит 301 и 308 к постоянным перенаправлениям, 302 и 307 — к временным. Смысл для выбора канонического адреса описан в документации поиска. Различие в сохранении метода поясняет MDN на примере 308.
Для формы, оплаты и webhook нельзя выбирать код только по SEO-привычке. Автоматическая пересылка тела запроса на другой адрес способна повторить действие или передать данные не тому обработчику. Такие маршруты проверяют с разработчиком на тестовом окружении, без реальных платежей и заявок.
Какой редирект подходит для типовых задач
- Новый адрес статьи. Постоянный перенос на ту же публикацию; обновите внутренние ссылки, а не оставляйте их навсегда через старый URL.
- HTTP на HTTPS и www на основной домен. Постоянное перенаправление сразу к выбранной версии с сохранением нужного пути.
- Склейка вариантов со слэшем. Одно правило, согласованное с маршрутизацией приложения. Не меняйте API и файлы общей маской без проверки.
- Временная замена страницы. Временный редирект, если исходный адрес должен вернуться. Отдельно запланируйте снятие правила.
- Товар закончился. Само отсутствие остатка не требует перенаправления. Сохранённая карточка с условиями ожидания может быть полезнее.
- Товар удалён навсегда. Перенос возможен на действительно соответствующую замену. Главная или случайная категория не заменяют любую модель.
Не путайте редирект и canonical. Первый меняет маршрут посетителя, второй сообщает предпочтительный адрес документа, оставляя текущую страницу доступной. Если нужно убрать страницу совсем, посмотрите отдельный разбор удаления URL из поиска.
Учебный пример правила Nginx для одного адреса
Ниже только фрагмент внутри подходящего server-блока. Он не заменяет конфигурацию HTTPS, статики и проксирования. Домен example.com нужно заменить своим; сначала проверьте конфигурацию и точное соответствие страниц.
location = /old-guide/ {
return 301 https://example.com/new-guide/$is_args$args;
}
Точное совпадение location ограничивает изменение одним путём. Выражение $is_args$args сохраняет строку параметров при её наличии. Это полезно для меток, но не всегда нужно: секреты, одноразовые токены и параметры, меняющие смысл страницы, требуют отдельной политики. Синтаксис return приведён в документации Nginx.
Перед применением сохраните предыдущую конфигурацию, выполните nginx -t и проверьте правило на стенде. Перезагрузка сервиса допустима только после успешной проверки и согласования окна работ. Если Nginx и CMS одновременно исправляют адреса, убедитесь, что их правила не возвращают посетителя друг к другу.
Как проверить цепочку и параметры
Для публичной GET-страницы можно использовать проверку редиректов ISKAR. Дополнительно посмотрите сетевую панель браузера: статус каждого перехода, Location и итоговый документ. Для командной проверки выполните запрос к своему тестовому адресу:
curl -sS -D - -o /dev/null "https://example.com/old-guide/?utm_source=test"
Команда показывает заголовки первого GET-ответа. Она не следует по переходам автоматически, поэтому можно проверить Location до следующего запроса. Для полного маршрута обычной публичной страницы добавьте -L --max-redirs 10. В Windows используйте curl.exe и вместо /dev/null — NUL.
Учебная цепочка http://www.example.com/old/ → https://www.example.com/old/ → https://example.com/old/ → https://example.com/new/ содержит лишние промежуточные шаги. Цель проверки — получить прямой перенос к подходящему конечному адресу там, где конфигурация позволяет это безопасно.
Чек-лист после изменения
- Старый URL возвращает ожидаемый код и точный Location.
- Конечная страница доступна и соответствует прежней задаче.
- Нет петли между CMS, CDN и сервером.
- Параметры сохраняются или удаляются согласно назначению.
- Внутренние ссылки и Sitemap указывают на актуальные адреса.
- Canonical конечной страницы не отправляет обратно на старый URL.
- Соседние рабочие страницы не затронуты общей маской.
- Формы и интеграции проверены отдельно, если их пути пересекаются с правилом.
При массовом переносе храните карту «старый адрес — новый адрес — причина — результат проверки». Отдельная инструкция по переезду на другой домен раскрывает подготовку и контроль после запуска; выбор кода — только одна часть этой работы.
Частые вопросы
308 лучше 301 для SEO?
Универсального преимущества нет. Оба обозначают постоянный перенос; различие в поведении запроса важно разработчику. Не меняйте корректные 301 только ради нового кода.
Можно ли направить все 404 на главную?
Так посетитель теряет ожидаемый ответ, а диагностика скрывает сломанные ссылки. Сначала найдите соответствующую замену. Если её нет, корректная страница 404 с навигацией может быть правильным решением.
Почему браузер помнит старый редирект?
Перенаправление может сохраниться в кеше браузера или промежуточного сервиса. Проверьте свежий запрос и серверные заголовки. Не считайте очистку своего браузера исправлением для всех пользователей: найдите слой, который продолжает отдавать старое правило.

