Редирект, если перевести на русский язык — это перенаправление. Перенаправление, как правило, происходит с одной страницы сайта на другую.
Для чего делают перенаправление?
Ситуаций для настройки редиректов можно быть много, вот пара-тройка примеров:
- Со страницы на страницу. Например, решили сменить URL адрес и надо перенаправить на новый URL. Или страница потеряла актуальность, но чтобы не терять трафик, не вести пользователя на страницу ошибки 404 «Страница не найдена», перенаправляете на другую страницу.
- С категории на категорию. Это может быть также, по причине смене URL’а или например, слияния категорий, или наоборот, их разделения. И надо со старого URL адреса категории перенаправить на новую.
- SEO редиректы. Для избавления от дублей, когда одна страница доступна по нескольким адреса, например https://www.site.ru и https://site.ru
- С домена на домен, когда происходит переезд сайта или подклейка дропа.
- Еще у меня лично не раз возникала ситуация, когда надо иметь доступ, например для почты на хостинге, а она имеет очень длинный URL. И чтобы не заморачиваться с закладками и синхронизациями на разных устройствах, я просто создаю на домене папку /mail и настраиваю редирект с нее на длинный адрес почты хостинга. После чего мне надо всего лишь набрать site.ru/mail и я сразу окажусь на почте хостинга.
Типы редиректов
Есть несколько способов перенаправить со страницы на страницу в браузере. Перенаправления можно разделить на два класса: редиректы на стороне сервера и редиректы на стороне браузера / пользователя. Каждый из этих редиректов можно еще разделить на несколько типов.
Серверные редиректы
Редиректы на стороне сервера выполняются собственно непосредственно на самом сервере и отправляют пакеты информации в браузер через так называемые заголовки состояния HTTP. В которых содержится информация для браузера, чтобы он знал, куда идти, где находится документ по новому адресу. После чего браузер выполняет перенаправление. Эти заголовки HTTP имеют код ответа сервера (301, 302 и т.д.) для редиректа на стороне сервера и адрес нового местоположения документа, куда браузер должен вас перенаправить.
Браузеры в большинстве своем кэшируют 301 редирект (постоянный редирект) и будут в следующий раз немедленно выполнять его снова, без необходимости стучаться каждый раз к серверу, пока кэш не будет очищен.
302 редирект (временный редирект) браузеры уже не будут кэшировать, поэтому сервер будет каждый раз получать запрос на указание URL-адреса документа.
Поисковые системы будут следовать по редиректу, но сохранят на всякий случай старый URL в своем индексе. Но поскольку есть тенденция многих CMS или криво настроенных редиректов отдавать 302 код вместо 301, то поисковые системы зачастую могут рассматривать очень давние 302 редиректы как 301. Но, я бы рекомендовал изначально настраивать правильно, для постоянных перенаправлений отдавать 301, а для временных 302 код сервера.
Браузеры также никогда не кэшируют редирект с 307 ответом сервера. Поисковые системы могут не всегда следовать по 307 редиректу, так как они считаются временными. Как и 302, 307 редирект используется для временной переадресации и не предполагает «склейки» URL. Ключевое отличие от 302 Moved Temporarily заключается в том, что при помощи 307 редиректа вы можете сообщить поисковикам, что ваш сервер совместим с HTTP 1.1, а также что в кешировании конечной страницы редиректа нет необходимости. Также при выполнении перенаправления может сохраняться HTTP-метод (POST, GET) исходного запроса.
308 редирект работает аналогично 301, за исключением того, что при выполнении перенаправления сохраняется HTTP-метод исходного запроса. Google говорят, что обрабатывают 308 редирект так же, как и 301 редирект, но большинство SEO-специалистов по-прежнему используют 301 редиректы.
Код ответа сервера | Для чего использовать | Как влияет на SEO и поисковых роботов |
---|---|---|
301 | Постоянный редирект, который используется, когда страница была перемещена или удалена, а аналогичный контент можно найти на другой странице. | Постоянный редирект, который используется, когда страница была перемещена или удалена, а аналогичный контент можно найти в другом месте. |
302/307 | Временный редирект, используемый, когда страницу необходимо временно переместить по новому адресу. | Что 302, что 307 временный редирект, который будет рассматриваться поисковыми системами как временный. |
308 | Очень редко используемый, 308 редирект означает «следуйте этому перенаправлению и никогда больше не переходите на старый URL». | Браузеры будут жестко кэшировать 308 редиректы. Похож на 301. |
Редиректы на стороне клиента
Редирект на стороне пользователя обычно происходит с помощью кода, который запускается в браузере, а потом редиректит в браузере пользователя на другой URL-адрес. Чтобы запустить этот код редиректа, его нужно сначала отправить в браузер, а для этого нужна сначала получить кучу разных пакетов от сервера, запросить файлы на сервере, начать их загружать и поэтому это всегда более медленное решение. Желательно не использовать такие редиректы без особой на то нужды.
Существует несколько типов редиректов на стороне клиента: это способ через meta refresh, который обновляет страницу на другой URL-адрес через определенный период времени. А также редирект через JavaScript/PHP, который редиректит на новый документ после запуска кода. Влияние на SEO обоих типов редиректа на стороне пользователя трудно оценить количественно, но, как правило, оно не так надежно, как переадресация на стороне сервера.