суббота, 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: доступно и с приколом о редиректах.

Комментариев нет: