yakamara / redaxo_yrewrite

A multidomain URL rewrite engine for REDAXO
MIT License
56 stars 35 forks source link

Weiterleitungsart der Startseite auf 301 ändern #511

Closed TobiasKrais closed 1 year ago

TobiasKrais commented 1 year ago

Die Startseite meiner Domain https://ingtec.ch/ wird per 302 auf https://ingtec.ch/de/ weitergeleitet. Da die Weiterleitung aber per 302 erfolgt, zeigt mir Google beide Seiten als Duplikat an. Andere große Seiten machen eine 301 Weiterleitung und verhindern damit die Duplikatmeldung. Könnte das angepasst werden?

ynamite commented 1 year ago

+1 Finde Tobias hat recht und ich stelle die gleiche Problematik bei https://www.vincafilm.ch fest.

bitshiftersgmbh commented 1 year ago

+1 unter Vorbehalt ...

Ich glaube, die Idee ist, dass der Bot nicht für EN, ES, DE Sprach-Header etc. jeweils das Signal bekommt, die Startseite / ist jetzt immer (301) /en/. Dann kommt der spanische Bot und da sagt der Server, die Startseite / ist immer /es/ etc. Diese wiedersprüchliche Zuweisung, die es eigentlich nur 1 x geben sollte, soll wohl durch das 302 verhindert werden.

Wenn mir aber Startseiten in wichtigen Sprachen aus dem Index fliegen, weil Google Duplicate Content erkennt und der Canonical nicht mehr mit dem Status-Code (302) vereinbar ist, dann hat man das Problem ja nur in eine andere Ecke verlagert.

Richtig knorke wär es also aus meiner Sicht, wenn man es einfach einstellen könnte. Zumindest bis irgendwer ein offizielles Statement seitens Google ausgräbt, wo das Best Practice für das Szenario beschrieben ist.

TobiasKrais commented 1 year ago

In der Praxis sieht es so aus: aufgrund der Sitemap werden der Suchmaschine alle zu indexierenden Seiten angezeigt. Es geht also keine Startseite verloren, weder /es/ noch /en/,.... Eine 301 Weiterleitung ist die einzige Möglichkeit Google mitzuteilen, dass doppelter Inhalt vermieden wird. Wohin weitergeleitet wird ist zweitrangig. Warum? Ziel ist lediglich, die Hauptseite ohne lang slug (/)aus dem Index zu nehmen und statt dessen die Seiten mit lang slug in der jeweiligen Sprache zu positionieren. Ist der Vorbehalt unter praktischen Gesichtspunkten daher noch haltbar? So wie ich das verstehe: nein.

bitshiftersgmbh commented 1 year ago

Ist der Vorbehalt unter praktischen Gesichtspunkten daher noch haltbar?

Wenn man davon ausgeht, dass deine Einschätzung, dass die 301-Widersprüche weniger relevant sind, stimmt, dann: nein

gharlan commented 1 year ago

Andere große Seiten machen eine 301 Weiterleitung und verhindern damit die Duplikatmeldung.

302-Weiterleitungen:

301-Weiterleitungen:

Welche weiteren Seiten hattest du noch gefunden mit 301-Weiterleitung?

Mir kommt 302 eigentlich korrekter vor. Ich vermute, dass es für das Problem noch eine andere Lösung geben muss unter Beibehaltung des 302-Codes.

TobiasKrais commented 1 year ago

Schauen wir uns die Fakten nochmals an:

  1. Fakt ist: 302 Weiterleitungen werden von Google als Duplicate Content angesehen.
  2. Fakt ist: Duplicate Content wird von Google als Fehler, somit schädlich, angesehen.
  3. Fakt ist: Duplicate Content ist zeitnah nur mit einer 301 Weiterleitung zu beseitigen.

Und dann die Vermutungen:

  1. Vermutung ist: es gibt eine bessere Lösung. Fakt ist: wir kennen sie nicht.
  2. Vermutung ist: 301 Weiterleitungen zu wechselnden Zielen ist schädlich. Fakt ist: Google reagiert positiv auf die 301 Weiterleitung.

Hier ist Pragmatismus angesagt. Dann bekommen wir die Duplicate Content Seiten aus der Search Console.

ynamite commented 1 year ago

