Что такое редирект
HTTP-редирект — механизм, при котором сервер сообщает браузеру: «эта страница переехала, иди по другому URL». Браузер автоматически делает новый запрос. Все коды категории 3xx — редиректы. Самые популярные — 301 и 302.
Разница в одной фразе: 301 — навсегда, 302 — временно. Кажется простым, но влияние на SEO и поведение браузеров кардинально разное. Неправильный выбор может убить ранжирование сайта.
301 vs 302 — детальное сравнение
301 redirects pass virtually 100% of link equity. The myth that you lose 10-15% PageRank with each redirect is outdated since 2016. Use 301 confidently for permanent moves.— John Mueller, Google Search Advocate, 2021
Когда использовать 301
- Миграция домена. example.com → newexample.com. Все URL старого домена → 301 на соответствующие нового.
- HTTP → HTTPS. Каждый http://example.com/page → 301 на https://example.com/page. Обязательно для SEO и безопасности.
- www vs без www. Выберите канонический вариант, второй → 301. Не оставляйте оба — это дубль контента.
- Trailing slash. /page/ vs /page — выберите один, второй → 301.
- Реструктуризация URL. /blog/123 → /blog/post-name. Сохраняет SEO-вес.
- Удаление дублей. /product?id=42 и /product/42 — должна быть одна канонична, остальные → 301.
- Удаление страницы. Если есть похожая → 301 на неё. Если нет — лучше 410 Gone (а не 301 на главную, это плохая практика).
Когда использовать 302
- A/B тестирование. /landing → 50% юзеров на /landing-v2 (тест), 50% на /landing-v1 (контроль).
- Технические работы. Сайт offline → 302 на /maintenance (поисковики НЕ удалят страницы из индекса).
- Геолокация. example.com/ из Москвы → 302 на /ru/, из Парижа → /fr/. Поисковик индексирует все три варианта.
- Авторизация. Защищённая страница → 302 на /login если не залогинен. Возврат через ?return_to=...
- Корзина / checkout. Очищенная корзина → 302 на каталог.
- Промокоды / акции. Временная распродажа доступна по короткому URL → 302 на длинный с промо-параметрами.
Как настроить
Apache (.htaccess)
# 301 для конкретного URL
Redirect 301 /old-page /new-page
# 301 для всего домена
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain.com$ [NC]
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]
# HTTP → HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Удалить www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]Nginx
# Конкретный URL
location = /old-page {
return 301 /new-page;
}
# HTTP → HTTPS
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
# www → без www
server {
server_name www.example.com;
return 301 https://example.com$request_uri;
}Next.js (next.config.js)
module.exports = {
async redirects() {
return [
{
source: '/old-page',
destination: '/new-page',
permanent: true, // true = 301, false = 302
},
{
source: '/blog/:slug',
destination: '/articles/:slug',
permanent: true,
},
];
},
};Как проверить редирект
- curl -I url — покажет HTTP-код.
HTTP/1.1 301 Moved Permanently— всё работает. - Chrome DevTools → Network → выберите запрос → Response Headers → Status Code.
- Online tools. httpstatus.io, redirect-checker.org — проверка цепочки редиректов (301 → 301 → 200).
- Screaming Frog SEO Spider. Полный аудит сайта, найдёт все редиректы и их цепочки.
- Yandex Webmaster. Раздел «Индексирование» → «Страницы в поиске» — видно как поисковик понимает редиректы.
- RFC 9110 — HTTP Semantics (Section 15.4). IETF. datatracker.ietf.org/doc/html/rfc9110#section-15.4. 2022.
- Yandex Webmaster — настройка редиректов. Яндекс. yandex.ru/support/webmaster/recommendations/redirects.html. 2024.
- Google — Redirects and Search. Google Search Central. developers.google.com/search/docs/crawling-indexing/301-redirects. 2024.
