Ab und an kommt es vor, dass Seiten durch neue ersetzt werden (müssen). Ist die betreffende Seite gut gerankt, wäre es natürlich dumm, auf Traffic und somit Leser und Kunden zu verzichten. Musst du auch nicht, die Lösung heißt 301 Redirect.

Mir persönlich ist das gerade bei meiner Harzer Wanderseite (WordPress) passiert. Die Struktur steht, die ersten Seiten sind im Netz – und schon ist alles nicht ganz so optimal wie gedacht. Dummerweise sind die Seiten, die mich stören, längst in Google gelistet. Was also tun? Einfach die Seiten verlegen und Schwamm drüber? Nicht unbedingt clever, denn wenn Besucher einen 404er (nicht existierende Seite) angezeigt bekommen, verschwinden die meist auf Nimmerwiedersehen.

Schade drum, oder? Vor allem dann, wenn die Seite selbst ja gar nicht gelöscht ist, sondern lediglich einen neuen Pfad erhalten hat. Die gesuchte Information wird weiterhin angeboten, nur auf einer „neuen“ Seite oder vielmehr neuen URL. Was mich störte, war nämlich allein die Struktur. Von daher drängt sich ein 301 Redirect regelrecht auf, zumal dieser nicht schwer zu setzen ist.

Weiterleitung: Was sind 301 & 302 Redirects?

Wobei es sicher besser ist, diese 301 Weiterleitung oder eben 301 Redirect erst einmal zu erklären. Per 301 wird dem Server der Befehl erteilt, beim Aufruf einer URL oder Datei auf eine andere umzuleiten. Weil die URL oder Datei ersetzt, verschoben oder gelöscht wurde, also nicht mehr in ihrer Ursprungsform existiert. Der 301 Redirect steht übrigens für eine dauerhaft verschobene URL/Datei (moved permanently), die ursprüngliche URL/Datei ist somit auf alle Ewigkeit gelöscht.

Parallel gibt es den 302 Redirect für URLs oder Dateien, die eben nicht auf ewig verschoben sind. Ergo signalisiert ein 302 dem Client lediglich eine vorübergehende, nicht dauerhafte Weiterleitung. In punkto SEO sind beide Redirects interessant. Zum einen, um den Traffic weiterleiten zu können. Zum anderen, um den gewonnenen Linkjuice einer URL zu behalten, statt Besucher und Google ins Nirwana zu schicken. Google ist ein gutes Stichwort, denn permanente Crawling-Fehler können zu Sichtbarkeitsverlusten in Suchmaschinen führen. Das will keiner.

Redirect 301 Weiterleitung per htaccess

Kommen wir zur Umsetzung des 301 Redirects. Die erste Lösung für eine 301 Weiterleitung wäre htaccess. Bei WordPress ist die Datei schon vorhanden und braucht lediglich um ein paar Zeilen Code ergänzt werden. Voraussetzung für die 301 Weiterleitung via htaccess ist ein Apache/Linux-Webserver mit mod_rewrite. Das Modul ist in der Regel bereits aktiviert oder lässt sich im Adminbereich aktivieren. Andernfalls kontaktierst du einfach mal deinen Hoster, dass der den mod_rewrite für dich einrichtet.

Wie gesagt, bei WordPress und auch anderen CMS wie Drupal ist die .htaccess-Datei bereits als Standard dabei. Lade die Datei vom Server runter. Füge dann – nach (!) der Erstellung einer Kopie zur Sicherheit – diesen Code hinzu:

RewriteEngine On
Redirect 301 /alt.html http://www.domain.de/neu.html

„RewriteEngine On“ spricht das erwähnte mod_rewrite Modul an. „Redirect 301“ befiehlt die gewünschte Weiterleitung. Der erste Pfad steht für die alte, gelöschte Datei. Der zweite für die neue, auf welche künftig beim Aufruf der alten URL weitergeleitet werden soll.

Wichtig: Zwischen beiden URLs/Pfaden – die übrigens NICHT auf der gleichen Domain liegen müssen, womit der 301 Redirect auch (und gerade) bei einem Domainwechsel interessant ist – ist ein Leerzeichen Pflicht. Bei der ersten (alten) URL musst du außerdem das typische „http://www.domain.de“ weglassen und lediglich die Datei eintragen, ansonsten wird die Weiterleitung nicht erkannt. Die Muster-URLs ersetzt du natürlich durch deine eigenen Pfade. Für weitere 301 Redirects kopierst du einfach die zweite Zeile so oft wie nötig und fügst die jeweiligen alten bzw. neuen URLs ein.

Update Juli 2017: Zuletzt gab es von Brigitte den Kommentar, dass der 301 Redirect via htaccess nicht funzt. Nun bin ich selbst auf die Schnute gefallen. Meinen besten Autoblog habe ich zu meinem Stammhoster umgezogen. Dabei gleich auf SSL umgestellt. Danach war ich am aufräumen.

301 Weiterleitung htaccess in Drupal

Tote Links löschen, 404-Fehler auf passende (neue) Seiten umleiten. Per htaccess. Und bumm, klappte nicht. Wegen SSL? Frage an meinen Hoster. Nee. Gegenfrage: Vielleicht das CMS? Ah… Meine älteren Autoblogs laufen auf Drupal statt WordPress. Also fix gegoogelt. Und siehe da. Laut drupal.org verlangt Drupal einen anderen Code für den 301 Redirect via htaccess. Leider habe ich bei Brigitte die Frage nach dem CMS verpennt. Nun bin ich schlauer. Wenn du also bei Drupal einen 301 Redirect per htaccess setzen willst (bzw. musst), gehst du so vor…

