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

9

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 an eine 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 zu der anderen umgeleitet werden sollte.

Zu einer anderen Frage , die zur Verwendung von 307 empfiehlt:

307 Temporäre Weiterleitung

In diesem Fall sollte die Anforderung mit einem anderen URI wiederholt werden. Zukünftige Anforderungen sollten jedoch weiterhin den ursprünglichen URI verwenden. Im Gegensatz zu der historischen Implementierung von 302 darf die Anforderungsmethode bei der erneuten Ausgabe 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?

ar099968
quelle

Antworten:

3

Für Benutzer ist entweder eine 302- oder eine 307-Umleitung in Ordnung. Der einzige praktische Unterschied zwischen diesen und einer 301-Umleitung ist das Caching. Browser zwischenspeichern eine 301-Weiterleitung. Wenn der Benutzer seine Spracheinstellungen für den Browser ändert, ist es besser, wenn er die Stammseite besuchen und anders umleiten kann. Daher ist die Verwendung einer nicht zwischenspeicherbaren 302- oder 307-Umleitung angemessen.

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

Stephen Ostermiller
quelle
1

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 vernetzen, damit der Benutzer die gewünschte Sprache mit einem Sprachwähler leicht erreichen kann und Suchmaschinen nicht verwirrt werden (abgesehen von vielen, die das Gebietsschema-fähige Crawlen haben, wird dies dennoch empfohlen). .

Wenn Sie beispielsweise über spanische (n) und englische (en) Seiten verfügen, können Sie zusätzlich zu den Links zur spanischen und englischen Version die richtigen URLs mit rel="alternate" hreflang="x" Link- Tag für sich selbst angeben

<link rel="alternate" href="http://example.com/es" hreflang="es" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />
marcanuy
quelle
OP könnte dies wahrscheinlich bereits tun, aber die Frage example.com/bezieht sich auf die Stammseite ( ), die keinen Inhalt zu haben scheint. Weder Benutzer noch Bots würden etwas verpassen, wenn eine Weiterleitung von der Stammseite zu den sprachspezifischen Homepages erfolgt (vorausgesetzt, die Übersetzungen sind von dort aus wie von Ihnen beschrieben verlinkt).
Unor
@unor yep! ich habe schon hreflang. Die Frage betrifft die Stammseite.
ar099968