
Что представляет собой редирект
Редирект — механизм автоматической переадресации пользователей с одного URL на другой. Чаще всего переадресация реализуется на стороне сервера при помощи специальных инструкций в серверных файлах-конфигураторах. Для сайтов на серверах Apache используется файл .htaccess; для тех, что работают на nginx, — nginx.config. Также переадресацию можно настроить с помощью PHP, HTML и jаvascript.Какими бывают редиректы и когда их использовать?
Всего существует 10 различных видов редиректов, включая Meta Refresh. Но на практике распространены случаи использования всего нескольких.301 Moved Permanently
301 редирект — абсолютный лидер по частоте использования. Он применяется для постоянной переадресации и передает ссылочный вес от начального адреса к конечному URL по аналогии с обычными ссылками.301 редирект используется для нескольких целей:
- Постоянная переадресация с адресов уже несуществующих или неактуальных страниц.
- Перенаправление на корректный адрес после переезда или редизайна сайта.
- «Склейка» (объединение двух адресов в индексе поисковых систем) дубликатов страниц, включая полные копии, доступные по разным адресам; идентичные версии одной и той же страницы с разными протоколами (HTTP и HTTPS), префиксом www. и без него, а также страницы с закрывающими слешами в URL-адресах и без них.
- Перенаправление на файл с измененным расширением.
RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]
Если же нужно выставить редирект со страниц с GET-параметрами на адреса без них, следует прописать в .htaccess следующий код:
RewriteCond %{QUERY_STRING} action=page [NC]
RewriteCond %{QUERY_STRING} id=(\d+) [NC]
RewriteRule .* /page/%1/? [R=301,L]
302 Found (HTTP 1.1) / Moved Temporarily (HTTP 1.0)
302 редирект используется для временной переадресации и чаще всего настраивается на этапе тестирования новых страниц и редизайна сайта. Страницы, с которых выставлен 302 редирект, не «склеиваются» с конечным URL, то есть они продолжают независимо индексироваться и существовать в индексах поисковых систем. С этой особенностью 302 редиректа связана ошибка, часто допускаемая неопытными SEO-специалистами. Суть ее заключается в том, что для устранения дублей страниц и индексации только одного корректного URL используется не 301, а 302 редирект, из-за которого в индексе возникают крайне нежелательные дубли.302 редирект передает ссылочный вес так же, как и 301. Отметим отдельно, что в зависимости от версии HTTP код ответа может отличаться — 302 Moved Temporarily в случае с HTTP 1.0. и 302 Found на сайтах с HTTP 1.1.
Пример использования 302 редиректа — временное перенаправление пользователя на страницу распродажи или акции без изменения изначальной страницы товара/услуги.
Выглядеть он будет следующим образом:
Redirect 301 /old/black-dress-1.html http://www.site.com/black-dress-1-sale.html
Еще один распространенный пример — перенаправление на мобильную версию сайта, которая находится на выделенном поддомене. Так как в данном случае важна индексация обеих версий, то 302 редирект подходит для этой цели как нельзя лучше. Выглядеть он будет так:
RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|
chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|
cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|
wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|
kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android) [NC]
RewriteCond %{HTTP_HOST} site.com
RewriteRule ^$ http://m.site.com/ [R=302,L]
307 Moved Temporarily (HTTP 1.1)
Как и 302, 307 редирект используется для временной переадресации и не предполагает «склейки» URL. Ключевое отличие от 302 Moved Temporarily заключается в том, что при помощи 307 редиректа вы можете сообщить поисковикам, что ваш сервер совместим с HTTP 1.1, а также что в кешировании конечной страницы редиректа нет необходимости.В качестве примера можно привести перенаправление на страницу авторизации, которое будет производиться в определенных условиях:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^airbrake.io$
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^(.*)$ http://airbrake.io/login$1 [R=307]
Пример временного 307 редиректа на другой домен:RewriteEngine on
RewriteCond %{HTTP_HOST} ^old.site$
RewriteRule (.*)$ http://new.site/$1 [R=307,L]
Прочие виды редиректов
Ниже вы можете найти краткое описание прочих видов редиректов, которые на практике встречаются весьма редко, но могут вам пригодиться в особых ситуациях.300 Multiple Choices
Редирект со множественным выбором предполагает автоматический или ручной выбор одного из вариантов перенаправления. Самый показательный пример — переход на одну из нескольких доступных языковых версий сайта. Используется довольно редко.303 See Other
Работает по аналогии с 302 временным редиректом, но отличается по методу запроса. Запрещает кеширование конечного адреса редиректа.304 Not Modified
304 редирект сообщает браузеру о том, что с момента последнего визита содержимое страницы не изменилось и его можно подгрузить из локального кеша.305 Use Proxy
В случае с 305 Use Proxy браузер получает информацию о том, что для перехода на конечный адрес требуется прокси, адрес которого передается в одном из заголовков самого редиректа. Получив подобный ответ, браузер делает повторный запрос уже с использованием указанных прокси.Как правильно настраивать редиректы
Чтобы обеспечить максимально корректную работу редиректов на своем сайте, вам нужно учесть ряд нюансов, которые напрямую влияют не только на восприятие сайта поисковиками, но и на уровень доверия и удобства пользователей. Ниже приведен список основных рекомендаций, которых следует придерживаться при настройке редиректов.Когда не стоит делать редиректы
- Не выстраивайте редиректы на страницы с уже имеющейся переадресацией. Делайте исключительно прямое перенаправление, чтобы не создавать цепочек. Это же касается и связки Канонический атрибут + Редирект. Не рекомендуется выставлять атрибут rel=canonical на URL с редиректом, а также делать редирект на канонизированную страницу.
- Не используйте редирект там, где уместнее использовать rel=canonical. Если у вас есть две страницы с почти идентичным содержанием, это не означает, что их непременно нужно склеивать. Вполне возможно, будет лучше просто указать поисковым роботам на приоритетный для индексации URL, но оставить на сайте обе страницы.
- По возможности не выставляйте редиректы на страницы, которые существенно отличаются от изначальных. Если поисковый робот обнаружит ощутимую разницу между содержимым начального и конечного URL, поисковик может заподозрить вас в недобросовестных манипуляциях. Это, в свою очередь, негативно скажется на SEO отдельно взятых страниц и репутации сайта в целом.
- Не используйте редиректы для служебных файлов во время переезда. Будьте осторожны с переадресацией для служебных файлов: к примеру, редирект для файла robots.txt может повлечь за собой проблемы с его обработкой поисковыми роботами.
Что следует учитывать при создании редиректов
- Тип редиректа должен соответствовать своему назначению. Например, вам необходимо выставить постоянный редирект, но по незнанию или банальной невнимательности вы воспользовались одним из временных.
- Конечный URL должен быть доступен для индексации. Если вы хотите «склеить» разные адреса при помощи редиректов и добиться замены одного из них в индексе, конечный URL должен быть доступен для поисковых роботов и отдавать код ответа 200 OK.
- Старайтесь сохранить старую структуру ссылок. Если вы планируете переезд на новый домен и настройку соответствующих редиректов, постарайтесь сохранить старую структуру URL, чтобы начальный адрес, к примеру, имел вид olddomain.com/page1, а конечный — newdomain.com/page1.
- Старайтесь настраивать редиректы исключительно на стороне сервера. Все прочие методы используйте лишь в крайнем случае.
- Учитывайте, что индексация и «склейка» новых URL не происходит мгновенно. Если на предыдущем домене или старой CMS у вас был относительно скромный трафик, индексация адресов редиректов может занять довольно много времени.
- Убедитесь, что редиректы ведут на страницы с кодами ответа 200. Код ответа 200 OK — обязательное условие для индексации, а также нормальной и быстрой «склейки» страниц поисковыми системами. Если код будет 4хх или 5хх, то это будет противоречить самой сути редиректа. В случае с 3хх кодом ответа сервера у вас получится цепочка редиректов.
Как выяснить, нет ли на сайте проблем с редиректами
Чтобы выяснить, нет ли на вашем сайте описанных выше проблем, воспользуйтесь краулером и просканируйте весь сайт для анализа имеющихся редиректов. Например, если вы используете Netpeak Spider, вам следует выполнить следующие действия:- Откройте программу и установите все настройки по умолчанию.
- Впишите адрес сайта в соответствующем поле и запустите сканирование.
- После завершения сканирования перейдите на боковую панель и откройте вкладку «Отчеты» → «Ошибки». Там вы увидите сгруппированные по уровню критичности ошибки. Большинство проблем, связанных с редиректами, будут высвечиваться как высоко критичные.

