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:

19 Gedanken zu „HowTo: Webseiten Redirect mit 301“

  1. Pingback: hype.yeebase.com
  2. Man muss aber aufpassen, denn Google folgt zu vielen Weiterleitungen (auch 301) nicht mehr wirklich. Mittlerweile bekommt man über die WebmasterTools im Rahmen der Sitemap solche Aussagen auch direkt angezeigt.

  3. Verstehe ich den Beitrag zum 301 redirect richtig, dass ich damit folgendes Beispiel bzw. Problem lösen kann: Alte Homepage lief auf altedomain.de und wurde auch in Google gelistet nun wurde die Seite auf neuedomain.de neu aufgebaut und eine Umfirmierung durchgeführt. Google zeigt mir derzeit jetzt noch beiden Domains im Index an. Die alte Domain wurde einfach auf die neue Domain als Unterdomain aufgeschalten und liefert bei Aufruf die Anzeige der neuen Homepage! Auf jeden Fall mal Danke für diesen tollen Beitrag.

  4. @Hannes: Korrekt, damit solltest Du alle URL der alten Seite auf eine entsprechende Seite der neuen Domain umstellen können. Zusätzlich kannst Du in den Google-Webmaster-Tools anschliessend noch alte URL aus dem Index entfernen lassen.

  5. Ja super, werd das ganze gleich mal heute abend ausprobieren und hoffe es ist von Erfolg gekrönt :) Danke für den Tip mit dem Webmastertools, da hab ich gar nicht mehr dran gedacht.

    Gruß aus Schwäbisch Hall

  6. Hi Fladi,

    also mit den beannnten Lösungen komme ich meinem Problem nicht auf den Grund. Wie gesagt beide Domains liegen auf dem gleichen Account, gibt man nur die www der alten Homepage ein wird die neue Homepage bereits angezeigt. Nun mchte ich ja aber alle Suchanfragen die reinkommen z.B. http://www.altedomain.de/unterseite1.html auf die Startseite der neuen domain umleiten. Vielleicht weißt du eine Lösung, mit der bisherigen kommt der Fehler, dass die Seite immer so weitergeleitet das die Weiterleitung nie endet. Gruß

  7. thema erledigt, einfach die alte domain auf einen unterordner verschoben und dort eine neue htaccess angelegt dann funktioniert es auch mit dem nachbarn :)

  8. schöner Artikel den du da geschrieben hast.
    Zum Thema Weiterleitungen hab ich vor kurzem eine Webseite gebaut. Eine art tinyurl jedoch mit wesentlich mehr Funktionen. Wer sich die Seite anschauen will, einfach mal bei 301log.de vorbeischauen.

  9. Versuche gerade eine redirect einzurichten für unsere Firmenpage, weil in einem gestrigen Online-Website-Test das Fehlen einer .htaccess bemängelt wurde, da die URL je nach Eingabe ob mit oder ohne www davor als zwei URLs gewertet werden könnte.

    Die .htaccess konnte ich problemlos im Texteditor erstellen. Im Web fand ich jede Menge unterschiedliche Codes für dieses 301 redirect, ich habe sie alle ausprobiert, im ascii und im auto-mode übertragen (FTP), aber es funzt nicht. Es kommt immer diesselbe http 500er Fehlermeldung. Nun steht auf einer der Seiten http://www.webconfs.com/how-to-redirect-a-webpage.php dies ginge eh nur auf Linux Server mit Apache irgendwas Mod aktiviert – ist das richtig? Hier steht es nur unter 1.) bei alle Dateien umleiten. Dann liegt es ja vielleicht daran…

  10. Danke für den super ausführlichen Artikel. Jetzt ist mir vieles klar geworden. Eine Frage hätt ich da aber noch. Wie lange muss ich meine alte Domain behalten um sicherzugehen, dass alles umgeleitet wurde?

    Liebe Grüße
    Markus

  11. Im Zweifelsfall solange, wie die alte Domain aufgerufen wird. Am besten also beobachten wie sich die Seitenaufrufe verändern und wenn sie sehr niedrig sind die alte Seite abschalten.

  12. Danke für die ausführliche Erklärung . Hab einige Rules ausprobiert und es fluppt tadellos.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *