301 редирект — HTTP-статус «Moved Permanently» (перемещено навсегда). Автоматически переводит пользователя и поискового робота с одного URL на другой, передавая ссылочный вес (PageRank) на новый адрес.

Как работает

Сервер возвращает код 301 и указывает новый URL в заголовке Location. Браузер и поисковик запоминают новый адрес. Google передаёт ~99% ссылочного веса через 301. В отличие от 302 (временный редирект), 301 сигнализирует о постоянном перемещении — поисковик заменяет старый URL в индексе на новый.

Где используется

  • Переезд с HTTP на HTTPS
  • Смена домена
  • Изменение структуры URL
  • Объединение дублей (www → без www)
  • Удалённые страницы → редирект на ближайшую релевантную

Пример в .htaccess

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Частые ошибки

  • Цепочки редиректов: A→B→C→D — теряется ссылочный вес и замедляется загрузка
  • Редирект-петля: A→B→A — сайт становится недоступен
  • Использование 302 вместо 301 при постоянном переезде — ссылочный вес не передаётся
  • Редирект всех 404 на главную — Google воспринимает это как «мягкую 404»
В чём разница между 301 и 302 редиректом?

301 — постоянный редирект, поисковик заменяет старый URL на новый в индексе и передаёт ссылочный вес. 302 — временный, поисковик сохраняет старый URL в индексе. Используйте 301 для постоянных изменений, 302 — для временных (A/B-тесты, временная страница).