Um eine Domain oder eine Seite umzuleiten, können mehrere Versionen der Umleitungen benutzt werden. Bekannt sind vor alle die Umleitungen mit den Status Codes 301 und 302. Während der 301 redirect für eine dauerhafte Umleitung steht (301 Moved Permanently), steht der 302 redirect nur für eine vorübergehende Umleitung (302 Found). Die im 302 redirect angegebene Adresse stellt also nur ein vorübergehendes Ziels dar, die Gültigkeit der alten URL bleibt bestehen.
Die Auswirkungen der beiden redirect Möglichkeiten sind ebenfalls unterschiedlich. Während eine mit einem 301 redirect umgeleitete Seite die alte URL in den dauerhaft Suchmaschinen ersetzt, wird mit einer mit 302 redirect umgeleitete Seite die alte URL in den Suchmaschinen nur vorübergehend ersetzt. Dies kann zur Folge haben, dass die neue URL keinen PageRank erhält und auch das Ranking entsprechend herabgesetzt wird.
Warum das Ranking davon betroffen ist, mag sich der ein oder andere von Euch vielleicht fragen. Das ist ganz einfach erklärt. Die 302 redirect Methode wird und wurde in erster Linie zum so genannten URL Hijacking genutzt. Eine Methode, mit der sich der Inhalt anderer Domains zu eigen gemacht wird und die bei den Suchmaschinen aufgrund dessen in Verruf steht.
Wer eine Domain oder eine Seite umleitet sollte deswegen sicher stellen, dass der 301 redirect dazu benutzt wird und nicht eine 302 Umleitung, die zu schädlichen Auswirkungen führen kann. Mit dem Online Dienst Web-Sniffer können die Header Status Codes einzelner URLs abgefragt werden. Dort sollte dann für die alte URL der Header Status Code: 301 Moved Permanently erscheinen.
Nun mag der ein oder andere von Euch vielleicht meinen, dass ihn diese Problematik nicht betrifft, da er keine Seiten umleitet, aber zum Beispiel unsere wichtigste Domainumleitung, die Umleitung der Domain URL von ohne www auf mit www – oder umgekehrt – ist eine solche Umleitung, für die ausschließlich nur der 301 redirect verwendet werden sollte. So habe ich z.B. meine Domain Umleitung von ohne www auf mit www wie folgt in meiner htaccess Datei verankert:
RewriteEngine on
RewriteCond %{HTTP_Host} ^crazytoast.de$ [NC]
RewriteRule ^(.*)$ http://www.crazytoast.de/$1 [L,R=301]
Weitere 301 Weiterleitungsmöglichkeiten habe ich vor einiger Zeit hier beschrieben: Automatische Weiterleitung einzelner URLs mit redirect permanent
Interessant fand ich diesbezüglich auch zu erfahren, dass die Trackback URL, die von Wordpress generiert wird, im Standard per 302 redirect auf die Startseite umgleitet wird. Wer also die Trackback URL in seinen Beiträgen als Link anzeigt, ist mit einer 302 Umleitung geschlagen. Mario gibt in seinem Beitrag Wordpress Ranking Probleme: Trackback URL 302 Redirect eine schöne Anleitung, wie diese Problematik umgangen werden kann. Die einfachste Lösung ist natürlich die Trackback URL gar nicht oder als Text anzeigen, wie ich es zum Beispiel unter meinen Artikeln machen. Dennoch habe ich den von Mario beschriebenen Core Eingriff in der wp-trackback.php umgesetzt. Denn selbst wenn ich es selbst nicht mache, könnte mich jemand von extern auf diese Art und Weise anlinken, und damit hat es meinen Artikel dann auch schon erwischt.
Mit 302 Umleitungen ist wirklich nicht zu spaßen, deswegen prüft, wie Eure Domain und Seiten Redirects von statten gehen und passt diese gegebenenfalls an. 302 Redirects können Euch Ranking und auch PageRank kosten!
[...] Jetzt nur noch ein bisschen Tuning wie das hochsetzen der Ping-/ Trackbackzeit sowie die Status Code Änderung für die Umleitung der Trackback URL, dann ist wieder alles [...]
Du nutzt wirklich die eben genannte Variante und kannst dich weiterhin im Wordpressblog mit dem Browser anmelden und Artikel schreiben?
Ich nutze für WP Systeme folgende Variante:
RewriteEngine OnRewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Ich werde deinen Vorschlag nochmal versuchen. Wo sind die Unterschiede zwischen den Varianten?
@Paul: Das eine hat mit dem anderen nichts zu tun
Das was Du in Deinem Kommentar gepostet hast ist der Eintrag in der htaccess, der notwendig ist, wenn man eine Permalinks Struktur nutzt.
Darin ist nicht enthalten, wie in meinem oben genannten Beispiel, die Domain von mit www auf ohne – oder andersherum – umzuschreiben. Den entsprechenden Codeschnipsel braucht man zusätzlich
Hallo Tanja,
wundert mich, dass hier nicht mehr kommentieren! Bei diesem wichtigen Thema.
Ich bin einer derjenigen, die Tanja zu diesem Artikel inspiriert haben, denn bevor sie mir half die Verlinkung über die 301 zu steuern liefen alle Links auf 302. Und wie manche von euch wissen, hat meine Seite trotz aller Bemühungen meinerseits immer noch den Pagerank “0″.
Ich hoffe, dass es durch unser Zutun, von Tanja und mir, in diesem Punkt eine Änderung gibt!
Danke noch mal für deine tolle Hilfe!
Gruß
Matthias
@Matthias: Nach meinen Besucherzahlen zu urteilen und den heute neuen Artikeln in meinem Feedreader sind heute wohl alle draußen in der Sonne und nicht online am PC. Ich mache jetzt auch gleich wieder aus, habe irgendwie keine rechte Lust…
Freut mich, dass ich Dir helfen konnte und ich hoffe auf baldige Änderung und drück Dir die Daumen
Danke schön! Und ja, ab raus, ich mache heute auch nicht mehr viel!
Gruß
Matthias
@Crazy Girl, tatsächlich! =D
Du hast mir die Antwort auf eine Frage gegeben die mir seit Tagen Kopfzerbrechen bereitetet. Ich hab mich schon fast geschämt das ich es selber nicht hingekommen hab.
Beide Varianten waren mir bekannt, doch hatte ich immer nur eine Versucht und nicht beide gleichzeitig.
@Paul: *kicher*, Du brauchst Dich nicht schämen
Ich hab sie beide direkt untereinander: Erst mache ich die Rewrite Engine an, danach schreibe die Domain auf www um und dann weiter mit den vier Zeilen die Du im Kommentar hattest, beginnend bei der rewrite base.
Solche Befehle in der htaccess haben mir schon oft Kopfzerbrechen bereitet (hoffentlich wachsen mir deswegen nicht noch graue Haare). Da kommt es nämlich auch immer auf die Reihenfolge drauf an. Wenn man zum Beispiel einzelne redirect permanent Befehle noch rein schreibt, dann gehören die über diese beiden Passagen.
na super.
ich seh gerade, dass alle links, die google noch mit der alten url bekannt sind, nach der änderung der permalink-struktur via 302 weitergeleitet werden. allerdings sollte es nur eine frage der zeit sein, bis google die neue permalink-struktur verinnerlicht hat… ???
@limone: Läuft die Weiterleitung mit diesem Code?:
RewriteEngine OnRewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Wenn ja, dann versuch doch einfach mal die letzte Zeile so zu schreiben:
RewriteRule . /index.php [L,R=301]Und dann erzähl mir bitte kurz, ob die alten URLs jetzt mit 301 weitergeleitet werden
ich hab’s jetzt so eingegeben, komischerweise behauptet ‘http://web-sniffer.net/’ immer noch, dass die urls via 302 weitergeleitet werden. *rätsel’
Okidoki, ich glaube ich habe es gefunden. Rufe mal bitte in der wp-includes die Datei pluggable.php auf. Dort suche einfach mal nach 302, das ist 2x vorhanden.
Das ist ca. in Zeile 849 sein, folgender Code
function wp_redirect($location, $status = 302)und in Zeile 906 folgender Codefunction wp_safe_redirect($location, $status = 302)Ersetze das 302 darin einfach mal mit 301, speicher, hochladen und was sagt web-sniffer dann? Funktioniert auch noch die alte und die neue URL?
Falls das die Lösung ist, bitte irgendwo notieren und bei den nächsten WP Updates nicht vergessen wieder manuell zu ändern.
ich hab’s jetzt wieder rückgängig gemacht, weil ein test eben ergab, dass unterseiten mit der alten url alle auf die hauptseite geleitet werden statt auf die jeweilige neue unterseite. test-url: ‘http://caipi.limone.de/index.php/2006/07/14/diesel-preisschock/’ – sollte auf ‘http://caipi.limone.de/2006/07/14/diesel-preisschock/’ geroutet werden, wenn ich aber das [L] in der .htaccess durch [L,R=301] ersetze, wird auf ‘http://caipi.limone.de’ geroutet. und das ist nur einer von knapp 500 einträgen, bei dem sich jetzt durch die neue permalinkstruktur die url geändert hat. am pagerank konnte ich bis jetzt noch nichts feststellen, der steht konstant auf 4, ist ja eigentlich okay.
hm… klang super, hab ich gemacht, funktioniert auch, es kommt aber weiterhin hartnäckig eine 302-rückmeldung. *grübel*
ist aber nicht tragisch, können wir vertagen, vielleicht steh ich auch irgendwo auf der leitung. ich muss dummerweise momentan so viel anderes machen, dass ich mich nicht richtig tief reinknien kann. aber wir bleiben dran.
@Limone: Das einzige was mir jetzt noch einfällt wäre folgendes: In der pluggable.php steht ca. in Zeile 865
header("Location: $location");. Das würde ich mal versuchsweise mit folgendem Code ersetzen:header("Location: $location",TRUE,301);. Irgendwo baut der den redirect zusammen und nimmt nicht den Standardstatuscode, den Du ja schon in der pluggable.php geändert hattest.Ansonsten müsste man noch suchen, wo Wordpress die Permalinks weiterleitet. Ich habe aber leider nix gefunden. Im Normalfall braucht es dazu ein Plugin, denn sonst laufen die alten alle auf 404. Bei Dir dürfte das nur funktioniert haben, weil Du vorher das index.php in der Mitte hattest und nur dieses entfernt hast.
Jetzt habe ich auch mal eine Frage: Wie wirkt sich das denn auf die Backlinks aus? Ich persönlich bin kein FAN vom www und habe das auf ohne www umgeleitet. Ich weiss aber, dass viele Backlinks auch als ‘www.sascha-oertlin.com’ angegeben sind. Werden die mit umgeroutet?
@Bolle: Dass es funktioniert ist immer noch die beste Lösung
@Sascha: Musst Du ausprobieren. Wenn die Domain umgeleitet ist, dann werden auch die BLs umgeleitet. Ist die Domain nicht umgeleitet gibt es stattdessen saftigen DC und damit einhergehende Abstrafungen.