🔀 Редиректы: полное руководство
301, 302, 307, 308 — когда использовать, как проверить и как не навредить SEO
Что такое редирект
Редирект — это автоматическое перенаправление браузера с одного URL на другой. Когда сервер получает запрос на старый адрес, он отвечает специальным HTTP-кодом (3xx) и указывает новый адрес в заголовке Location.
Типичные причины использования редиректов:
- Сайт переехал на новый домен (
old-site.ru → new-site.ru) - Страница перемещена на другой URL
- HTTP → HTTPS принудительный редирект
- www → без www (или наоборот)
- Временная акция с отдельной страницей
- Удалённая страница → ближайший аналог
Коды редиректов: 301, 302, 307, 308
| Код | Название | Тип | Метод запроса |
|---|---|---|---|
| 301 | Moved Permanently | Постоянный | Может измениться на GET |
| 302 | Found (Moved Temporarily) | Временный | Может измениться на GET |
| 307 | Temporary Redirect | Временный | Сохраняется (POST остаётся POST) |
| 308 | Permanent Redirect | Постоянный | Сохраняется (POST остаётся POST) |
301 — Постоянный редирект
Сообщает браузеру и поисковикам: «этот URL навсегда переехал сюда». Браузер кэширует редирект — в следующий раз сразу откроет новый URL без запроса к серверу. Google передаёт PageRank (ссылочный вес) по 301.
302 — Временный редирект
Сообщает: «сейчас по этому URL смотри вот сюда, но старый URL останется». Браузер не кэширует, поисковик сохраняет оригинальную страницу в индексе. Подходит для A/B тестирования, временных акций.
307 и 308 — современные аналоги
301 и 302 имеют исторический баг: браузеры превращают POST в GET при редиректе. 307 (временный) и 308 (постоянный) гарантируют что метод HTTP сохраняется. Используйте их для форм и API.
Когда использовать какой редирект
| Ситуация | Используйте |
|---|---|
| Переезд сайта на новый домен навсегда | 301 |
| HTTP → HTTPS | 301 |
| www → без www (или наоборот) | 301 |
| Страница удалена, есть похожая | 301 |
| Временная акционная страница | 302 |
| A/B тестирование | 302 |
| Технические обслуживание (на пару часов) | 302 или 503 |
| Редирект после POST-формы (login, checkout) | 303 |
| Постоянный редирект с сохранением метода | 308 |
Влияние редиректов на SEO
Редиректы — важная тема для SEO. Несколько правил:
301 передаёт ссылочный вес
Google официально подтверждает: 301 передаёт «практически весь» PageRank новой странице. На практике — потери есть, но они минимальны (1-15%). Длинные цепочки редиректов теряют больше.
302 сохраняет старую страницу в индексе
При 302 Google продолжает индексировать и ранжировать исходный URL. Если вы хотите чтобы поисковик переключился на новый URL — используйте 301.
Цепочки редиректов теряют вес
Если A → B → C — это два редиректа. Google проходит их, но каждый переход немного «размывает» вес. Идеал: один прямой редирект A → C.
- Редирект петля (A → B → A) — сайт недоступен
- 302 вместо 301 при постоянном переезде — Google не переносит ранжирование
- Цепочка из 5+ редиректов — поисковики могут не дойти до конца
- Редирект всего сайта на главную — потеря всего ссылочного веса подстраниц
Цепочки редиректов и redirect loop
Цепочка редиректов — когда URL А → Б → В → Г. Каждый переход добавляет задержку (~100-200 мс) и потенциально теряет SEO-вес. Длинные цепочки часто возникают при:
- Миграции CMS (старые редиректы + новые)
- Включении HTTPS поверх существующих редиректов
- Смене структуры URL несколько раз подряд
Redirect loop (петля) — A перенаправляет на B, B перенаправляет на A. Браузер прерывает запрос после нескольких итераций и показывает ошибку «ERR_TOO_MANY_REDIRECTS».
X-Forwarded-Proto.
Как проверить редиректы
Воспользуйтесь нашим инструментом:
Показывает полную цепочку переходов, код каждого шага, время и конечный URL
Через командную строку:
# Показать все редиректы
curl -I -L https://example.com
# Показать каждый шаг подробно
curl -v -L --max-redirs 10 https://example.com 2>&1 | grep -E 'HTTP/|Location:'
Настройка редиректов на сервере
nginx
# HTTP → HTTPS
server {
listen 80;
return 301 https://$host$request_uri;
}
# www → без www
server {
listen 443 ssl;
server_name www.example.com;
return 301 https://example.com$request_uri;
}
# Старая страница → новая
location /old-page/ {
return 301 /new-page/;
}
Apache (.htaccess)
# HTTP → HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Конкретная страница
Redirect 301 /old-page/ https://example.com/new-page/
Cloudflare (Page Rules / Redirect Rules)
В панели Cloudflare: Rules → Redirect Rules → Create Rule. Можно настроить любые условия без касания сервера. Cloudflare применяет редирект на своей стороне, что быстрее (ответ приходит с CDN-узла).
Частые вопросы
Сколько редиректов допустимо в цепочке?
Технически браузеры обрабатывают до 20-30 редиректов. Google рекомендует не более 3-5. Для скорости и SEO — стремитесь к одному прямому редиректу. Проверяйте цепочки регулярно — они накапливаются со временем.
Как долго Google обрабатывает 301 при переезде?
Видимый эффект — обычно 2-4 недели. Полный перенос ссылочного веса — до 3-6 месяцев. Не убирайте редиректы раньше чем через год — часть ссылок с других сайтов всё ещё ведёт на старые URL.
Что лучше: 301 или канонический тег?
Зависит от задачи. 301 — для реального переезда, когда старый URL больше не нужен. Canonical — для дублирующегося контента в рамках одного сайта (например, страницы с параметрами сортировки). Если вы хотите чтобы Google перешёл на новый URL навсегда — используйте 301.
ERR_TOO_MANY_REDIRECTS — как исправить?
Это redirect loop. Проверьте через наш инструмент — он покажет где возникает петля. Частые причины: конфликт HTTPS-редиректов (сервер + .htaccess), неправильный редирект www ↔ без www, плагин кэширования WordPress с устаревшими правилами.