Richtig knorke wär es also aus meiner Sicht, wenn man es einfach einstellen könnte.

+1 Wieso nicht dem Entwickler überlassen? Dann kann man selber entscheiden, wie man's möchte.

alxndr-w commented 1 year ago

https://www.adobe.com schaltet meines Wissens ein Popup zur Auswahl von Land/Sprache vor ohne Redirect.

  1. Entwickler∗innen können den lang-slug für die Hauptsprache deaktivieren. Problem gelöst.
  2. Entwickler∗innen können eigene Domains verwenden für eigene Sprachen. Problem gelöst.

Wer auf diese (m.E. nicht gute) Lösung einer Umleitung zurückgreifen muss, erzeugt ja auch Duplicate Content, dann sollte man ihn auch so behandeln. Denn die "Startseite" (der leere Artikel mit Browserweiche) ist ja unter unterschiedlichen Seiten zu finden. Über <link rel=“canonical” href=“https://www.example.com/xx-XX” />- und <link rel="alternate" hreflang="xx-XX" href="URL" >-Tags wird klar, welche Alternativen Seiten es gibt - keine davon ist die Root-Seite example.org/ in diesem Beispiel.

Und demzufolge ist der 302er auch korrekt.

gharlan commented 1 year ago

Über <link rel=“canonical” href=“https://www.example.com/xx-XX” />- und <link rel="alternate" hreflang="xx-XX" href="URL" >-Tags wird klar, welche Alternativen Seiten es gibt - keine davon ist die Root-Seite example.org/ in diesem Beispiel.

Wobei möglichst auch noch ein link tag für x-default gesetzt werden sollte: https://developers.google.com/search/blog/2013/04/x-default-hreflang-for-international-pages?hl=de

Das sollten wir in yrewrite noch aufnehmen, wenn die Weiterleitungs-Variante verwendet wird.

SchneiderSam commented 1 year ago

Ich glaube, die Idee ist, dass der Bot nicht für EN, ES, DE Sprach-Header etc. jeweils das Signal bekommt, die Startseite / ist jetzt immer (301) /en/. Dann kommt der spanische Bot und da sagt der Server, die Startseite / ist immer /es/ etc. Diese wiedersprüchliche Zuweisung, die es eigentlich nur 1 x geben sollte, soll wohl durch das 302 verhindert werden.

Absolut!

Interessant ist auch noch folgende Dokumentation:

https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites?hl=en&visit_id=638054831304687241-3540214942&rd=1

Eine andere Lösung: die Root Domain als Standard festlegen und kein zusätzliches Verzeichnis anlegen. Dann spart man sich die Weiterleitungen für die Root Domain komplett.

Das würde dann so aussehen:

example.com - Englisch (also kein /en/) example.com/de - Deutsch example.com/fr - Französisch

Wenn man /en/ nutzt, dann macht für mich, die 301 am meisten Sinn. Selbst die großen Player handhaben das komplett unterschiedlich und beides klappt.

Wieso nicht dem Entwickler überlassen? Dann kann man selber entscheiden, wie man's möchte.

+1

Nachtrag:

In this configuration, you decide to serve a country selector page on your homepage / generic URL and to let users choose which content they want to see depending on country and language. All users who type in that URL can access the same page.

Quelle: https://developers.google.com/search/blog/2014/05/creating-right-homepage-for-your

Google empfiehlt drei Szenarien. Eine davon ist eine 302, wenn man automatisch weiterleiten möchte . Ich persönlich finde das jedoch extrem nervig, wenn mich jmd. zwingt eine bestimmte Sprache zu lesen. Lass mich das doch entscheiden. :)

gharlan commented 1 year ago

Google empfiehlt drei Szenarien. Eine davon ist eine 302, wenn man automatisch weiterleiten möchte . Ich persönlich finde das jedoch extrem nervig, wenn mich jmd. zwingt eine bestimmte Sprache zu lesen.

Ob man die Weiterleitungsvariante nutzt, oder nicht, lässt sich in yrewrite ja konfigurieren. Aber wenn man sie nutzt, dann ist es eine 302-Weiterleitung (und nicht 301), so wie man es in der Anleitung bei Google findet, wie es für mich auch semantisch passt, und wie es die meisten Websites machen, die eine solche automatische Weiterleitung implementiert haben.

