Gute Weiterleitung, böse Weiterleitung (Redirect per Meta-Tag, JavaScript, htaccess und PHP)
Eine Weiterleitung kommt immer dann zum Zuge, wenn eine Seite die Adresse geändert hat, also wenn sie beispielsweise ihre Domain gewechselt haben oder veraltete Seiten in ein Archiv verschieben oder eine Umstrukturierung der Website vorgenommen haben. Als Webmaster hat man (gerade bei kommerziellen Angeboten) ein Interesse daran, dass die Besucher nicht auf ein schnödes „404 – Seite nicht gefunden“ treffen, sondern zur neuen Adresse weitergeleitet werden.
Aber wie realisiere ich eine Weiterleitung oder welche Arten von Weiterleitungen gibt es? Wie reagieren Suchmaschinen darauf?
Zunächst stellt sich die Frage clientseitige Weiterleitung oder serverseitige Weiterleitung.
Serverseitige Weiterleitung
Serverbasierende Weiterleitungen sind nach Möglichkeit immer den clientbasierenden Weiterleitungen vorzuziehen. Die beliebtesten Arten der serverseitigen Weiterleitung sind über Apache (.htaccess) und PHP. Für welche sie sich genau entscheiden, ist – abgesehen von den technischen Möglichkeiten, die ihr Provider anbietet – im Grunde genommen egal.
Die zweite wichtige Frage im Zusammenhang mit serverseitigen Weiterleitungen ist der HTTP Status Code. Der Server kann verschiedene Codes zurückgeben, uns interessieren hier nur die Status-Codes 301 und 302. Standardmäßig wird bei serverseitigen Weiterleitungen der Code 302 verwendet, sie sollten allerdings besser 301 zurückgeben.
Warum?
301 – Moved Permanently (Die Seite wurde permanent verschoben)
Beim Status-Code 301 wird der PageRank übernommen. 301 signalisiert den Spider, dass die Adresse veraltet ist und er nur noch die neue Adresse verwenden soll.
302 – Moved Temporarily (Die Seite wurde temporär verschoben)
Status-Code 302 birgt die Gefahr des sogenannten URL-Hijackings oder Domain-Hijackings. Eine Seite, die eine Weiterleitung über 302 schaltet, kann sich die Inhalte der neuen Adresse zu Eigen machen. Wenn die Weiterleitungsadresse dabei „stärker“ ist (also einen höheren PageRank hat) als die Zieladresse, dann verdrängt sie die Zieladresse aus dem Suchmaschinen-Index und die Unterseiten werden stark abgewertet. Für kommerzielle Seiten ist Hijacking also ein immenser finanzieller Schaden.
302-Weiterleitungen begegnet man manchmal bei Webkatalogen. Daher sollte man auch aufpassen, ob die Kataloge, in denen man sich anmeldet, vielleicht ihre Einträge mit dem Status-Code 302 weiterleiten. Welcher HTTP Status-Code an den Spider zurückgegeben wird, lässt sich beispielweise mit dem Online-Tool Web-Sniffer testen.
Für sie selbst bedeutet das hingegen, dass wenn sie eine Domain gewechselt haben und von der alten auf die neue Domain mit dem Status-Code 302 weiterleiten, dass in den Suchmaschinen weiterhin die alte Domain mit den Inhalten der neuen Domain gelistet wird, da ihre alte Domain ja höchstwahrscheinlich erst noch einen höheren PR hat, als ihre neue Domain. Ihre neue Domain wird erst in den Suchergebnissen angezeigt, wenn sie aus der 302- eine 301-Weiterleitung machen.
Und wie realisiere ich eine 301-Weiterleitung mit PHP oder .htaccess (Apache)?
PHP-Weiterleitung
Beispiel:
<?php
header("Status: 301 Moved Permanently");
header("Location:neueadresse");
exit;
?>
exit verhindert das nachfolgender Code ausgeführt wird. Abgesehen davon würde es auch keinen Sinn machen, danach noch Code ausführen zu wollen, da man direkt weitergeleitet wird und der Befehl header immer vor der Ausgabe stehen muss.
Da, wie bereits gesagt, standardmäßig eine 302-Weiterleitung benutzt wird, müssen wir mit Hilfe von header(„Status: 301 Moved Permanently“); explizit eine 301-Weiterleitung erzwingen. Wenn header(„Status: 301 Moved Permanently“); also fehlt, haben wir eine Weiterleitung mit Status-Code 302.
.htaccess-Weiterleitung
Beispiel:
Redirect 301 /verzeichnis/beispiel.html http://www.domain.com/beispiel.html
Darüber brauche ich eigentlich keine großen Worte mehr verlieren. Von /verzeichnis/beispiel.html wird auf http://www.domain.com/beispiel.html weitergeleitet und Status-Code 301 an den Spider ausgeliefert – fertig.
Damit wäre das Kapitel „serverseitige Weiterleitungen“ beenden, kommen wir nun zu clientseitigen Weiterleitungen…
Clientseitige Weiterleitungen
Clientseitige Weiterleitungen sind in fast allen Fällen nur eine Notlösung. Auf diese Notlösung muss z.B. zurückgegriffen werden, falls ihr Webspace-Provider keine serverseitigen Weiterleitungen unterstützt.
Clientseitige Weiterleitungen erfolgen per Meta-Refresh-Tag oder per JavaScript. Daher haben sie leider den Nachteil, dass die Weiterleitung durch Meta-Refresh oder JavaScript nicht von allen Browser unterstützt wird oder JavaScript abgeschaltet ist. Deswegen sollte man neben der Weiterleitung auch einen ganz gewöhnlichen anklickbaren Link hinzufügen (was auch den Vorteil hat, dass die Suchmaschinen diesem Link folgen).
Darüber hinaus können clientseitige Weiterleitungen dazu führen, dass ihre Seiten aus dem Index fliegen oder abgewertet werden – dies ist allerdings nicht zwangsläufig, denn es werden in Google auch regelmäßig Seiten gesichtet, die trotz clientseitiger Weiterleitung in den SERPs sehr weit oben stehen.
Nun denn, dass eigentliche Problem an clientseitiger Weiterleitung und der Grund, warum diese Art der Weiterleitung zum Ausschluss aus den Suchmaschinen führen kann, ist, dass Meta- und JavaScript-Weiterleitung gerne von Spammern verwendet werden. Clientseitige Weiterleitungen geben keinen Status-Code zurück, sie können also 301 und 302 vergessen und die Spider ebenfalls, denn der Spider kann ohne diesen Status-Code eine Weiterleitung auch nicht von einer stinknormalen Internetseite unterscheiden. Spider verarbeiten auch kein JavaScript. Weiterleitungen werden von den Suchmaschinen also genauso indexiert, wie andere Webseiten.
Spammer schmuggeln nun hochoptimierte Weiterleitungsseiten in den Index der Suchmaschinen und leiten alle Besucher, die über diese hochoptimierten Seiten kommen, auf die eigentliche Seite weiter. Denn Weiterleitungen sind ja ganz normale Internetseiten und sie können auch Inhalt haben, im Gegensatz zu serverseitigen Weiterleitungen. Nur leider ist der Inhalt bei clientseitigen Weiterleitungen nicht identisch mit den Inhalten der neuen Adresse.
Okay, so viel als Vorwarnung. Und so wird’s gemacht:
Meta-Refresh-Weiterleitung
Beispiel:
<meta http-equiv="refresh" content="15; url=http://www.neueadresse.de/">
Die 15 gibt an, dass 15 Sekunden gewartet wird, bis der Browser auf http://www.neueadresse.de/ weiterleiten soll. Ein zu geringer Wert kann dazu führen, dass die Weiterleitung schneller als Spam angesehen wird. Die Meinung der Gelehrten über die Mindestangabe geht etwas auseinander, einige sagen, dass die Weiterleitung frühstens nach 15 Sekunden erfolgen sollte, andere sagen 30 Sekunden oder noch mehr.
Nebenbei bemerkt kann es für Besucher auch sehr verwirrend und ärgerlich sein, wenn sie plötzlich ohne Vorahnung weitergeleitet werden, wenn sie noch dabei sind die Seite zu lesen (gilt für JavaScript-Weiterleitungen ebenfalls). Bei serverseitigen Weiterleitungen hingegen bekommt der Besucher nichts von der Weiterleitung mit.
JavaScript-Weiterleitung
Eine Möglichkeit ist:
<script language ="JavaScript">
<!--
document.location.href="http://www.neueadresse.de";
// -->
</script>
Das führt aber leider dazu, dass der Zurück-Button (einer der meistbenutzten Browserfunktion) gestört und unbrauchbar wird. Benutzen sie also lieber dieses Beispiel, da der Zurück-Button dadurch weiterhin funktioniert:
<script language ="JavaScript">
<!--
window.location.replace('http://www.neueadresse.de');
// -->
</script>
Fazit
Benutzen sie (wenn die technischen Gegebenheiten ihres Webspace-Providers dies erlauben) serverseitige Weiterleitungen. Achten sie darauf, dem Spider den HTTP Statuscode 301 zurückzugeben und nicht 302.
18. November 2019 um 08:41
[…] sind für die Webseite und den Besucher einfacher. Es gibt mehre Möglichkeiten einen solchen Redirect zu programmieren. Grundsätzlich ist es jedem selbst überlassen, für welche Methode er sich entscheidet. Es hängt […]