it-swarm.com.de

Richtiger Statuscode für die Sprachumleitung (301, 302,… 307)?

Ich habe eine Website mit mehreren Sprachen erstellt. Die URLs sehen folgendermaßen aus:

  • http://www.example.com/en/
  • http://www.example.com/de/

Wenn der Benutzer auf die Hauptdomäne http://www.example.com/ zugreift, erkennt der Webserver die Sprache des Benutzers (Accept-Language-Header) und leitet ihn zu einer der oben genannten URLs weiter.

Bisher haben wir eine temporäre Umleitung (302) verwendet, da der Benutzer mit anderen Spracheinstellungen zurückkehren kann und dann auf die andere umgeleitet werden sollte.

Auf einem anderen Frage , das rät, 307 zu verwenden:

307 Temporäre Umleitung

In diesem Fall sollte die Anforderung mit einer anderen URI wiederholt werden. Zukünftige Anforderungen sollten jedoch weiterhin den ursprünglichen URI verwenden. Im Gegensatz zur bisherigen Implementierung von 302 darf die Anforderungsmethode beim erneuten Ausgeben der ursprünglichen Anforderung nicht geändert werden. Beispielsweise sollte eine POST -Anforderung mit einer anderen POST -Anforderung wiederholt werden.

Die Frage ist: Was ist der richtige Statuscode für die Sprachumleitung?

7
ar099968

Das Problem bei der automatischen Umleitung basierend auf der Sprache des Benutzers besteht darin, dass Benutzer und Suchmaschinen möglicherweise nicht alle Versionen Ihrer Website anzeigen können.

Der beste Ansatz besteht darin, jede Sprachversion einer Seite zu verknüpfen, damit der Benutzer die gewünschte Sprache mit einer Sprachauswahl leicht erreichen kann und Suchmaschinen nicht verwirrt werden (abgesehen davon, dass es bei vielen noch empfehlenswert ist, das Gebietsschema zu kennen). .

Wenn Sie zum Beispiel spanische (n) und englische (n) Seiten haben, können Sie die richtigen URLs mit rel="alternate" hreflang="x" - angeben. link markiert sich zusätzlich zu den Links zur spanischen und englischen Version

<link rel="alternate" href="http://example.com/es" hreflang="es" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />
1
marcanuy

Für Benutzer ist entweder eine Weiterleitung 302 oder 307 in Ordnung. Der einzige praktische Unterschied zwischen diesen und einer 301-Umleitung besteht im Zwischenspeichern. Browser zwischenspeichern eine 301-Umleitung. Wenn der Benutzer die Spracheinstellungen seines Browsers ändert, ist es besser, wenn er die Stammseite besuchen und anders umleiten kann. Daher ist die Verwendung einer nicht cachefähigen 302- oder 307-Umleitung angemessen.

Suchmaschinen-Crawler senden normalerweise keinen Accept-Language -Header. Anstatt eine Umleitung auszugeben, wenn kein Accept-Language -Header vorhanden ist, sollten Sie eine Seite anzeigen, die Links zu allen Auswahlmöglichkeiten enthält. Auf diese Weise können Links zu Ihrer Root-Seite den PageRank an alle Ihre Sprachen weitergeben. Wenn Sie stattdessen umleiten, wird Ihr gesamter PageRank an Ihre Standardsprache übergeben. Ihre anderen Sprachen werden fehlen.

1