Das Duplicate-Content-Problem besteht vermutlich nur, wenn es unter der Domain-Startseite auch mal Content gab, und man nachträglich auf diese automatische Weiterleitung umstellt. Wenn man das bei einer neuen Domain macht, dürfte Google den Domain-Hauptpfad ja nicht im Index haben, da es von Anfang an eine Weiterleitung ist. Wobei ich denke, dass auch bei der 302-Weiterleitung Google nach einer Weile den Index korrigiert, insbesondere wenn alles korrekt ausgeliefert wird bzgl. canonical-Tags, alternate etc., und eben neu dann auch mit dem x-default, siehe oben.

bitshiftersgmbh commented 1 year ago

Wenn man das bei einer neuen Domain macht, dürfte Google den Domain-Hauptpfad ja nicht im Index haben, da es von Anfang an eine Weiterleitung ist.

Genau das Problem haben wir mit dem Thema bei einem Kunden. Dulplicate Content wird gemeldet, weil domain.tld/ und domain.tld/en im Index sind. Automatisches Redirect ist eingeschaltet. Canonicals etc. sind nach üblicher Art gesetzt. Ich hab jetzt nicht in den Code geschaut um es zu verifizieren, aber es scheint Szenarien zu geben, wo es (wegen nicht erkannter Sprache) kein Redirect gibt und dann einfach root ( / ) ausgespielt wird. Zumindest ist das meine Erklärung dafür ... 🤔

gharlan commented 1 year ago

Hier ist nun mein Vorschlag bzgl x-default: https://github.com/yakamara/redaxo_yrewrite/pull/524 Ihr könnt ja mal schauen, ob das so für euch Sinn macht.

TobiasKrais commented 1 year ago

Auch wenn wir das x-default Flag setzen denke ich nicht, dass wir die Fehlermeldung über doppelten Inhalt bei Google damit weg bekommen. Das x-default Flag zu setzen behebt den Logikfehler, aber überzeugt Google nicht. Hier bräuchten wir noch den PR https://github.com/yakamara/redaxo_yrewrite/pull/517

gharlan commented 1 year ago

Das x-default Flag zu setzen behebt den Logikfehler, aber überzeugt Google nicht.

Woher nimmst du diese Info? Meine Hoffnung ist schon, dass wir Google damit helfen, die Situation (schneller) zu verstehen. Wir machen ja jetzt genau das, was bei Google zu lesen ist bzgl. einer solchen Sprachweiterleitung:

https://developers.google.com/search/blog/2014/05/creating-right-homepage-for-your

Im dritten Szenario werden automatisch die passenden HTML-Inhalte für eure Nutzer je nach deren Standort- und Spracheinstellungen geschaltet. Dies geschieht entweder über eine serverseitige 302-Weiterleitung oder durch die dynamische Schaltung der richtigen HTML-Inhalte. Vergesst nicht, die Anmerkung "x-default rel-alternate-hreflang" auf der Startseite bzw. generischen Seite einzufügen, auch wenn es sich bei der generischen Seite um eine Weiterleitungsseite handelt, die nicht von Nutzern direkt aufgerufen werden kann.

TobiasKrais commented 1 year ago

Vor kurzem hatte ich eine Meldung von Google über doppelten Inhalt. Betroffen war eine Impressum Seite in Deutsch und Spanisch. Auf der Seite war nur die Überschrift unterschiedlich und natürlich der rel-alternate-hreflang Tag. Hier liegt ein ähnliches, aber nicht genau gleiches, Szenario vor: sowohl die x-default Seite als auch die Seite einer weiteren Sprache haben identischen Inhalt. Und ich vermute sehr, dass Google das auffällt.

Noch etwas: ein SEO Experte sagte mir vor kurzem, dass 301 Weiterleitungen der einzige Weg sind bestehende Warnungen zu doppeltem Inhalt bei Google zu lösen.

Die Zeit wird zeigen, ob Google die derzeitige Lösung ausreicht.

TobiasKrais commented 1 year ago

Noch ein Hinweis für die Nachwelt: Google meckert auch nach der Änderung mit x-default, dass doppelter Inhalt existiert. Der Fehler lässt sich nur durch eine 301 Weiterleitung abstellen. Vielleicht könnte man das in die Einstellungen mit rein nehmen.