Zuerst suchst du in deiner htaccess diese Stelle:

# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on

# Modify the RewriteBase if you are using Drupal in a subdirectory and
# the rewrite rules are not working properly.
#RewriteBase /drupal

RewriteBase /

Möglich, dass die Stelle in deiner htaccess anders ausschaut. War jedenfalls bei mir so. Wichtig ist, diese Stelle zu finden. Mit „# Various rewrite rules.“ am Anfang sowie „RewriteBase /“ am Ende. Nach diesem Code – und VOR „Rewrite old-style URLS“ – fügst du nun diesen Code ein.

#custom redirects

RewriteRule ^URLalt$ https://www.domain.de/URLneu [R=301,L]

#end custom redirects

„URLalt“ ersetzt du durch die alte Adresse (relativer Link). In „URLneu“ trägst du die neue URL als absoluten Link ein, also samt Domain. Wichtig: Bei „URLalt“ lässt du das „^“ am Anfang sowie das „$“ am Ende stehen. Ebenso wie das [R=301,L] hinter der neuen (absoluten) URL. Das ist nämlich der Drupal Befehl für den 301 Redirect. Bei mehreren Redirects trägst du den nächsten RewriteRule in der nächsten Zeile ein.

Ebenfalls wichtig: Speichern musst du die htaccess im Format UTF-8. Und auch hier muss der (Apache) Server wieder auf mod_rewrite gestellt sein. Das war’s, jetzt müsste die 301 Weiterleitung in Drupal (eigentlich) funzen.

Redirect 301 Weiterleitung per PHP

Eine dritte Möglichkeit der 301 Weiterleitung ist PHP. Daher funzt diese Variante nur bei entsprechenden PHP Dateien. Der große Nachteil gegenüber der 301 Weiterleitung via htaccess ist, dass jedes PHP-Dokument einzeln mit einem zusätzlichen Code versehen werden muss. Diese kommt in die erste Zeile des weiterzuleitenden Dokuments und lautet:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.domain.de/neue-datei.php");
header("Connection: close");
?>

In Zeile zwei wird die neue URL eingetragen, die (PHP)Datei abgespeichert und auf den Server übertragen, fertig. Das Manko der 301 Weiterleitung via Php ist somit klar: Wenn du mehrere URLs weiterleiten willst, vielleicht sogar einige Hundert oder gar Tausend, bist du mit der htaccess besser beraten. Hier reicht die Änderung einer einzigen Datei – fertig.

Redirect 301 Weiterleitung per WordPress Plugin

Eine dritte Variante des 301 Redirect dürfte Webworker freuen, die auf WordPress setzen und sich nicht an den Quellcode trauen. Denn WP bietet zur 301 Weiterleitung wenig überraschend eigene Plugins an. Selbst Erfahrungen mit solchen Plugins habe ich zugegeben keine, für weniger technisch versierte Webmaster aber ist die Variante sicher eine einfache Alternative. Kurz gegoogelt sind schon zwei WP Plugins gefunden: Simple 301 Redirects und Redirection.

Beide 301 Redirect Plugins sind seit Jahren auf dem Markt, kostenlos und werden weiterhin aktualisiert. Die Installation muss wohl kaum erklärt werden und kann direkt im Admin-Bereich der WP-Seite vorgenommen werden (Plugins > Installieren > Feld „Plugin suchen“ > „Simple 301 Redirects“ respektive „Redirection“ eingeben > installieren und aktivieren). Wie gesagt, selbst habe ich die Plugins nicht ausprobiert, aber zumindest zu Simple 301 Redirects ist auf mr-online-marketing.de ein Bericht samt Anleitung zu finden.

301 Weiterleitung: Weitere Infos zum Redirect

Persönlich ziehe ich übrigens die erste Methode der 301 Weiterleitung vor. Die htaccess ist (je nach Aufwand) schnell angeglichen und regelt alles aus einer Datei. Die PHP-Methode ist deutlich aufwendiger, vor allem, wenn es um (sehr) viele Weiterleitungen geht. Plugins wieder gehen zu Lasten der Performance. Daher bin ich mit Plugins generell sparsam bin.

Interessant dürfte noch die Frage sein, wie viele Weiterleitungen eigentlich Google „erlaubt“? Sind zu viele 301 Redirects – egal welcher Variante – eventuell schädlich für deine Seite? Die Antwort gibt Google-Mann Matt Cutts. Im folgenden Google Webmasters Video erklärt Cutts Sinn und Zweck der 301 Weiterleitungen. Die brennendste Frage beantwortet Cutts mit einem klaren Nein. Egal, ob du einen 301 Redirect setzt oder Tausende, Google ist das gleich.

Viel wichtiger als die Menge an 301 Weiterleitungen ist, dass du den Redirect möglichst auf eine echte Ersatz-URL leitest und nicht einfach auf deine Startseite. Das neue Ziel sollte also tatsächlich ein Ersatz für die gelöschte Seite sein. Schließlich wertet Google jede Seite deiner Website einzeln aus. Wenn du keine echte „Ersatzseite“ erstellst, wäre eine peppige 404-Seite wohl besser. Die entschuldigt und erklärt deinem Besucher den Fehler bzw. die Löschung der alten Seite und kann auf andere Unterseiten oder Angebot aufmerksam machen.

Das war’s zum Thema 301 Weiterleitung per htaccess, PHP und Plugin. Kommentare sind wie immer gern gesehen :-)