HowTo: Webseiten Redirect mit 301

Beim Umzug von von TYPO3 auf WordPress hat sich zwangsläufig auch die Linkstruktur geändert. Um meine Besucher nicht zu vergraulen und mein Ranking bei den Suchmaschinen zu behalten war es also nötig eine Lösung zu finden, die die alten Seiten auf die neuen umleitet. Die Lösung für solche Probleme liefert der Webserver mit und nennt sich 301 redirect.

Was ist ein 301 redirect?

301 redirect ist die wohl beste Möglichkeit das aktuelle Suchmaschinenranking beim Umzug einer Seite oder des gesamten Webauftritts zu behalten. Der Code „301“ steht für „moved permanently“ (dauerhaft verschoben). Ein solches Redirect wird in der .htaccess Datei eintragen. Es trägt die Form (alles in einer Zeile):

redirect 301 pfad/alte/seite/datei.html http://www.domain.de/pfad/neue/seite/datei.html

Was ist eine .htaccess Datei?

Bei jedem Besuch eines Besuchers oder einer Suchmaschine auf Deine Webseite überprüft der Webserver ob sich in dem angeforderten Verzeichnis eine .htaccess Datei befindet. In dieser Datei können viele Anweisungen für den Webserver stehen. Darunter befinden sich Anweisung für bestimmte Zugriffe, Sicherheitseinstellungen, Fehlerbehandlungen und auch unser 301 redirect.

Wie wird ein 301 Redirect angelegt?

  1. Erstelle eine .htaccess Datei mit einem Editor Deiner Wahl. Dies machst Du entweder direkt auf der Shell deines Webservers (im Rootverzeichnis), oder lokal. Bei lokaler Erstellung muss die Datei später dann per FTP entsprechend übertragen werden. Sollte bereits eine .htaccess vorhanden sein, empfiehlt es sich diese zu verwenden und nur zu bearbeiten, damit bereits vorhandene Einstellungen nicht verloren gehen.
  2. Füge den entsprechenden Code am Ende ein (alles in einer Zeile):

    redirect 301 /pfad/alte/seite/datei.html http://www.domain.de/pfad/neue/seite/datei.html

  3. Speichere Deine Änderungen und übertrage die Datei ggf. per FTP auf Deinen Webserver (in das Root-Verzeichnis)
  4. Teste es, indem Du die alte URL aufrufst. Du solltest nun direkt auf die neue URL umgeleitet werden.

Beachte, kein „http://www“ in das erste Statement zu schreiben. Es muss der komplette Pfad vom Root deines Webservers angegeben werden. Schauen wir uns die Zeile nun nochmal genauer an:

  • „redirect 301“ – die eigentliche Anweisung für den Webserver
  • „/pfad/alte/seite/datei.html“ – die Seite die umgeleitet werden soll
  • „http://www.domain.de/pfad/neue/seite.datei.html“ – die komplette neue URL

Wie reagiert nun ein Suchmaschinen-Spider auf eine solche Umleitung? Die .htaccess wird ja nicht vom Spider ausgelesen, sondern vom Webserver „ausgeführt“. Der Spider jedoch erkennt den Statuscode, den der Webserver liefert. Beim nächsten Update seiner Datenbank sollte die Suchmaschine nun die alte URL aus dem Index werfen und die neue aufnehmen. Häufig kommt es aber auch vor, dass alte und neue URL gemischt auftauchen. Auch leichte Änderungen im Pagerank können auftreten. Es dauert so ca. 6-8 Wochen bis sich die Änderungen an der Seite auch in den Suchergebnissen niederschlagen.

Weitere Möglichkeiten von 301 redirect:

  1. Um ALLE Dateien Deiner Domain mithilfe einer .htaccess umzuleiten kannst Du (auf einem Unix/Linux-Webserver) i.d.R. folgendes verwenden:

    redirect 301 ^(.*)$ http://www.domain.de
    redirectMatch permanent ^(.*)$ http://www.domain.de

    Um Deine alte Startseite (index.html) umzuleiten:

    redirect 301 /index.html http://www.domain.de/index.html
    redirect permanent /index.html http://www.domain.de/index.html

  2. Wenn Du http://domain.de auf http://www.domain.de umleiten möchtest und mod_rewrite auf dem Webserver verfügbar ist, erreichst Du dies durch folgende .htaccess:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^domain\.de
    RewriteRule ^(.*)$ http://www.domain.de/$1 [R=permanent,L]

    oder

    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^domain\.de$ [NC]
    RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301,L]

  3. Alle .html Dateien auf .php Dateien umzuleiten ist durch mod_rewrite auch kein großes Problem:

    RewriteEngine on
    RewriteBase /
    RewriteRule (.*).html$ /$1.php

  4. Um ein Verzeichnis und alles darunter umzuleiten:

    redirectMatch 301 ^/verzeichnis-alt/(.*) http://www.domain.de/verzeichnis-neu/


Warum nicht per META-Tag redirect machen?

Die Umleitung per META-Tag erfolgt direkt in der aufgerufenen Seite. Dort wird im HEAD-Teil

<meta http-equiv=“refresh“ content=“0; url=http://www.domain.de/“>

eingetragen. Hierbei bewirkt das „content=10“, dass der Browser nach 10 Sekunden die darauffolgende URL aufruft. Wenn man „content=0“ einträgt wird die Umleitung sofort ausgeführt. Ein paar alte Browser unterstützen diese Art der Umleitung nicht. Deshalb ist es besser noch zusätzlich den Link (neue Domain) mit anzugeben.

Technisch gesehen liefert die angefragte Seite, wie auch die Seite auf die umgeleitet wird, einen Statuscode „200 OK“ zurück. Es sind also zwei unabhängige Seiten. Dementsprechend versucht die Suchmaschinen auch beide Seiten zu indizieren. Hier genau liegt aber das Problem. Denn der Spider des Suchmaschinenbetreibers erkennt die Umleitung und wertet Deine Seite deshalb u.U. ab, da es sich um eine beliebte SPAM-Methode handelt. So könnte man 1000 Domains mit solchen Seiten und jeder Menge Keywords einrichten. Echte Besucher (kein Spider) werden umgeleitet auf die eigentliche Seite. Indiziert wird aber nicht nur die eigentliche Seite sondern auch die 1000 Domains mit Keywords, die meist gar nichts mit dem eingentlichen Inhalt zu tun haben.

Beim 301 redirect wird hingegen nur die echte Zielseite in den Index aufgenommen und durch den Statuscode kann der Suchmaschinenbetreiber zusätzlich noch die veralteten Seite aus dem Index werfen. Dies ist also der beste Weg um alte Seiten auf neue umzuleiten und gleichzeitig wird auch der Page Rank mit übertragen.

Zum weiterlesen: