12 мин чтения
Как проверить редиректы URL и разобрать цепочку редиректов
Как проверить редиректы URL в TrueURL, curl и DevTools: разбираем каждый переход цепочки и исправляем циклы, длинные цепочки и смесь 301 и 302 редиректов.
Читать статьюБесплатная проверка редиректов
Не каждый редирект — это HTTP-код ответа. TrueURL читает HTML каждой страницы в цепочке и находит теги meta refresh и JavaScript-редиректы вместе с их целевым URL и задержкой.
Нажмите Enter , чтобы проверить
Edge-сеть Cloudflare всегда проверяет сертификаты, поэтому отключить эту проверку нельзя. Проблемы с сертификатом будут показаны в результате.
Отправляется с первым запросом, до 16 КБ. Тело в формате JSON отправляется как application/json, остальное — как данные формы, если вы не указали заголовок Content-Type.
От 1 до 50. Браузеры останавливаются после 20 редиректов.
Сайты могут по-разному перенаправлять смартфоны, поисковых роботов и ботов предпросмотра ссылок.
Отправляются с каждым запросом в цепочке.
Пользовательских заголовков нет.
Введите значение, чтобы отправить этот заголовок. Значения заголовков никогда не сохраняются.
Переходить по тегам <meta http-equiv="refresh"> и заголовкам Refresh на HTML-страницах.
Переходить по простым безусловным редиректам в скриптах страницы, например location.href = "…".
Настройки сохраняются в этом браузере. Файлы cookie, значения заголовков и тело POST-запроса никогда не сохраняются.
Meta refresh — это HTML-тег, который указывает браузеру загрузить другой URL через заданное число секунд:
<meta http-equiv="refresh" content="0; url=https://example.com/new-page">
С задержкой 0 он работает как обычный редирект. С более долгой задержкой посетители сначала видят страницу — как на старых страницах «Сейчас вы будете перенаправлены». JavaScript-редиректы делают то же самое с помощью кода вроде location.href = '...' или location.replace('...'). И то и другое — клиентские редиректы: сервер отвечает 200 OK, а перенаправляет уже браузер.
В каждом HTML-ответе с кодом 2xx TrueURL просматривает первые 256 КБ страницы в поисках тега meta refresh и простых безусловных JavaScript-редиректов. HTTP-заголовок Refresh, который работает так же, как meta refresh, тоже распознается. Найдя такой редирект, TrueURL показывает тег или фрагмент скрипта, полный целевой URL и задержку, помечает переход как meta refresh или JavaScript и продолжает цепочку с целевого адреса. Refresh, который просто перезагружает ту же страницу, — не редирект, и он игнорируется.
В дополнительных настройках можно отключить следование любому из этих типов, чтобы посмотреть на саму страницу. TrueURL не выполняет JavaScript: он читает скрипты на странице и распознает редиректы на фиксированный URL, которые всегда срабатывают при загрузке страницы — сразу или в setTimeout верхнего уровня. Редиректы, которые зависят от условия (например, клика, выбора в окне согласия или размера экрана) или формируют целевой URL в коде, не обнаруживаются. Используйте GET, а не HEAD: в ответах на HEAD нет тела, которое можно было бы проверить.
Google рекомендует серверные редиректы везде, где их можно настроить, а meta refresh — как запасной вариант, например на статическом хостинге, который не умеет отправлять 301.
Редиректы с задержкой — проблема для доступности: люди, которые пользуются скринридерами или просто читают медленно, теряют место, где остановились, когда страница неожиданно меняется. В WCAG meta refresh с задержкой указан как ошибка (F40), а мгновенный редирект с задержкой 0 — как допустимая техника (H76).
Если без редиректа в HTML не обойтись, используйте задержку 0, добавьте тег canonical с новым URL и разместите на странице видимую ссылку на него для посетителей, чей браузер не выполняет refresh.
12 мин чтения
Как проверить редиректы URL в TrueURL, curl и DevTools: разбираем каждый переход цепочки и исправляем циклы, длинные цепочки и смесь 301 и 302 редиректов.
Читать статью13 мин чтения
Что означает каждый код 3xx: сравниваем 301, 302, 303, 307 и 308 по постоянству, сохранению метода, кэшированию и SEO, с примерами для nginx, Apache и PHP.
Читать статьюМгновенный meta refresh (задержка 0) Google считает постоянным редиректом, поэтому на практике он работает почти как 301. Refresh с задержкой считается временным. Другие поисковые роботы могут обрабатывать meta refresh менее надежно, поэтому используйте серверный 301 редирект, если хостинг это позволяет.
Редирект происходит в HTML-коде или JavaScript страницы, а не в HTTP-ответе. Инструменты, которые следуют только кодам ответа, например curl -L, останавливаются на странице с кодом 200. TrueURL анализирует содержимое страницы и показывает клиентский редирект как отдельный переход.
0, если цель — редирект. Любая задержка делает его временным редиректом для Google, заставляет посетителей ждать и создает проблемы с доступностью. Задержка имеет смысл только на странице, которая сначала должна показать сообщение, и на такой странице также должна быть понятная ссылка для продолжения.
Нет, только простые безусловные редиректы с фиксированным целевым URL в HTML-коде страницы, например location.href = '...', window.location = '...' или location.replace('...'), в том числе внутри setTimeout верхнего уровня. Для редиректов во внешних файлах скриптов, за условиями, запускаемых действиями пользователя или с вычисляемым URL нужен настоящий браузер. Если цепочка останавливается на странице, которая, как вы знаете, перенаправляет, скорее всего, дело в этом.
Обычно потому, что он не может отправлять HTTP-редиректы: статический хостинг без правил редиректов, конструктор сайтов или старая CMS. Некоторые сервисы сокращения ссылок и трекеры кликов тоже используют HTML-редиректы, чтобы сначала запустить скрипты аналитики или управлять тем, какой реферер увидит сайт назначения.
Нет. Ответ на HEAD содержит заголовки, но не тело, поэтому HTML для анализа просто нет. TrueURL предупреждает, если вы проверяете методом HEAD; для этого инструмента используйте GET.