Weiterleitungen und SEO
Weiterleitungen gehören zum grundlegenden Handwerkszeug eines SEO. Wenn sich die Struktur einer Website ändert oder ein neues CMS eingeführt wird, sind oft Änderungen der URLs die Folge. Geänderte URLs sind recht nervig – und Sie sind weder für Nutzer noch Suchmaschinen angenehm.
Der Web-„Erfinder” Tim Berners-Lee hat diese Thematik bereits 1998 in einem wunderschönen Artikel mit dem noch schöneren Titel Cool URIs don’t change dargelegt. Theoretisch, so sagt Berners-Lee, gibt es keinen Grund, dass sich die URL eines Dokuments ändern muss. Denn der Eigentümer einer Domain kann unterhalb seiner Domain den Namensraum (also den Pfad der URL) beliebig festlegen und nutzen. Typische Gründe, die für einen URL-Wechsel angegeben werden, sind fast immer Gründe, die Berners-Lee zufolge leicht umgangen werden können. Oder hätten vermieden werden können, wenn der Webmaster zu Beginn etwas Verstand in die Struktur seiner URLs gesteckt hätte.
Wenn Sie hier immer noch lesen, gehören Sie vermutlich zur Mehrheit der Webmaster, die hin und wieder uncoole URLs verwenden und deshalb um Weiterleitungen nicht herumkommen.
tl;dr
Für SEO ist die Nutzung einer permanenten Weiterleitung nahezu immer die richtige Entscheidung. Ob Sie dafür den „klassischen” Statuscode 301 nutzen oder den „moderneren” Code 308, ist für Suchmaschinen egal. Achten Sie aber darauf, dass sie für 301 bzw. 308 den Statuscode der Weiterleitung immer gezielt angeben müssen. Viele Methoden zur Weiterleitung senden ohne spezifische Angabe des Codes die für uns meist falsche Weiterleitung mit dem Code 302.
Es gibt prinzipiell zwei Arten von Weiterleitungen:
HTTP-Weiterleitungen: Das sind Weiterleitungen, die im HTTP-Protokoll definiert wurden und somit von jedem HTTP-Client (egal ob ein moderner Browser oder ein Suchmaschinen-Robot) verstanden werden. Diese Art von Weiterleitungen werden manchmal auch Server-Weiterleitungen genannt, da sie durch einen Header in der Antwort des Webservers gesteuert werden.
Client-Weiterleitungen: Diese Art der Weiterleitung funktioniert nur, wenn der Client in der Lage ist, die Weiterleitungsanweisung zu interpretieren. Da es sich dabei nicht um eine Eigenschaft handelt, die im HTTP-Protokoll definiert wurde, führen auch nicht alle Clients diese Weiterleitung aus. So fallen etwa JavaScript-Weiterleitungen in diese Kategorie; solche Weiterleitungen führt ein Client nur dann aus, wenn er JavaScript interpretieren kann – und wenn die JavaScript-Funktionalität auch eingeschaltet ist.
HTTP-Weiterleitungen richtig einsetzen
An dieser Stelle soll der Blick auf HTTP-Weiterleitungen gerichtet werden. Das sind die Weiterleitungen, die wir als SEOs nutzen sollten. Typische Möglichkeiten zur clientseitigen Weiterleitung sind in diesen beiden Artikeln beschrieben: JavaScript-Weiterleitungen und Weiterleitung per Meta-Refresh-Tag.
Wenn Sie also Weiterleitungen zu sinnvollen Zwecken, etwa nach einem Website-Relaunch, einsetzen möchten, so sind HTTP-Weiterleitungen der korrekte Weg. Da diese Weiterleitungen von jedem HTTP-fähigen Client erkannt werden, sind natürlich auch Suchmaschinen-Crawler in der Lage, diese Weiterleitungen zu erkennen. Haben Sie also die URLs in Ihrer Website neu organisiert, so sollten Sie von den alten Adressen, die in vielen Suchmaschinen noch verzeichnet und manchmal auch von fremden Websites verlinkt sind, eine Weiterleitung auf die neue, jetzt gültige Adresse setzen. Das hilft Ihnen, keine Nutzer zu verlieren und signalisiert gleichzeitig den Suchmaschinen, dass sich die URL der Webseite geändert hat. Damit wird in den meisten Fällen die neue Adresse nicht nur schneller aufgenommen, sondern Suchmaschinen berücksichtigen auch die Links, die auf die alte URL zeigen, für die Bewertung der neuen Adresse.
301 oder 302
Allerdings kommt es hier auf ein kleines Detail an. Es gibt zwei verschiedene Arten der HTTP-Weiterleitung, die sich im übergebenen Statuscode unterscheiden. Während der Code 301 für Moved Permanently steht, bedeutet 302 Found (Moved Temporarily). 301 signalisiert also dem Client, dass die angeforderte URL veraltet ist und künftig immer die neue angefordert werden soll; 302 hingegen heißt, dass die alte URL durchaus weiterhin gültig ist und nur derzeit die gewünschte Webseite unter einer anderen Adresse aufgefunden werden kann.
Während für einen menschlichen Nutzer diese Unterscheidung unbedeutend ist, kann sie für die Auffindbarkeit einer Website in Suchmaschinen entscheidend sein. Denn Suchmaschinen nutzen diesen Statuscode um zu ermitteln, ob die weiterleitende („alte”) URL im Datenbestand verbleiben soll oder dort gelöscht wird. Ein Code 302 sagt der Suchmaschine: „Lass die Adresse bitte in deiner Datenbank, denn sie wird bald wieder benutzt werden.“ Das führt nun aber dazu, dass die Suchmaschinen die alte und die neue Adresse indexieren – und somit zwei URLs mit letztlich demselben Inhalt enthalten, was wir aus verschiedenen Gründen vermeiden wollen. Sie sollten deshalb bei Änderungen an Ihrer Website, die Weiterleitungen erfordern, diese Weiterleitungen mit dem Statuscode 301 ausführen.
Wildes Weiterleitungs-Wirrwarr
Mit der Weiterentwicklung des HTTP-Protokolls wurden weitere Weiterleitungen eingeführt. Zusätzlich zu 301 Moved Permanently gibt es nun noch 308 Permanent Redirect. Und auch der bisherige Statuscode 302 Found (Moved Temporarily) bekommt nun eine „moderne” Entsprechung mit 307 Temporary Redirect. Die wesentliche Änderung ist, dass die neuen Codes dem Browser sagen, er soll das Weiterleitungsziel mit der selben Methode (GET, POST, etc.) aufrufen wie die ursprüngliche URL. Bei 301 und 302 wurde der Aufruf der Ziel-URL meist mit einem GET-Request durchgeführt.mod_alias
Wie aber lassen sich Weiterleitungen einfach realisieren? Das hängt in erster Linie vom eingesetzten Webserver und dessen Konfiguration ab. Wenn Sie einen Apache in der üblichen Konfiguration nutzen, und die Marktanteile besagen, dass Sie das mit ziemlicher Wahrscheinlichkeit tun, lässt sich eine Weiterleitung am einfachsten über eine .htaccess-Datei erledigen. Diese Dateien ermöglichen Konfigurationseinstellungen für einzelne Domains oder gar nur einzelne Unterordner vorzunehmen und können sehr einfach für Weiterleitungen eingesetzt werden.Dazu muss allerdings das Apache-Modul mod_alias aktiviert sein, was meistens der Falls ist. Hier sehen Sie ein Beispiel:
Redirect 301 /old/ https://www.example.com/new/
Wichtig ist, dass das Weiterleitungsziel als absolute URL mit führendem https:// anzugeben ist. Viele Clients akzeptieren zwar auch eine relative URL als Zielangabe, allerdings entspricht dies nicht der HTTP-Definition.
mod_rewrite
Alternativ lassen sich Weiterleitungen auch über das Modul mod_rewrite erledigen. Das Modul gehört zur Grundausstattung eines jeden vernünftig konfigurierten Webservers, denn Systeme wie WordPress setzen darauf, um schöne URLs (Stichwort „Permalinks“) zu erzeugen.
Das Beispiel unten zeigt wie die mod_rewrite-Lösung für die selbe Weiterleitung wie zuvor aussieht. Anders als bei mod_alias können hier Platzhalter, genauer: Reguläre Ausdrücke, benutzt werden. Damit lassen sich sehr komplexe Weiterleitungsregeln erstellen und komplette Relaunches können so mit wenigen Zeilen in der .htaccess-Datei erledigt werden.
RewriteEngine On
Redirect 301 /old/
RewriteRule ^old/.*$ /new/$1 [R=301]
Wenn Sie Ihre Weiterleitung auf diese Art ausführen, sollte Google schnell bemerken, dass Sie Ihre Website umgebaut haben und die neuen Adressen in seine Datenbank aufnehmen.