Цепочка редиректов
Redirect chain
Цепочка редиректов — последовательность нескольких HTTP-перенаправлений, при которой промежуточный адрес снова направляет запрос на другой адрес. Чтобы дойти до конечного ответа, клиент последовательно проходит эти переходы.
Основание определения — механизм повторных запросов в RFC 9110: ответ может указать следующий адрес, а запрос к нему — получить новое перенаправление. HTTP здесь означает протокол обмена запросами и ответами; клиентом может быть браузер или поисковый робот. [1]
Кратко
- Число адресов и число переходов различаются: три последовательные записи могут описывать два перехода.
- Последний редирект без следующего ответа означает незавершённый журнал.
- Повтор адреса требует проверки на цикл, а не автоматического вывода о поломке.
- Конечный ответ и правильность его содержимого проверяют отдельно.
- Мини-инструмент разбирает введённый журнал и не обращается к сайту.
Открыть мини-инструмент к статье → Расчёт идёт в браузере, данные никуда не отправляются.
Происхождение и история термина
Последовательные перенаправления обсуждались задолго до современных инструментов технического SEO — проверки сайта для поисковых систем. В историческом RFC 2068, опубликованном в январе 1997 года, раздел о перенаправлениях рекомендовал клиенту не выполнять автоматически больше пяти переходов: длинную последовательность связывали с вероятностью бесконечного цикла. [6] Это свидетельство развития механизма, а не дата появления выражения «цепочка редиректов».
RFC 9110, опубликованный в июне 2022 года, рекомендует клиенту обнаруживать циклические перенаправления. Старое ограничение пятью переходами приведено как историческая особенность некоторых клиентов. [1] Поэтому старую цифру нельзя превращать в современную универсальную норму для сайта. Практический вопрос сместился от одного числового порога к поведению конкретного клиента и назначению маршрута.
Суть и механизм
Представим учебный переезд каталога. Посетитель открывает старый адрес товара A. Сервер возвращает код 301 и поле ответа Location с адресом B. Браузер запрашивает B, получает 302 с адресом C и затем запрашивает C. В нашем примере C отвечает 200. Получились три записи об ответах и две стрелки между ними. Дополнительный обмен запросом и ответом создаёт накладные затраты времени. [5]
Код описывает смысл ответа, а Location указывает направление. Если вместо полного адреса записано /catalog/item, его разрешают относительно адреса текущего запроса. [1] Поэтому после перехода на другой сайт нельзя продолжать подставлять в относительные адреса имя исходного сайта.
Для разбора полезно различать GET — запрос получения ресурса — и POST, которым, например, отправляют форму. [1] При некоторых перенаправлениях меняется и метод запроса: алгоритм Fetch заменяет POST на GET после 301 или 302; после 303 он заменяет на GET методы, отличные от GET и HEAD. HEAD запрашивает сведения об ответе без его содержимого. [1] [2] Это важно при испытании форм: журнал одних адресов не показывает, что произошло с отправленными данными.
Виды и классификации
Документация MDN разделяет перенаправления на постоянные, временные и специальные. К постоянным относит 301 и 308; к временным — 302, 303 и 307. При 307 и 308 метод и тело запроса сохраняются. [5] Это классификация отдельных ответов: цепочку со смешанными кодами нужно разбирать по шагам.
Яндекс отдельно различает внутрихостовые и межхостовые редиректы. Хост — имя узла в адресе, например shop.example.test; переход на www.shop.example.test уже меняет хост. [4] Для редакционного разбора добавим ещё один признак: журнал завершён конечным ответом, оборван на перенаправлении либо содержит повтор адреса. Это рабочая классификация результата проверки, а не дополнительный стандарт HTTP.
Как применяется на практике
Предлагаемая процедура приёмки начинается с таблицы соответствий: старый адрес, нужная конечная страница, причина переноса. В учебном каталоге старый товар должен вести к его новой карточке. Если направить его на главную страницу, короткий маршрут сам по себе не решит задачу посетителя. Поэтому сначала определяют правильную цель, затем убирают ненужные промежуточные шаги.
Для каждого выбранного адреса сохраните журнал до изменения и после него. В протоколе укажите время, средство проверки, метод запроса и условия входа. Отдельно испытайте ссылки на карточку, раздел и статью: одна удачная проверка главной страницы не охватывает разные правила маршрутизации. Это предлагаемая выборка редакции, а не обязательный перечень поисковой системы.
Практический смысл перенаправления для поиска зависит от правил конкретного поисковика. Канонический адрес — адрес, который поисковая система выбирает основным для страницы. Документы Google и Яндекса описывают разные стороны обработки, поэтому их формулировки нельзя механически подменять друг другом.
| Яндекс | |
|---|---|
| Постоянный редирект служит сигналом выбора целевого адреса каноническим; при временном редиректе такой сигнал не используется, хотя другие сигналы могут привести к индексированию цели. [3] | Для внутрихостового редиректа справка описывает индексирование содержимого цели; отдельно оговаривает отображение главной страницы хоста в поиске. [4] |
Редакционный вывод для приёмки прост: завершение маршрута и наблюдение результата в поиске — разные проверки. Не обещайте изменение выдачи только на основании зелёного сообщения локального анализатора.
Как измерить или проверить
Откройте мини-инструмент и вставьте журнал формата URL | код | Location. URL означает полный адрес ресурса. Для строки без дальнейшего перенаправления укажите в третьем столбце дефис. Учебный пример:
text
https://example.test/a | 301 | /b
https://example.test/b | 302 | /c
https://example.test/c | 200 | -
Инструмент различает количество записанных ответов с перенаправлением и количество переходов, подтверждённых соседними строками. В связном журнале последнее число равно числу строк минус один. Здесь три минус один равно двум. Если удалить последнюю строку, останутся два объявления редиректа, но только один подтверждённый переход; получение ответа C неизвестно. Это счёт записей, а не доказательство достоверности введённых данных.
Одна строка с конечным ответом даёт ноль переходов. Адреса сравниваются после разбора стандартным объектом URL; фрагмент после знака решётки при сравнении исключается. Инструмент поддерживает HTTP(S), коды перенаправлений 301, 302, 303, 307, 308 и конечные ответы классов 2xx, 4xx, 5xx. Остальные случаи отклоняются как выходящие за его модель.
Время загрузки нужно измерять отдельно. Две цепочки одинаковой длины нельзя признать одинаково быстрыми по одному журналу адресов. В предлагаемом протоколе рядом с количеством переходов храните измеренную длительность и условия опыта, а после изменения повторите измерение в сопоставимых условиях.
Ошибки, ограничения и спорные вопросы
В алгоритме Fetch после двадцати уже учтённых перенаправлений попытка продолжить маршрут завершается сетевой ошибкой. [2] Это правило конкретного алгоритма, не разрешение создавать двадцать шагов ради поискового продвижения. Локальный анализатор не воспроизводит Fetch: его предел сто строк ограничивает объём ввода, а не поведение браузера.
Повтор адреса может указывать на цикл, когда маршрут снова и снова возвращается к прежнему шагу. [5] Но наш журнал не хранит состояние входа пользователя и отправленные данные. Он сообщает лишь о повторе: для диагноза необходимо воспроизвести маршрут при одинаковых условиях. Редиректы по региону тоже требуют отдельной проверки: Яндекс предупреждает, что сетевой адрес робота может привести его не к ожидаемой региональной версии. [4]
Анализатор не выполняет JavaScript страницы, не проверяет её текст, настройки индексирования или доступность сервера. Он выявляет ошибки записи: пропущенную цель, разрыв последовательности, неподдерживаемый код. Конечный ответ 404 в корректно записанном журнале остаётся поводом разбираться со страницей, а не успешным результатом переезда.
Частые вопросы
Один 301 — уже цепочка?
В этой статье одиночное перенаправление называется прямым. Для цепочки нужен промежуточный адрес, который снова перенаправляет запрос. Это помогает отличать задачу проверки одного правила от разбора нескольких последовательных правил.
Всегда ли нужно сокращать маршрут?
В учебной процедуре сначала выясняют назначение каждого шага. Если промежуточная страница нужна для предусмотренного действия пользователя, её нельзя удалять только ради красивого числа. Лишним считают шаг, для которого после проверки не осталось такой необходимости.
Ответ 200 означает правильную конечную страницу?
В нашем примере это записанный ответ, но название товара и само содержимое анализатор не видел. Сопоставьте страницу с таблицей соответствий: успешное получение посторонней карточки не выполняет исходную задачу.
Почему нет ответа для последнего адреса?
Возможно, журнал скопирован не полностью или наблюдение остановилось. Дополните его фактическим ответом. Не дописывайте предполагаемый код: тогда инструмент проверит придуманную последовательность вместо результата опыта.
Решить с помощью сервиса
«SEO-проверка» работает как внутренний инструмент и готовится к открытию внешним пользователям. Сервис проверяет технические параметры одной страницы и подключённые сведения об индексации. Офлайн-анализатор журнала из этой статьи является отдельным мини-инструментом; функция трассировки цепочек для сервиса не заявлена.
Связанные термины
Источники
- Fielding, R., Nottingham, M., & Reschke, J. (Eds.). (2022, June). HTTP Semantics (RFC 9110, STD 97), §§9.3.1–9.3.3, 10.2.2, 15, 15.4–15.4.9. https://www.rfc-editor.org/rfc/rfc9110.html (обращение: 29.10.2026). ↑ а б в г д
- WHATWG. (2026, October 19). Fetch Standard, §4.5 HTTP-redirect fetch. https://fetch.spec.whatwg.org/ (обращение: 29.10.2026). ↑ а б
- Google. (n.d.). Redirects and Google Search. https://developers.google.com/search/docs/crawling-indexing/301-redirects (обращение: 29.10.2026). ↑
- Яндекс. Обработка редиректов // Вебмастер: справка. URL: https://www.yandex.ru/support/webmaster/ru/robot-workings/managing-redirects.html (дата обращения: 29.10.2026). ↑ а б в
- MDN contributors. (n.d.). Redirections in HTTP. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Redirections (обращение: 29.10.2026). ↑ а б в
- Fielding, R., Gettys, J., Mogul, J., Frystyk, H., & Berners-Lee, T. (1997, January). Hypertext Transfer Protocol — HTTP/1.1 (RFC 2068), §10.3, p. 56. https://www.rfc-editor.org/rfc/rfc2068.html (обращение: 29.10.2026; исторический документ). ↑
Служебный блок
- Версия
- 3.0
- Факты проверены
- Подготовка
- Редакция Медиатрона
- Публикация
- утверждена владельцем издания 5 ноября 2026 г.
Редакция Медиатрона. Факты сверены с первоисточниками на дату проверки, публикация утверждена владельцем издания.
Нашли ошибку? info@mediatrone.ru