Ein Kunde aus Wien sucht nach deiner Leistung, findet dich, klickt, und landet auf der deutschen Seite mit deutschen Preisen, deutscher Umsatzsteuer und einer Telefonnummer mit deutscher Vorwahl. Die österreichische Fassung, die du extra gebaut hast, taucht nirgends auf. Oder umgekehrt: Ein deutscher Besucher bekommt die englische Version deiner Startseite angezeigt, obwohl die deutsche existiert und besser ist.
Beides ist derselbe Fehler, und er hat einen Namen: Google weiß nicht, welche deiner Sprachfassungen zu welchem Menschen gehört. Dieser Text erklärt, was hreflang dagegen tut und was nicht (der Unterschied ist größer als erwartet), zeigt die vier Regeln, an denen fast jede Umsetzung scheitert, und sagt, wo du Fehler jetzt prüfst, nachdem Google den zuständigen Bericht abgeschafft hat.
Was hreflang tut, und was es ausdrücklich nicht tut
hreflang ist eine Zuordnung. Es sagt Google: Diese Seiten sind Fassungen desselben Inhalts, hier ist die für Deutsch, hier die für Englisch, hier die für Deutsch in Österreich. Google benutzt diese Zuordnung, um dem Suchenden die passende Fassung anzuzeigen.
Drei Missverständnisse gehören gleich hier weg:
Es ist kein Rankingfaktor. Eine Seite steigt nicht, weil sie hreflang hat. Was sich ändert, ist die Frage, welche deiner Seiten angezeigt wird, nicht auf welcher Position.
Es öffnet keinen neuen Markt. Wenn du in Österreich nicht sichtbar bist, liegt das nicht an fehlender Auszeichnung, sondern daran, dass keine Seite von dir zu diesen Anfragen passt oder niemand dich kennt. hreflang verteilt vorhandene Sichtbarkeit richtig, es erzeugt keine.
Es ist kein Mittel gegen doppelte Inhalte. Dass die deutsche und die österreichische Fassung fast identisch sind, löst hreflang nicht auf. Dafür ist das Canonical zuständig, und wie die beiden zusammenspielen, ist gleich der wichtigste Abschnitt hier. Die Grundlagen dazu stehen in Canonical-Tags richtig setzen.
Und es ist ein Signal, keine Anweisung. Google darf am Ende trotzdem eine andere Fassung zeigen, wenn es meint, dass sie besser passt.
Wann du es brauchst und wann nicht
Du brauchst es in genau drei Fällen:
- Derselbe Inhalt in mehreren Sprachen.
- Dieselbe Sprache für verschiedene Länder, wenn sich der Inhalt wirklich unterscheidet: Preise, Währung, Versandkosten, Rechtstexte, Ansprechpartner.
- Eine Auswahlseite, von der aus Besucher ihre Fassung wählen.
Du brauchst es nicht bei einer einsprachigen Website, nicht bei Seiten, die inhaltlich verschiedene Dinge behandeln (das sind keine Fassungen, das sind andere Seiten), und nicht für dieselbe Sprache in mehreren Ländern, wenn der Text überall identisch ist. Der letzte Punkt ist wichtig, weil viele hier Arbeit erfinden: Drei Kopien desselben Textes als de-DE, de-AT und de-CH kosten dich dauerhaft Pflege und bringen niemandem etwas. Eine Fassung als de reicht.
Die drei Wege, es auszuliefern
Alle drei sind gleichwertig, du entscheidest nach Umfang und danach, wer bei dir Zugriff hat.
Im Head der Seite. Der übliche Weg für Websites mit überschaubarer Seitenzahl:
<link rel="alternate" hreflang="de" href="https://example.com/leistungen" />
<link rel="alternate" hreflang="en" href="https://example.com/en/services" />
<link rel="alternate" hreflang="x-default" href="https://example.com/leistungen" />
Im HTTP-Header. Der einzige Weg für Dateien ohne Head, also PDFs:
Link: <https://example.com/handbuch-de.pdf>; rel="alternate"; hreflang="de",
<https://example.com/manual-en.pdf>; rel="alternate"; hreflang="en"
In der XML-Sitemap. Der sinnvolle Weg ab einigen hundert Seiten, weil die Angaben dann an einer Stelle stehen statt in tausend Vorlagen. Aufwendiger einzurichten, danach deutlich leichter zu pflegen.
Wähl einen Weg und bleib dabei. Head und Sitemap gemischt zu betreiben, mit unterschiedlichen Angaben, ist eine der Ursachen dafür, dass Google die Auszeichnung am Ende komplett verwirft.
Die vier Regeln, an denen es scheitert
Erstens: Selbstreferenz. Jede Seite muss sich selbst mit auflisten. Eine Gruppe aus drei Fassungen hat auf jeder der drei Seiten alle drei Angaben, inklusive der eigenen. Fehlt die Selbstreferenz, ist die Gruppe unvollständig.
Zweitens: Gegenseitigkeit. Wenn die deutsche Seite auf die englische zeigt, muss die englische auf die deutsche zurückzeigen. Fehlt die Rückrichtung, ignoriert Google die Angabe. Das ist der häufigste stille Fehler, und er passiert typischerweise, wenn eine Sprachfassung von einem anderen Team oder in einem anderen System gepflegt wird.
Drittens: absolute Adressen. Mit Protokoll, komplett. Relative Pfade funktionieren hier nicht.
Viertens, und das ist der Killer: Das Canonical jeder Seite zeigt auf sich selbst, niemals auf eine andere Sprachfassung. Wer auf der englischen Seite ein Canonical auf die deutsche setzt und gleichzeitig hreflang verwendet, sendet zwei widersprüchliche Aussagen: „das ist eine eigenständige Fassung" und „das ist ein Duplikat der deutschen". Google löst den Widerspruch, indem es die Auszeichnung verwirft und selbst entscheidet. Diese Kombination ist der Grund für die meisten Fälle von „hreflang funktioniert bei uns nicht".
Sprach- und Ländercodes, wo die Tippfehler sitzen
Das Format ist Sprache, optional Bindestrich und Land. Die Sprache nach ISO 639-1, das Land nach ISO 3166-1 Alpha 2.
| richtig | falsch | warum |
|---|---|---|
de | de-DE bei nur einer deutschen Fassung | unnötige Einengung, Österreicher fallen raus |
de-AT | at | der erste Teil muss eine Sprache sein, „at" ist keine |
en-GB | en-UK | das Länderkürzel ist GB, nicht UK |
pt-BR | br | dasselbe Muster wie bei at |
Die häufigste unnötige Einengung ist de-DE, wenn es nur eine deutsche Fassung gibt. Damit sagst du: nur für Deutschland. Wer in Österreich, der Schweiz oder Südtirol sucht, ist damit ausdrücklich nicht gemeint. Nimm de, solange du nicht wirklich länderspezifische Fassungen betreibst.
x-default, und wofür es wirklich da ist
x-default markiert die Fassung für alle, auf die keine der anderen passt. Klassisch die Auswahlseite, auf der jemand seine Sprache wählt. Ohne Auswahlseite nimmt man die Fassung, die als Rückfall am wenigsten falsch ist.
Es ist nicht verpflichtend. Und der verbreitete Automatismus, x-default auf die englische Fassung zu setzen, ist nur richtig, wenn Englisch bei dir tatsächlich die Rückfallsprache ist. Wenn dein Geschäft deutsch ist und Englisch die Zweitsprache, gehört x-default auf die deutsche Seite.
Automatische Weiterleitung nach IP: bitte nicht
Der naheliegende Gedanke ist, Besucher anhand ihres Standorts direkt auf die passende Fassung zu schicken. Das schafft zwei Probleme auf einmal.
Der Crawler kommt in der Regel aus einem Land und sieht dann nur eine deiner Fassungen. Die anderen findet er nie, also kann er sie auch nicht anzeigen, und dein ganzer Aufwand verpufft. Und Menschen, die bewusst eine andere Fassung wollen, kommen nicht dorthin: Der Deutsche im Urlaub in Spanien bekommt Spanisch und findet keinen Ausweg.
Der richtige Weg ist, jede Fassung unter ihrer eigenen Adresse erreichbar zu lassen, hreflang sauber zu setzen und dem Besucher einen Hinweis oder einen sichtbaren Umschalter anzubieten. Vorschlagen statt umleiten.
Ein Detail aus der eigenen Umsetzung
Traffalyzer läuft mit Deutsch als Standardsprache ohne Präfix und Englisch unter /en. Das ist eine verbreitete Bauweise, und sie hat eine Falle, die uns selbst erwischt hat: Der sichtbare Link von der englischen auf die deutsche Fassung muss auf /de/... zeigen, nicht auf die nackte Adresse. Sonst schickt die Spracherkennung den Besucher, dessen Sprache noch auf Englisch steht, direkt wieder in die englische Fassung zurück, und der Umschalter dreht sich im Kreis.
Wichtig dabei: Das gilt nur für die anklickbaren Links im Seiteninhalt. Canonical, hreflang und Sitemap müssen weiter die nackte Adresse nennen, denn die ist die kanonische. Wer beides verwechselt, hat entweder einen kaputten Umschalter oder doppelte Adressen im Index.
Wo du Fehler prüfst, jetzt da der Bericht weg ist
Viele Anleitungen schicken dich noch in den Bericht zur internationalen Ausrichtung in der Search Console. Den gibt es nicht mehr, Google hat ihn abgeschafft. hreflang wird weiter ausgewertet, es gibt nur keine eingebaute Fehlerliste mehr dafür.
Was stattdessen funktioniert:
- Quelltext einer Seite jeder Sprachfassung ansehen und prüfen, ob alle Fassungen inklusive der eigenen aufgeführt sind.
- Die Gegenrichtung von Hand kontrollieren: Steht auf der englischen Seite die deutsche, und auf der deutschen die englische?
- Einen Crawler über die Seite laufen lassen, der die Angaben tabellarisch ausgibt. Fehlende Rückrichtungen fallen dort sofort auf.
- In der URL-Prüfung schauen, welche Adresse Google als kanonisch ansieht. Weicht sie von der Seite ab, ist meist ein Canonical falsch gesetzt, und dann ist
hreflangohnehin außer Kraft.
Was du nicht prüfen kannst, ist, wem Google welche Fassung zeigt. Es gibt keinen Bericht dafür, und die eigene Suche taugt nicht als Test, weil sie deinen Standort und deine Vorgeschichte kennt.
Vier Fehlerbilder tauchen bei dieser Prüfung immer wieder auf. Maschinell übersetzte Fassungen mit ordentlicher Auszeichnung: Die Auszeichnung ist dann korrekt und der Inhalt trotzdem schwach. hreflang macht eine schlechte Übersetzung nicht sichtbar, es macht sie nur richtig zugeordnet.
Auszeichnung auf Adressen, die nicht die kanonischen sind: Wenn dein hreflang auf eine Adresse mit Parameter zeigt, die per Canonical auf eine andere verweist, zeigst du auf eine Seite, die es aus Googles Sicht so nicht gibt.
Eine Sprachfassung mit noindex: Dann ist sie kein gültiges Ziel, und die Gruppe zerfällt. Was noindex sonst noch anrichtet, steht in robots.txt und noindex.
Nach einem Relaunch vergessene Angaben, die noch auf alte Adressen zeigen. Die Prüfliste dafür steht in Relaunch ohne Traffic-Verlust.
Womit du anfängst
- Entscheide, ob du wirklich Länderfassungen brauchst oder nur Sprachfassungen. Im Zweifel nur Sprache.
- Prüf zuerst die Canonicals: jede Seite auf sich selbst.
- Setz
hreflangmit Selbstreferenz auf allen Fassungen, absolute Adressen. - Kontrollier die Gegenrichtung Seite für Seite, bei den zehn wichtigsten Seiten von Hand.
- Setz
x-defaultauf deine echte Rückfallfassung, nicht automatisch auf Englisch. - Schalte automatische Weiterleitungen nach Standort ab und bau einen sichtbaren Umschalter.
- Warte. Die Auswirkung zeigt sich erst, wenn Google alle Fassungen neu gecrawlt hat.
Häufige Fragen
Brauche ich hreflang für eine zweisprachige Website?
Ja, sobald derselbe Inhalt in zwei Sprachen existiert. Ohne die Zuordnung entscheidet Google selbst, welche Fassung es wem zeigt, und liegt dabei regelmäßig falsch, besonders bei Nutzern, deren Sprache und Standort nicht zusammenpassen. Der Aufwand für zwei Sprachen ist gering: zwei Zeilen im Head jeder Seite plus eine für x-default.
Ist hreflang ein Rankingfaktor?
Nein. Es beeinflusst, welche deiner Fassungen angezeigt wird, nicht auf welcher Position. Wer sich davon mehr Sichtbarkeit in einem neuen Land erhofft, wird enttäuscht: Dafür braucht es Inhalte, die zu den dortigen Suchanfragen passen, und Bekanntheit. Die Auszeichnung verteilt vorhandene Sichtbarkeit, sie erzeugt keine.
Soll ich de oder de-DE verwenden?
de, solange du nur eine deutschsprachige Fassung hast. de-DE sagt ausdrücklich „für Deutschland", und damit schließt du Österreich und die Schweiz aus, ohne etwas zu gewinnen. Länderfassungen lohnen erst, wenn sich der Inhalt wirklich unterscheidet, also bei Preisen, Währung, Versand oder Rechtstexten.
Was ist x-default und brauche ich es?
x-default markiert die Fassung für alle Besucher, auf die keine deiner anderen Angaben passt. Verpflichtend ist es nicht, sinnvoll fast immer. Setz es auf deine tatsächliche Rückfallfassung: bei einem deutschen Geschäft mit englischer Zweitsprache auf die deutsche Seite, nicht automatisch auf die englische.
Warum ignoriert Google mein hreflang?
Drei Ursachen deckt das ab. Erstens ein Canonical, das auf eine andere Sprachfassung zeigt statt auf die Seite selbst: das ist der häufigste Fall. Zweitens eine fehlende Rückrichtung, weil eine Fassung nicht zurückverweist. Drittens ein Ziel, das nicht indexierbar ist, weil es auf noindex steht, gesperrt ist oder weiterleitet.
Wo prüfe ich hreflang-Fehler in der Search Console?
Nirgends mehr. Der Bericht zur internationalen Ausrichtung wurde abgeschafft, hreflang wird aber weiter ausgewertet. Prüfen musst du selbst: Quelltext ansehen, Gegenrichtung kontrollieren, oder einen Crawler nehmen, der die Angaben tabellarisch ausgibt. Anleitungen, die dich noch in diesen Bericht schicken, sind veraltet.
Darf ich Besucher automatisch nach ihrem Standort umleiten?
Besser nicht. Der Crawler kommt meist aus einem Land, sieht dann nur eine Fassung und findet die anderen nie. Und Menschen, die bewusst eine andere Sprache wollen, kommen nicht dorthin. Der bessere Weg ist ein Hinweis oder ein sichtbarer Umschalter, während jede Fassung unter ihrer eigenen Adresse erreichbar bleibt.
Hilft hreflang gegen doppelte Inhalte?
Nein, das sind zwei verschiedene Werkzeuge. hreflang ordnet Fassungen einander zu, das Canonical entscheidet, welche Adresse bei gleichem Inhalt die maßgebliche ist. Bei fast identischen Länderfassungen derselben Sprache bleibt die Ähnlichkeit bestehen, und genau deshalb sollte man solche Fassungen nur anlegen, wenn sie sich wirklich unterscheiden.
Wie viele hreflang-Angaben braucht eine Seite?
So viele, wie es Fassungen gibt, plus die eigene, plus optional x-default. Bei drei Sprachen sind das vier Zeilen auf jeder der drei Seiten. Ab ungefähr einem Dutzend Fassungen oder mehreren hundert Seiten wird der Head unhandlich, dann gehören die Angaben in die XML-Sitemap.