
301 редирект: как настроить и правила
В своей практике я часто сталкиваюсь с тем, что нужно либо домен переехать на другой, либо главное зеркало склеить, либо категорию перенаправить. И каждый раз это не просто «прописать пару строк» — тут важно не потерять трафик, не обрушить позиции в поиске и не запутать пользователя.
Поэтому к редиректам я подхожу максимально ответственно: сначала составляю карту переадресаций, потом проверяю каждый URL, и только после этого запускаю правила на сервере.
Что такое 301 редирект?
301 редирект (Moved Permanently) — это ответ сервера, который сообщает браузеру и поисковым системам: «эта страница переехала на новый адрес навсегда». Получив код 301, браузер автоматически перенаправляет посетителя на новый URL, а поисковый робот понимает, что старую страницу нужно забыть и передать весь её вес — трафик, позиции, ссылочный профиль — новой странице.
Это главное отличие 301 от 302 (временный редирект): при 301 говорят «переезд постоянный», и поисковики склеивают страницы, отдавая новой всё «наследство» старой. При 302 — «страница временно недоступна», и старый адрес продолжает держаться в индексе.
Где применяется
На практике 301 редирект встречается постоянно — вот типовые сценарии:
- Смена домена. Сайт переезжает с site.ru на newsite.ru, и нужно не потерять позиции в поиске.
- Переезд с HTTP на HTTPS. Обязательно для всех современных сайтов.
- Изменение структуры сайта. Убрали /catalog/tovary/ и теперь всё живёт в /shop/.
- Настройка главного зеркала. Выбор одного адреса между www.site.ru и site.ru, а также между адресами со слэшем на конце и без.
- Удаление страниц. Товар снят с продажи, статья устарела — вместо ошибки 404 ставим редирект на похожую страницу.
- Склейка дублей. Адреса вида page.html, page.html?utm=…, /index.php ведут на одну страницу — лишние версии склеиваются.
- ЧПУ. Переход со старых URL вида /?id=123 на человекопонятные /krossovki-nike-air-max/.
Как настроить: примеры
Apache / .htaccess — самый распространённый способ:
# Редирект одной страницы
Redirect 301 /old-page.html https://site.ru/new-page/
# Редирект всех страниц с сохранением путей (переезд домена)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-site\.ru$ [NC]
RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L]
Nginx:
location = /old-page.html {
return 301 https://site.ru/new-page/;
}
# Переезд домена целиком
server {
server_name old-site.ru;
return 301 https://new-site.ru$request_uri;
}
PHP (если редирект нужно задать в коде):
header(«Location: https://site.ru/new-page/», true, 301);
exit;
В CMS. В WordPress удобен плагин Redirection, либо встроенные модули в SEO плагинах. В Bitrix и Opencart редиректы настраиваются через административную панель или тот же .htaccess. Многие конструкторы (Tilda, Wix) имеют встроенный раздел «редиректы».
Типичные правила 301 переадресации
301 редирект с домена на домен
Полный переезд с сохранением всех страниц. Каждый старый адрес old-site.ru/page/ ведёт на new-site.ru/page/:
apache
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old-site\.ru$ [NC]
RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L]
Если структура нового сайта другая — добавляйте правила с RedirectMatch или постраничный список для ключевых URL. Главное правило переезда: редиректы должны вести с каждой старой страницы на максимально близкую по смыслу новую, а не все сваливать на главную — так поисковик быстрее и полнее передаст вес.
301 редирект с категории на категорию
Например, структура изменилась с /catalog/ на /shop/:
apache
RewriteEngine On
RewriteRule ^catalog/(.*)$ https://site.ru/shop/$1 [R=301,L]
Редирект отдельной категории (когда сама категория удалена):
apache
Redirect 301 /catalog/telefony/ https://site.ru/catalog/gadzhety/
Обратите внимание: правило Redirect 301 /catalog/ перенаправит и все вложенные страницы (/catalog/telefony/, /catalog/naushniki/) — это удобно, но опасно, если вложенные разделы должны вести в разные места. Тогда порядок правил важен: сначала частные, затем общие.
301 редирект — все страницы на все страницы
Универсальный вариант уже показан выше — $1 подставляет путь страницы. Нюансы, которые стоит знать:
- С сохранением слэшей и параметров. Флаг QSA (Query String Append) сохраняет GET-параметры: RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L,QSA].
- Каскад редиректов — зло. Если старый URL ведёт на промежуточный, который ведёт на финальный, поисковик теряет часть веса, а посетитель — время. Всегда направляйте напрямую на конечный адрес.
- Проверка после настройки. Любой редирект легко проверить: откройте старый URL — браузер должен показать код 301 и сразу конечную страницу. Массово это делают через сервисы вроде pr-cy, Sitechecker или «Яндекс Вебмастер» (раздел «Переобход страниц»).
Склейка зеркала с www и HTTP
Почти каждому сайту нужны эти два базовых правила:
apache
RewriteEngine On
# HTTP -> HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# www -> без www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Типичные ошибки переадресаций
- Цепочки и циклы редиректов. A → B → C или, хуже, A → B → A. Браузер покажет ошибку «слишком много перенаправлений». Проверяйте, что каждый URL после одного перехода попадает на финальный адрес.
- Редирект всех страниц на главную. Убивает SEO: поисковик видит, что сотни разных страниц ведут в одно место, и не может корректно передать релевантность.
- Редирект вместо 404. Не все несуществующие страницы нужно перебрасывать на главную — для genuinely удалённого контента честный 404 или 410 корректнее.
- Кэш браузера. 301 браузеры кэшируют агрессивно. Если ошиблись в правиле, проверить исправление можно в режиме инкогнито или очистив кэш — старый редирект может «висеть» ещё долго.
- Отсутствие корректного sitemap и настроек в «Яндекс Вебмастере» / Search Console после переезда домена — там обязательно указывают смену адреса и следят за индексацией новых страниц.
Коротко
301 редирект — это способ «переселить» страницу или весь сайт без потери накопленного авторитета у поисковиков. Настраивается на уровне сервера (.htaccess, nginx) или через CMS. Три золотых правила: редиректить страницу на ближайшую по смыслу, избегать цепочек и всегда проверять код ответа после настройки.
