Редирект — автоматическое перенаправление с одного адреса на другой. Для поисковиков важен код: 301 означает «переехали навсегда», 302 и 307 — «временно».
При 301 поисковик со временем заменяет старый адрес новым в индексе и переносит на него накопленный авторитет — ссылки, историю, позиции. При 302 старый адрес остаётся основным, а новый воспринимается как временная подмена.
Когда нужен 301
- Переход на HTTPS: все
http://-адреса ведут наhttps://. - Склейка зеркал с www и без.
- Смена структуры адресов:
/catalog.php?id=15→/catalog/nozhi/. - Переезд на новый домен.
- Объединение двух похожих страниц в одну.
- Приведение к единому виду: со слэшем в конце или без, всегда одинаково.
Когда 301 не нужен
- Страница удалена и замены нет. Тогда 404 или 410, а не редирект на главную.
- Страница временно недоступна — техработы, товар закончился. Здесь 302 или 307: адрес должен остаться в индексе.
Как настроить
Nginx — в конфигурации сайта:
server {
server_name www.example.ru;
return 301 https://example.ru$request_uri;
}
Apache — в .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
PHP — если доступа к конфигурации сервера нет:
header('Location: https://example.ru/new-page', true, 301);
exit;
Правило: редирект на уровне веб-сервера всегда быстрее, чем средствами приложения, — страница не загружается вообще.
Ошибки, которые стоят трафика
Всё на главную. При смене структуры сайта соблазнительно отправить старые адреса на главную. Поисковик расценивает это как soft-404 и просто выбрасывает старые страницы, никакой авторитет не переносится. Правильно — вести каждую страницу на её смысловой аналог.
Цепочки. http://www.site.ru/page → https://www.site.ru/page → https://site.ru/page → https://site.ru/page/. Каждое звено — лишний запрос и потеря времени (подробнее). Настраивайте правила так, чтобы переход был один.
302 вместо 301. Частая беда самописных решений и некоторых плагинов: код 302 по умолчанию, и переезд для поисковика не засчитывается.
Редирект на страницу, которая сама отдаёт 404. Проверяйте конечный адрес, а не только факт перенаправления.
Как проверить
curl -I -L https://example.ru/staraya-stranica
Флаг -L заставит curl пройти всю цепочку — вы увидите каждый шаг и итоговый код. В браузере то же самое видно в F12 → Network при включённой галочке «Preserve log».
В отчёте нашего аудита за это отвечают пункты «Редирект HTTP → HTTPS», «Склейка www / без www» и «Длина цепочки редиректов».