Problem mit hreflangs

cluster

Mitglied
Ich habe hier ein Problem mit den hreflangs ... es handlet sich um eine 4 sprachige WP Installation, die Sprachen sind wie folgt den URLs zugeordnet:

/ (Hauptseite - deutsch)
/en/ (english)
/fr/ (french)
/nl/ (netherlands)

Also die Hauptseite in DE sieht so aus https://www.meinedomain.de/ bei den weiteren wird der Ländercode hinten angehängt wie https://www.meinedomain.de/en/

Google Webmastertools (Konsole) sagt 480 hreflang-Tags mit Fehlern
z.b.
"x-default" – keine Rücklinks
"de-FR" – keine Rücklinks

hier mal die hreflangs aus der Haupt Startseite (bei anderen Sprachen wird das Länderkürzel angehängt, ist auch bei allen Inhalten berücksichtigt das sich die hreflangs über eine Variable entsprechend an die Seite und die Sprache anpassen).

<link rel="alternate" hreflang="de-DE" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="de-LU" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="de-CH" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="de-FR" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="de-BE" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="de-NL" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="de-GB" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="de-US" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="en-DE" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="en-LU" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="en-CH" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="en-FR" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="en-BE" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="en-NL" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="en-GB" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="en-US" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="fr-DE" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-LU" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-CH" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-FR" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-BE" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-NL" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-GB" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-US" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="lb-LU" href="https://www.meinedomain.de/nl/" />
<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/" />
<link href="https://www.meinedomain.de/" rel="canonical" />




was muss ich ändern damit das bei Google klappt und die Sprachen Internationlal zugeordnet und akzeptiert werden (momentan nur Deutsch)?

 
Zuletzt bearbeitet von einem Moderator:
Danke Reulo,

also das würde bedeuten das der Eintrag für x-default entfernt werden soll?

alles andere müsste ja demnach richtig sein ...

Ralph

 
ich glaube ich habe den Fehler gefunden ;-)

<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/" />


an den x-default hatte ich bei den anderen 4 Sprachen das Länderkürzel per PHP Variable angehängt, das sah dann so aus:

<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/nl/" />


also gab es keinen echten x-default Fallback und das würde die Google Fehlermeldung "keine Rücklinks" vermutlich erklären ...

was denkt ihr, war das der Fehler?

Ich habe auch mal alles rausgenommen an hreflnags bis auf die echten vorhandenen Sprachen und den x-default auf /en/ gesetzt ... de, en, fr, nl sind vorhanden wenn in einem anderen nicht definierten Land gesucht wird dann solte /en greifen.

 
beim canonical wird dann aber das Länderkürzel mit angehängt bei der jeweiligen Sprache oder?

Code:
<link href="https://www.meinedomain.de/" rel="canonical" />
<link href="https://www.meinedomain.de/en/" rel="canonical" />
<link href="https://www.meinedomain.de/fr/" rel="canonical" />
<link href="https://www.meinedomain.de/nl/" rel="canonical" />
 
an den x-default hatte ich bei den anderen 4 Sprachen das Länderkürzel per PHP Variable angehängt, das sah dann so aus:
 

<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/nl/" />


also gab es keinen echten x-default Fallback und das würde die Google Fehlermeldung "keine Rücklinks" vermutlich erklären ...

was denkt ihr, war das der Fehler?
Genau das. Es gibt nur einen x-default. Der sollte auf allen Sprachversionen gleich sein. Also immer:

<link rel="alternate" hreflang="x-default" href="https://www.meinedomain.de/" />



Bei dem Canonical-Tag nutzt du die jeweilige Länderversion, also:

<link href="https://www.meinedomain.de/fr/" rel="canonical" />

bei der französischen Sprachversion. Für die englische "/en/" usw.

 
eins noch ;-)

ist beim hreflang der zweite Teil also hier z.b. FR als Browsersprache gemeint?

Dann wäre es wohl besser wenn ich die Variationen wieder reinsetze ... die können doch dann alle auf die /fr/ Version gesetzt werden, oder muss für jede Variante tatsächlich eine echte URL vorhanden sein?

wie hier z.b. gehen alle fr auf /fr/

Code:
<link rel="alternate" hreflang="fr-FR" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-BE" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-NL" href="https://www.meinedomain.de/fr/" />
<link rel="alternate" hreflang="fr-GB" href="https://www.meinedomain.de/fr/" />
 
Der erste Teil gibt die Sprache an und der zweite das Land.

Da alle zum selben Ziel führen reicht bei deinem Beispiel der Sprachcode (de/en/fr). Den Ländercode kannst du weglassen.

<link rel="alternate" hreflang="de" href="https://www.meinedomain.de/" />
<link rel="alternate" hreflang="en" href="https://www.meinedomain.de/en/" />
<link rel="alternate" hreflang="fr" href="https://www.meinedomain.de/fr/" />

Wozu die ganzen französischsprachigen einzeln eintragen?

Sinnvoll ist eine weitere Unterteilung nach Ländern z. B. bei "en-US" und "en-GB", wenn du dafür eigene Seiten mit oz und ml oder Dollar und Pfund etc. hast. Dann könntest du z. B. auf die URLs "https://www.domain.com/en/us/" und "https://www.domain.com/en/gb/" leiten.

Wenn es nur drei Sprachversionen gibt, genügen die drei Einträge plus x-default.

Gerne :)

 
OK, habe auch noch den canonical entfernt, wenn ich das richtig verstanden habe blockiert der canonical in Verbindung mit x-default die indexierung der anderen Sprachen.

 
Zurück
Oben