Редирект домена — это автоматическое перенаправление пользователя и поисковых роботов с одного URL на другой. Важно правильно выбрать тип редиректа, иначе можно потерять накопленный SEO-авторитет или получить цепочку, которая замедляет загрузку сайта. Ошибка обходится дорого: индексация нового адреса может растянуться на месяцы, если поисковик решит, что редирект временный.
Типы редиректов
| Код | Тип | SEO | Когда использовать |
|---|---|---|---|
| 301 | Постоянный | Передаёт ~99% авторитета | Переезд сайта, смена домена навсегда |
| 302 | Временный | Не передаёт авторитет | Временная акция, A/B тест |
| 307 | Временный (HTTP/1.1) | Не передаёт авторитет | Аналог 302 для современных серверов |
| 308 | Постоянный (HTTP/1.1) | Передаёт авторитет | Аналог 301, сохраняет метод запроса |
Не используйте 302 вместо 301 при постоянном переезде сайта. Google не перенесёт PageRank на новый URL, старый домен продолжит конкурировать с новым в выдаче ещё долгое время.
Редирект в cPanel
- cPanel → Домены → Перенаправления
- Тип: Постоянный (301)
- Домен: выберите домен-источник
- URL перенаправления: введите целевой URL
- Нажмите Добавить
Редирект через .htaccess
# Редирект всего домена на другой
RewriteEngine On
RewriteRule ^(.*)$ https://newdomain.com/$1 [R=301,L]
# Редирект HTTP на HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Редирект без www на www
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# Редирект www на без www
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
Важно для SEO: выберите одну каноническую версию домена (www или без www) и настройте постоянный 301-редирект с другой. Google должен индексировать только один вариант — иначе он делит вес страницы между двумя URL.
Разбор типичных ошибок
- ERR_TOO_MANY_REDIRECTS — правило в .htaccess редиректит домен сам на себя из-за неверного условия
RewriteCond; проверяйте регулярку на реальном значении%{HTTP_HOST}, а не только в теории. - 404 после редиректа с параметрами URL — правило вида
RewriteRule ^(.*)$ .../$1без учёта query string теряет всё, что было после знака вопроса; добавляйте флагQSA, если параметры нужно сохранить. - Редирект работает в браузере, но не для поискового робота — на сервере отдаётся код 200 вместо 301 для User-Agent Googlebot; проверяется через
curl -A "Googlebot" -I, а не только через обычный браузер. - Смешанный контент после редиректа на HTTPS — часть ресурсов (картинки, скрипты) на странице всё ещё грузится по HTTP; браузер блокирует их и рисует предупреждение о незащищённом соединении.
Цепочки редиректов — как избежать
Цепочка редиректов (A→B→C→D) замедляет загрузку и теряет SEO-вес на каждом звене. Всегда настраивайте прямой редирект A→D, минуя промежуточные шаги.
# Плохо: цепочка
old.example.com -- example.com -- www.example.com
# Хорошо: прямой редирект
old.example.com -- www.example.com
Сравнение способов настройки редиректа
| Способ | Нужен доступ | Скорость применения | Подходит для |
|---|---|---|---|
| cPanel Перенаправления | Панель управления | Мгновенно | Простой редирект всего домена |
| .htaccess | FTP/SSH к файлам сайта | Мгновенно | Гибкие правила, условия, параметры |
| DNS-редирект у регистратора | Панель домена | До 24–48 часов (TTL) | Домен без хостинга на нём |
Когда 301 не подходит
- Контент временно недоступен на исходном URL (техработы, сезонная страница) — здесь нужен 302 или 307, чтобы поисковик не убрал старый адрес из индекса навсегда.
- Сайт мигрирует на новый домен, который ещё не прошёл модерацию SSL, — правильнее сначала настроить и проверить HTTPS на новом домене и только потом ставить постоянный 301, чтобы не редиректить пользователей на страницу с ошибкой сертификата.
- Редирект нужен только части пользователей (например, по геолокации) — это не задача HTTP-редиректа, такую логику реализуют на уровне приложения или через правила Cloudflare, а не через статичный .htaccess.
Как проверить, что редирект настроен верно
# Проверяем код ответа и итоговый URL
curl -IL http://old.example.com/
# Ожидаем ровно один переход: HTTP/1.1 301 -- Location: https://www.example.com/
# Проверяем, что параметры запроса сохраняются
curl -IL "http://old.example.com/page?ref=email"
# Проверяем редирект глазами поискового робота
curl -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" -IL http://old.example.com/
Если во всех трёх случаях виден один переход с кодом 301 на правильный целевой URL и без потери параметров — настройка корректна. Дополнительно проверьте домен в Google Search Console: раздел «Проверка URL» покажет, какой адрес индексируется после редиректа.