hreflang in Shopware einrichten
Shopware erzeugt hreflang aus den Domains eines Verkaufskanals — nicht aus Sprachen, nicht aus Übersetzungen. Wer das verwechselt, sucht den Fehler an der falschen Stelle.
Mehrsprachige Shopware-Shops haben ein wiederkehrendes Muster: Alles ist übersetzt, die Sprachumschaltung funktioniert, und trotzdem tauchen im Quelltext keine hreflang-Angaben auf. Der Grund ist fast immer derselbe — und er liegt nicht bei den Übersetzungen.
Woher Shopware die Angaben nimmt
Der HreflangLoader im Kern liest die Domains eines Verkaufskanals. Die
Abfrage holt je Domain drei Dinge:
| Feld | Woher |
|---|---|
url | die Domain selbst |
locale | über die zugeordnete Sprache aus der Locale-Tabelle |
hreflang_use_only_locale | eine Einstellung an der Domain |
Daraus baut er die Verweise. Nicht aus der Sprachliste, nicht aus dem Vorhandensein von Übersetzungen, nicht aus dem Sprachumschalter.
Das erklärt den häufigsten Fall: Eine zweite Sprache ist angelegt, alle Inhalte sind übersetzt, aber es gibt keine zweite Domain-Zeile im Verkaufskanal. Dann gibt es auch keinen hreflang-Eintrag — vollkommen konsequent, aber überraschend, wenn man von der Übersetzung her denkt.
Die Einstellung „nur Locale"
Das Feld hreflang_use_only_locale entscheidet über die Ausgabeform:
| Einstellung | Ausgabe |
|---|---|
| aus | de-DE, en-GB — Sprache und Land |
| ein | de, en — nur die Sprache |
Wann was richtig ist: Wenn eine Sprachfassung an ein Land gebunden ist —
etwa unterschiedliche Preise oder Versandbedingungen für Deutschland und
Österreich —, gehört das Land dazu. Wenn eine englische Fassung für alle
englischsprachigen Märkte gilt, ist en präziser als ein willkürliches
en-GB.
Die Entscheidung fällt je Domain, nicht global. Ein Shop kann de-DE,
de-AT und en gleichzeitig führen.
Was in der Sitemap fehlt
Das Sitemap-Protokoll erlaubt, Sprachverknüpfungen als xhtml:link-Einträge in
der Sitemap zu hinterlegen. Shopwares Sitemap-Erzeugung kennt sie nicht.
Für die Wirkung ist das meist unerheblich — Google wertet die Angaben in der
Storefront aus. Relevant wird es bei sehr grossen mehrsprachigen Katalogen, wo
gebündelte Angaben ohne Seitenabruf ein Vorteil wären. Wer das braucht, kommt
um eine Erweiterung nicht herum — unsere eigene schreibt die Angaben als
xhtml:link mit (Sitemap Generator).
Was der Kern in die Sitemap schreibt und was nicht, steht in
Die Sitemap in Shopware: was drinsteht und was fehlt.
Der Schalter, der vor allem anderen kommt
Nachtrag vom 18. September 2026. Diese Prüfliste begann ursprünglich bei den Domains. Eine spätere Messung hat gezeigt, dass davor noch ein Schalter sitzt — und dass er ab Werk aus ist.
In beiden gemessenen Installationen steht hreflang_active auf jedem
Verkaufskanal auf 0:
| 6.6.10.6 | 6.7.13.1 | |
|---|---|---|
| Verkaufskanäle mit aktivem hreflang | 0 von 2 | 0 von 2 |
| Domains im Kanal | 2 | 3, davon zwei mit unterschiedlicher Sprache |
ausgegebene rel="alternate"-Verweise | 0 | 0 |
Die 6.7-Installation erfüllt also alle Voraussetzungen der Liste unten — mehrere
Domains, verschiedene Sprachen, derselbe Kanal — und gibt trotzdem null
Verweise aus. Das Kern-Template gibt hreflang nur aus, wenn die Variable
hrefLang gefüllt ist, und die bleibt leer, solange der Schalter je Kanal aus
ist.
Das ist die häufigste Ursache überhaupt, und sie steht in keiner Fehlermeldung. Wer alles richtig eingerichtet hat und trotzdem nichts sieht, sucht in aller Regel hier.
Zu finden ist die Einstellung in den Einstellungen des Verkaufskanals, nicht bei den Sprachen und nicht bei den Domains — also genau dort, wo man sie nicht vermutet.
Prüfliste, wenn hreflang fehlt
In dieser Reihenfolge, weil sie von der häufigsten zur seltensten Ursache geht:
- Ist hreflang am Verkaufskanal überhaupt eingeschaltet? Ab Werk ist es das nicht. Siehe oben.
- Hat der Verkaufskanal mehr als eine Domain-Zeile? Wenn nein, ist das die Antwort.
- Ist jeder Domain eine eigene Sprache zugeordnet? Zwei Domains mit derselben Sprache ergeben keine sinnvolle Verknüpfung.
- Gehören alle Sprachfassungen zum selben Verkaufskanal? Verweise entstehen innerhalb eines Kanals. Zwei getrennte Kanäle verknüpfen sich nicht von selbst.
- Stimmt die Locale-Zuordnung der Sprache? Der Code kommt von dort, nicht vom Sprachnamen.
- Ist die Domain aktiv und erreichbar? Ein Verweis auf eine nicht erreichbare Adresse ist schlechter als keiner.
Erst wenn diese sechs Punkte stimmen, lohnt der Blick in Template-Anpassungen.
Zwei Fehler, die teuer werden
Verweise, die nicht zurückverweisen. hreflang muss beidseitig sein. Wenn die deutsche Seite auf die englische zeigt, die englische aber nicht zurück, ignoriert Google beide Angaben. Bei getrennten Verkaufskanälen entsteht das schnell, ohne dass jemand es merkt.
Sprachfassungen ohne eigene URL. Wenn die Sprachumschaltung nur ein Cookie setzt und die URL gleich bleibt, gibt es nichts, worauf hreflang zeigen könnte. Jede Sprachfassung braucht eine eigene, dauerhaft erreichbare Adresse.
Was hreflang nicht leistet
Es ist kein Ranking-Signal. Es sagt einer Suchmaschine, welche Fassung für welche Sprache gedacht ist — nicht, dass eine davon wichtiger wäre. Wer von hreflang bessere Positionen erwartet, wird enttäuscht; wer erwartet, dass Nutzer in der richtigen Sprache landen, meist nicht.
Und es ersetzt keine Übersetzung. Eine als englisch ausgezeichnete Seite mit deutschem Inhalt schadet mehr, als sie nützt. Worauf beim automatisierten Übersetzen zu achten ist — besonders bei Feldern, die Shopware selbst berechnet —, steht in Produktdaten übersetzen, ohne Daten zu verlieren.
Wenn Sie damit anfangen
Der schnellste Weg zu einer belastbaren Aussage: eine Produktseite je Sprache
aufrufen und im Quelltext nach hreflang suchen. Was dort steht, ist der
tatsächliche Zustand — unabhängig davon, was die Konfiguration vermuten lässt.
Wie wir mehrsprachige Shops aufsetzen und übersetzen, steht auf Pixup AI Translator.
Häufige Fragen
- Brauche ich für jede Sprache eine eigene Domain?
- Für hreflang in Shopware ja — ein Eintrag entsteht je Verkaufskanal-Domain. Ein Verzeichnis wie /en/ zählt dabei als eigene Domain-Zeile, es muss keine eigene Top-Level-Domain sein.
- Was bewirkt „nur Locale“?
- Ohne die Option gibt Shopware den vollständigen Code aus, etwa de-DE. Mit der Option nur den Sprachteil, also de. Sinnvoll, wenn eine Sprachfassung nicht an ein Land gebunden ist.
- Warum steht hreflang nicht in meiner Sitemap?
- Weil der Kern es dort nicht erzeugt. Die Sitemap-Erzeugung kennt keine xhtml:link-Einträge; hreflang kommt ausschliesslich aus der Storefront.
- Brauche ich x-default?
- Nicht zwingend. Sinnvoll ist es, wenn es eine Fassung gibt, die für alle nicht abgedeckten Sprachen die richtige ist — etwa eine englische Fassung als Auffanglösung.
