HTTP 301 Redirect
Код ответа HTTP, означающий постоянное перемещение ресурса на новый URL. Поисковые системы и браузеры запоминают замену и передают SEO-вес.
Определение HTTP 301 Redirect
HTTP 301 Moved Permanently — это код ответа протокола HTTP, который сервер отдаёт клиенту, когда запрашиваемый ресурс переехал на новый URL на постоянной основе. Вместе с кодом сервер отправляет заголовок Location с новым адресом, и браузер автоматически переходит туда. Именно эта конструкция — основа переезда сайтов, смены доменов, объединения версий с www и без www, перехода на HTTPS и объединения дублей страниц.
В отличие от временного редиректа 302, код 301 сообщает клиентам: «этот URL больше не актуален, запоминай новый». Поисковые системы переносят все сигналы — ссылочный вес, позиции, поведенческие факторы — с исходной страницы на целевую и постепенно исключают старый URL из индекса.
Как работает 301 технически
- Браузер отправляет GET-запрос на старый URL.
- Сервер отвечает статусом 301 Moved Permanently и заголовком Location: https://new-url/....
- Браузер получает новый URL, кэширует связку «старый → новый» и выполняет GET к новому адресу.
- В последующих запросах клиент сразу идёт на новый URL, пропуская старый.
Именно кэширование делает 301 коварным: если вы ошиблись с целевым URL, пользователь ещё долго будет попадать на неверный адрес даже после правки редиректа на сервере. Поэтому 301 применяют только тогда, когда новая конечная страница определена надолго и не планируется её смена.
Когда применять 301
- Переезд сайта на новый домен — максимум SEO-веса сохраняется.
- Склейка www и без www, HTTP и HTTPS, со слэшем и без.
- Удаление устаревших страниц с переадресацией на релевантные разделы.
- Канонизация дублей и объединение карточек товаров.
В сервисах коротких ссылок и динамических QR-кодов 301 обычно не применяют: клиент закэшировал бы первый целевой URL и больше не обращался бы к платформе. Поэтому shortlink-сервисы используют HTTP 302, оставляя себе возможность менять конечный URL без потери аналитики.
Правило большого пальца: 301 — когда переезд навсегда, 302 — когда нужна маршрутизация или аналитика. Неправильный выбор статуса приводит к потере трафика и испорченной статистике.
Связанные концепции
- HTTP 302 Redirect (временный);
- HTTP 307/308 (современные аналоги, сохраняющие метод запроса);
- канонические теги и их связь с 301;
- кэширование и HSTS как близкие механизмы.
Частые вопросы
Передаёт ли 301 ссылочный вес?
Да, 301 редирект считается основным способом передачи SEO-сигналов со старого URL на новый. Google и Яндекс переносят большую часть ссылочного веса, позиций и поведенческих факторов на целевую страницу. На практике может теряться несколько процентов из-за технических особенностей, но в долгосрочной перспективе 301 — безопасный способ сменить URL без обрушения органического трафика и потери индексации.
Чем 301 отличается от 302?
301 — постоянный редирект: клиенты кэшируют связку «старый → новый» и больше не обращаются к исходному URL. 302 — временный: каждый раз клиент обращается к серверу, который принимает решение о маршрутизации. 301 передаёт SEO-вес и уместен для переездов, 302 — для ротации баннеров, коротких ссылок, A/B-тестов и динамических QR-кодов, где целевой URL может меняться в любой момент без перепечатки символа.
Сколько времени действует 301 в кэше браузера?
По стандарту HTTP/1.1 браузер может кэшировать 301 сколь угодно долго, если сервер явно не указал иное в заголовках Cache-Control или Expires. На практике Chrome и Firefox удерживают связку днями и даже месяцами. Именно поэтому отменить ошибочный 301 бывает трудно: часть пользователей ещё долго будет переходить на неверный адрес. Для управляемых сценариев используйте 302 или 307.
Можно ли использовать 301 в QR-коде?
Можно, но это лишает QR-код гибкости. Если закодировать в символ 301-редирект, браузеры пользователей запомнят конечный URL и будут ходить напрямую, минуя ваш сервис. Вы потеряете аналитику, возможность Smart Routing и смены целевого адреса. В подавляющем большинстве случаев для динамических QR-кодов правильный выбор — 302 с дополнительными заголовками Cache-Control: no-store.