Программа идентифицирует следующие типы ошибок:
- битый редирект;
- бесконечный редирект;
- максимальное количество редиректов;
- редирект, заблокированный в robots.txt;
- редиректы с неправильным форматом URL;
- refresh редирект;
- редирект на внешний сайт.
- Кликните по названию ошибки, чтобы увидеть список URL с соответствующей проблемой.
- При необходимости выгрузите отфильтрованные результаты, нажав кнопку «Экспорт» над таблицей слева. Также вы можете выгрузить один из удобных отчетов по редиректам, выбрав соответствующую опцию в меню «Экспорт».

Коротко о главном
Всего насчитывается 10 видов редиректов, но лишь некоторые из них могут похвастаться практическим применением. Это относится к следующим видам:- 301 Moved Permanently, который используется для постоянной переадресации и «склейки» страниц в индексе.
- 302 Found/Moved Temporarily и 307 Moved Temporarily, необходимые для временного перенаправления.
- Следует использовать тот тип редиректа, который соответствует своему назначению.
- Если конечный URL переадресации должен быть проиндексирован, его нужно сделать доступным для индексации поисковыми роботами.
- Желательно сохранять изначальную структуру ссылок при переезде, чтобы у начального и конечного URL отличался разве что домен.
- В большинстве ситуаций следует использовать серверный редирект.
- Следует избегать появления цепочек редиректов, а также цепочек, состоящих из редиректов и атрибутов rel=canonical.
- Важно следить, чтобы конечные адреса не отдавали коды ответа 4xx и 5xx.
- Прежде чем ставить редирект, следует определиться, нужен ли он в принципе и не лучше ли воспользоваться атрибутом rel=canonical.
- Важно соблюдать осторожность с переадресацией служебных файлов.
- Не стоит без необходимости ставить редирект на страницу, которая существенно отличается от изначальной.