Способы редиректа, Редирект 301, 302, 307, Javascript редирект, .htaccess редирект


Редирект. Великий и могучий. Сколь полезный, столь и вредный способ отправить пользователя или поискового робота не на ту страницу, на которую он собирался попасть. Или на другую версию этой страницы. Или на ту же версию, но в другом месте. Итак, поехали.

По факту, редирект — это компьютерный код, который сообщает браузеру, что он должен открыть вместо исходного — другой URL и иногда сообщает причину такого указания. Url при этом может находиться как в пределах домена, так и вообще в любом месте сети.

Итак, редиректы бывают разные. Например:

301 Moved Permanently

Такой редирект даёт понять браузеру и/или поисковому роботу, что страница на которую он попал перенесена в другое место. 301 редирект — любимый редирект СЕОшников т.к. при его использовании обычно сохраняется ссылочный вес процентов на 90. А то и на все сто.

307 Moved Temporarily (Верно для HTML версии 1.1. В более ранних версиях использовался редирект 302)

Этот редирект говорит о том, что контент перенесён в другое место временно. Использовать этот редирект на постоянной основе в принципе не рекомендуется т.к. он не переносит никакого ссылочного веса. И вообще, доподлинно неизвестно, как отреагирует на него поисковый робот. Чисто теоретически исходя из опыта, если вы используете 307 редирект — поисковый робот должен понимать, что ваш сервер поддерживает HTML 1.1 и правильно интерпретировать 307-й редирект. Но на самом деле, при всех разглагольствованиях на эту тему, никто точно не знает, как поведёт себя поисковый робот в той или иной ситуации. Поэтому использовать редирект 307 и/или 302 не стоит. Конечно, кроме тех случаев, когда материал перемещён действительно временно (для чего и создан редирект 302/307).

Примерно так обстоят дела с серверными редиректами. Но есть ещё и не серверный вариант редиректа. Например перенаправление с помощью специального тега META. Т.е. можно перенаправить посетителя сайта на другой URL просто вписав в код страницы одну строчку. Естественно, раз речь идёт о meta-теге — нужно понимать, что вписывается он между тегами < head> и < /head>.

Выглядит это так:

Для тех, кто понял: Да, точно, можно!

Для тех, кто в танке: используя эту конструкцию можно не только переадресовывать но и просто обновлять страницу через определённый промежуток времени.

Для тех, кто ещё и в шлеме:

Такой способ перенаправления обычно нужен для вывода какого-то сообщения. Например, если пользователь на сайте запустил какое-то скриптовое действие типа изменения пароля. Сайт показывает страницу с сообщением о том, что пароль изменён и через 3 секунды перенаправляет пользователя обратно в профиль или на какую-то другую страницу. Минус такого способа с точки зрения СЕО очевиден: такой рефреш-редирект физически не в состоянии отправить какой-то код (301/302/307) и соответственно не даёт информации поисковому роботу о причинах редиректа. Что влечёт наложение санкций. Не всегда — верно. Но тем не менее поисковики не любят, когда юзерам показывают не ту страницу, на которую они пытались попасть. Поэтому такие страницы от роботов лучше прятать за директивами robots.txt или noindex.

Также к редиректу можно относить канонизацию(склейку) домена. То есть, если вы выбираете для себя каноническим(главным) домен с WWW и все запросы без WWW должны перенаправляться на домен с WWW.

На примере:

Канонический домен нашего сайта: comp-pro.ru

Все запросы к www.comp-pro.ru отправляются на comp-pro.ru

Для того, чтобы реализовать такую склейку нужно создать в корневой директории сайта файл с именем .htaccess или открыть уже существующий и добавить в него следующий код:

Или наоборот, если нужно все запросы к сайту с WWW отправлять сайту без WWW:

Можно, кстати, воспользоваться javascript вариантом перенаправления. Код и объяснения ниже:

<script language=’JavaScript’>
function reload() {location = ‘//comp-pro.ru/’}; setTimeout(‘reload()’,15);
</script>

Где location — это целевой URL, а 15 — время до срабатывания с момента загрузки.

Такой код, в принципе, практически выполняет ту же самую задачу, что и переадресация meta-тегом. Тем не менее этот способ интересен тем, что может отсчитываться не с момента загрузки html-кода страницы а с момента срабатывания блока javascript кода. Например через 5 секунд после клика по ссылке.

Опять же, для тех, кто в танке:

Код указанный выше вписывается между тегами < head> и < /head>.

В принципе, я описал практически все варианты использования и применения редиректов. Если остались вопросы — пишем в комментариях.

Поделиться:

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *