суббота, 31 мая 2008 г.

SEO редиректы. HTTP status codes. PHP. Apache

Памятка для SEOшников о редиректах

- Девушка, а как пройти в библиотеку? (с)

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

Погнали. Сначало? каратенька минут на 40 :) определимся, что есть редирект?

Редирект - это процесс перенаправления посетителя на другую страницу. Перенаправление осуществляется вебсервером посредством помещения соответствующего HTTP-кода в заголовок HTTP-запроса. Так вот, оказывается, HTTP-кодов, отвечающих за редирект аж целых 7 штук. Перечислю их:

[Redirection 3xx]
300="Multiple Choices"
301="Moved Permanently"
302="Found" (e.g. )
303="See Other"
304="Not Modified"
305="Use Proxy"
306="(Unused)"
307="Temporary Redirect"

Охренеть. До сего момента понятия не имел что их столько. Ээх, говорила мне мама: "Cынок! Читай RFC'ы внимательно, пригодится же" :) Короче, кому интересно, подробней про редиректы со словариком можно почитать в спецификации протокола HTTP/1.1.

Нам же братьям SEOшниками, все знать не обязательно, достаточно двух основных: 301 и 302 редиректы.

Итак, редирект 301-ый, он же "Permanent Redirect", он же "Moved Permanently". Используется в случаях когда, необходимо сменить домен или отдельно взятую страницу на другое постоянное место жительство, для склейки имени сайта с www и без него. Данный редирект говорит браузеру (или поисковому боту), что запрашиваемая страница НАВСЕГДА перенесена в другое место назначения, и перенаправляет на это другое место. Причем при таком редиректе происходит, так называемая, склейка, сущность которой состоит в перетекании PR'ов и тИЦ'ей и других различных рейтигов поисковых систем со страниц старого домена, на страницы нового. Про смену доменов со склейкой ещё можно почитать у Dimox'a.

Далее, редирект 302-ый, вот здесь с погонялами 302-го редиректа некоторый кавардак. В основном все SEOшники на своих блогах называют его "Moved Temporarily" или "Temporary Redirect", хотя по спецификации должен быть "Found". Дело в том, что первые руководствовались устарелым RFC2068, правильнее было бы полагаться на название описанное в актуальном на текущий момент RFC2616.

С измененными названиями редиректа вроде как разобрались. Тем не менее смысл этого редиректа ничуть не изменился и заключается лишь в том, что запрашиваемая страница перенесена в другое место назначения ВРЕМЕННО. В следствии чего склейка не происходит, слив PR'ов и тИЦ'ей не засчитывается :) Однако некоторые продолжают спорить с данным утверждением и говорят об обратном, так как раньше поисковые системы хреново обрабатывали данный редирект и смышленные SEO-hijacker'ы умудрялись поиметь гугл и развести его на халявный PR. У Kass'a можно почитать про хитрожопые клоакинг-склейки (но походу нынче уже не действенные).


В общем с редиректами определились.Теперь непосредственно памятка по редиректам.

Редирект через meta-тэг "Refresh":

<meta http-equiv='Refresh' content='0; url=http://homelessinbelarus.com'>

Редирект через Javasript:

<script type="text/javascript">
<!--
window.location = http://homelessinbelarus.com";
//-->
</script>

Редирект с помощью PHP:

<?php
// 301 Moved Permanently
header("Location: http://homelessinbelarus.com", true, 301);
?>
<?php
// 302 Found
header("Location: http://homelessinbelarus.com", true, 302);
?>

Редирект через .htaccess (Apache HTTP Server)

# 301 Moved Permanently
Redirect 301 / http://homelessinbelarus.com

# 302 Found
Redirect 302 / http://homelessinbelarus.com

Внимание: при использовании клиентских редиректов (я их называют так потому что, они указываются в теле html документа, а не непосредственно в заголовке запроса). Так вот при их использовании по умолчанию редирект является 302ым. Будьте внимательны.


Update: доступно и с приколом о редиректах.

3 Comments:

Dots said...

Да действительно даж не предлагал что стоко вариантов существует, пасиб за обзорную статью, но есть вопрос, каким все же лучше пользоваться реально на практике???

bum said...

Реально на практике лучше не рисковать и пользоваться 301-редиректом.

Serg Bonder said...

отборные варианты...