Seite wählen

Für das Weiterleiten einer (alten) Seite auf eine neue empfiehlt Google und andere Suchmaschinen einen serverseitigen Redirect durch den HTTP-Status Code 301 (Moved Permanently).

Diese Art der Weiterleitung teilt den Suchmaschinen mit, dass die Seite permanent übersiedelt wurde und gibt auch die URL der neuen Seite an. Beim nächsten Crawl der Seite wird der Redirect gefunden und der Robot folgt diesem idealerweise und findet dadurch die neue URL der Web- oder Unterseite.

Aus SEO-Sicht ist nur die permanente Weiterleitung per 301 Redirect zu empfehlen, da diese auch den (meisten) Link Juice an die neue Domain oder Unterseite übergibt und diese im Idealfall dadurch die Rankings der alten Seite übernimmt.

Redirects sind sowohl per HTML, PHP, JavaScript als auch serverseitig möglich. 301 Redirects können zwar auch mittels PHP erstellt werden, für eine kürzere Ladezeit ist aber die Weiterleitung per .htaccess-Datei besser geeignet.

Ich gehe im folgenden nur auf Weiterleitungen per .htaccess-Datei (auf einem Webserver mit Apache) ein, da dies von den meisten Webservern unterstützt wird.

301 Redirect einer gesamten Domain

Hat sich die ganze Domain einer Webseite geändert, kann man die folgenden Zeilen in der .htaccess-Datei einfügen um wirklich Alles (Webseiten und alle Unterseiten) weiterzuleiten:

RewriteEngine on
RewriteRule (.*) http://neue-domain.tld/$1 [R=301,L]

301 Redirect einzelner (Unter)seiten

Hat sich die URL einer einzigen Unterseite geändert, kann man diese so weiterleiten:

RewriteEngine on
Redirect 301 /alte-seite.html http://domain.tld/neue-seite.html

Beachten Sie aber, dass die alte Unterseite per relativem und die neue per absolutem Pfad angegeben wird.

Das selbe Spiel können Sie auch für mehrere Redirects von Unterseiten machen. Geben Sie pro Zeile aber nur einen Redirect ein.

RewriteEngine on
Redirect 301 /alte-seite.html http://domain.tld/neue-seite.html
Redirect 301 /alte-seite2.html http://domain.tld/neue-seite2.html

301 Redirect der Startseite ohne Unterseiten

Auch wenn dieser Fall in der Praxis eher selten vorkommt, ist es dennoch gut zu wissen, wie man einen solchen Redirect richtig erstellt.

Eigentlich wäre die folgende Weiterleitung aus logischen Gründen in Ordnung, in der Praxis funktioniert diese aber nicht:

RewriteEngine on
Redirect 301 / http://neue-domain.tld/

Auch wenn Sie keine Datei namens index.html in Ihrem Hauptverzeichnis haben, funktioniert diese Art der Weiterleitung so:

RewriteEngine on
Redirect 301 /index.html http://neue-domain.tld/

301 Redirect von www auf nicht-www

Ich persönlich bevorzuge die nicht-www Version einer Webseite, da das www genau genommen eine Subdomain ist und ich die Webseite aber auf der Hauptdomain haben will. Was SEO betrifft ist es meiner Meinung nach vollkommen egal ob die Webseite mit oder ohne www erreichbar ist. Wichtig ist aber, dass die www auf die nicht-www Version der Webseite zeigt (oder eben umgekehrt).

Das erreichen Sie durch diese Zeilen in Ihrer .htaccess-Datei:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

301 Redirect von HTTP auf HTTPS

Bei der Nutzung von HTTPS ist es notwendig, dass jede Unterseite entweder per HTTP oder per HTTPS erreichbar ist um Duplicate Content zu vermeiden. Durch 301 Redirects (permanente Weiterleitungen) kann man das gewährleisten.

In den meisten Fällen will man alle (Unter)seiten via HTTPS aufrufen. Dafür sind neben einem gültigen SSL-Zertifikat die folgenden zwei Zeilen in der .htaccess-Datei notwendig.

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Mehr Informationen zu den vielen serverseitigen Einstellungsmöglichkeiten finden Sie im .htaccess Copy & Paste Cheatsheet.

Weiterleitungen mit PHP

Neben der serverseitigen Weiterleitung via .htaccess-Datei ist es auch möglich einen Redirect mit PHP durchzuführen. Ich persönlich nutze diese Methode nur selten, da ein Redirect per .htaccess schneller geht und auch mehr Möglichkeiten bietet.

Code für Weiterleitung mit PHP:

Speichert man diesen Code-Snippet in einer PHP-Datei ab und ruft diese am Server ab, wird man automatisch auf die URL https://pugstaller.com/ weitergeleitet. Diese Weiterleitung ist ein Redirect mit dem HTTP-Status Code 302 (Found).

301 Redirect mit PHP

Da wir aus SEO-Sicht eine Weiterleitung per HTTP-Status Code 301 (Moved Permanently) wollen, müssen wir folgenden Code verwenden:

Dadurch bekommen wir den erwünschten 301 Redirect per PHP.

Weiterleitungen dieser Art sind praktisch, da man einzelne Weiterleitungen dadurch erstellen kann ohne die .htaccess-Datei zu vergrößern und den Webserver zu verlangsamen.
Der große Nachteil liegt jedoch daran, dass man jeweils nur einen Redirect machen kann und eine seitenweite Weiterleitung um einiges aufwändiger ist als per .htaccess-Datei.