Veränderte URLs Google mitteilen: Redirect mit 301

Angenommen man hat schon eine Menge Seiten im Google-Index. Nun möchte man das Schema der URLs dieser Seiten verändern um es beispielsweise ein bisschen SEO zu betreiben.

Die naheliegendste Vorgehensweise dabei wäre, eine neue Action im Controller zu schreiben und von dort aus auf die neue URL umzuleiten:


def some_action_old
redirect_to some_action_url(params[:id])
end

Oder so ähnlich. Für den Besucher sieht das prima aus, denn er sieht nur die neue URL im Browser. Googlebot bekommt beim nächsten Crawl ebenfalls die Weiterleitung mitgeteilt, man könnte daher annehmen er würde ab dann die neue URL speichern. Das wird aber nicht passieren, warum?

redirect_to liefert den Status-Code 302 (Moved temporarily) zurück. Wie der Name schon sagt, gilt diese Umleitung nur vorübergehenderweise- nur für diesen speziellen Seitenaufruf. Im normalen Gebrauch macht das auch Sinn: Angenommen man klickt auf einen Logout-Link, so wird man anschließend zur Startseite umgeleitet. Das bedeutet jedoch nicht, dass ab jetzt die URL der Startseite die gleiche Bedeutung wie die Logout-URL hat.

Für diesen Fall gibt es den Status-Code 301 (Moved permanently). Um diesen zurückzugeben, muss man direkt in den Header zugreifen. (Ich fand diesen Trick über Snippets.dzone.com).


def some_action_old
redirect_to post_url(@post), :status=>301
end

Jetzt wird der Googlebot nach und nach die alten URLs gegen die neuen austauschen. Software zum auswerten der Serverlogs (ich verwende AWStats) zeigt eine Tabelle mit den häufigsten HTTP-Statuscodes an. Dort kann man durch die Zahl der 301-Redirects abschätzen, wie oft dieser Aufruf tatsächlich genutzt wurde.

Tags: , ,

Leave a Reply

CAPTCHA image