2 Aralık 2008 Salı

SEO: Yönlendirme nasıl yapılmalıdır? (301 Redirect)


Domainler taşındığında yada sayfaların isimleri değiştiğinde varolan adreslemeyi, yeni sisteme yönlendirme ihtiyacı doğar. Bu bağlamda en sık başvurulan html etiketi refresh olmaktadır.

<meta equiv="refresh" content="0; url=http://www.turkwm.com/yeni-icerik.html">

Content parametresindeki sıfır sayısı, refresh işlemi için beklenecek sürenin saniye cinsinden karşılığıdır. SEO'nun ülkemizde ilk tartışılmaya başladığı yıllarda net bilgiler yerine kulaktan dolma bilgilerle davranıldığı için, refresh konusunda hala tam bir uzlaşma sağlanamamıştır. Kimileri refresh süresi 30 saniye oluyorsa sorun olmayacağını düşünüyor, kimileriyse 5 saniyenin yeterli olduğunu düşünüyor.

Google'ın konuyla alakalı destek sayfalarında bu konuda net bilgi verilmemiş. Aksine daha farklı bir görüş sunmuş.

However, it is not supported by all browsers and can be confusing to the user. The W3C recommends that this tag not be used. We recommend using a server-side 301 redirect instead.


Son mesajı tercüme edersek, "sunucu taraflı 301 yönlendirmesini tavsiye ediyoruz." Evet, google meta etikenin bir parametresi olan refresh yerine sunucu taraflı yönlendirmeyi öneriyor.

Sunucu tarafındaki yönlendirme işlemi nasıl yapılır ?

php,asp,cgi,ruby ..vs sunucu tarafında derlenen programlama dillerinde 301 yönlendirmesini yapabiliriz. Buna ek olarak windows sunucularda IIS yönlendirmesinden, linux sunucularda da .htaccess 'den faydalanılabilir.

Yönlendirme Örnekleri;
PHP Yönlendirme
<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.turkwm.com/yeni-adres/" );
?>

ASP Yönlendirme
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.turkwm.com/yeni-adres/"
%>

ASP .NET Yönlendirme
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.turkwm.com/yeni-adres/");
}
</script>


JSP (Java) Yönlendirme
<%
response.setStatus(301);
response.setHeader( "Location", "http://www.turkwm.com/yeni-adres/" );
response.setHeader( "Connection", "close" );
%>

CGI PERL Yönlendirme
$q = new CGI;
print $q->redirect("http://www.turkwm.com/yeni-adres/");

Ruby on Rails Yönlendirme
def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "http://www.turkwm.com/yeni-adres/"
end

ColdFusion Yönlendirme
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.turkwm.com/yeni-adres/">

htaccess ile yönlendirme

Apache redirect ile:

Redirect 301 / http://www.turkwm.com/yeni-adres/

Mod-rewrite modülü ile:

RewriteEngine on
RewriteRule ^(.*)$ http://www.turkwm.com/yeni-adres/$1 [R=301,L]