onpage
Seitensprache deklarieren
MetricSpot prüft auf ein gültiges lang-Attribut auf <html>. Ohne es spricht der Screenreader falsch aus, hreflang verliert seinen Anker, und Übersetzungstools raten.
Was diese Prüfung macht
Liest das lang-Attribut auf dem Wurzelelement <html> und prüft, ob es ein gültiger BCP 47-Sprach-Tag ist (en, en-US, es, de, de-AT, pt-PT). Die Prüfung fällt durch, wenn:
- Das Attribut fehlt.
- Der Wert leer ist (
lang=""). - Der Wert keinem bekannten Sprach-Subtag entspricht.
Warum es wichtig ist
Das lang-Attribut ist einer der billigsten HTML-Hygiene-Gewinne — ein Attribut auf einem Element — aber seine Abwesenheit bricht gleich drei Konsumenten gleichzeitig.
- Screenreader wechseln Stimme / Aussprache-Engine anhand von
lang. Eine französische Seite mitlang="en"wird von der englischen Stimme gelesen, die jedes Wort falsch ausspricht. NVDA, JAWS, VoiceOver und TalkBack verhalten sich alle so. - Browser-Übersetzung (Chromes „Diese Seite übersetzen”, Safaris Übersetzungsmenü) nutzt
langals Quellsprache. Ohnelangmuss sie aus dem Inhalt raten — langsamer und auf kurzen Seiten unzuverlässiger. - hreflang-Anker. Deine
<link rel="alternate" hreflang="…">-Tags brauchen eine Selbst-Deklaration auf der Wurzel — Googles Dokumentation empfiehlt ausdrücklich,langauf jeder Seite zu deklarieren, um das hreflang-Netzwerk zu bestätigen. - SEO. Google nutzt
langals eines mehrerer Signale, um zu entscheiden, in welchem Land / welcher Sprache die Seite ausgespielt wird. Der Bericht „Internationale Ausrichtung” der Search Console markiert Seiten ohnelang. - KI-Extraktion. Mehrsprachige LLM-Systeme chunken Inhalt mit der deklarierten Sprache als Hinweis. Falsch deklariertes
langsenkt den Vertrauens-Score des Chunks.
Wie du es behebst
Setze lang auf das <html>-Element. Nutze einen Zwei-Buchstaben-Sprachcode für allgemeine Inhalte oder sprache-region, wenn dein Inhalt regional spezifisch ist:
<!DOCTYPE html>
<html lang="de">
…
<html lang="pt-PT"> <!-- Europäisches Portugiesisch, getrennt von pt-BR -->
Mehrsprachige Sites — pro Seite deklarieren. lang auf <html> sollte dem Hauptinhalt der Seite entsprechen, nicht der Default-Sprache der Site. Hast du eine spanische Übersetzung unter /es/, braucht diese Seite <html lang="es">, nicht <html lang="de">.
Astro:
---
const { lang = "de" } = Astro.props;
---
<html lang={lang}>
Dann lang="es" aus deinem spanischen Layout übergeben.
Next.js (App Router):
// app/layout.tsx
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="de">
<body>{children}</body>
</html>
);
}
Für Per-Locale-Routes: in app/[locale]/layout.tsx aufteilen und die Locale aus den Params lesen.
WordPress: Das <html>-Element wird vom language_attributes()-Aufruf deines Themes generiert, der die Sprache aus Einstellungen → Allgemein liest. Das Template macht das bereits — der Fehler bedeutet fast immer, dass das Theme die header.php überschrieben und den Aufruf entfernt hat. Setze <html <?php language_attributes(); ?>> wieder ein.
Gemischtsprachige Inhalte. Ist ein Absatz oder Block in einer anderen Sprache als die Seite, deklariere es inline:
<p>Die Franzosen nennen es <span lang="fr">le mot juste</span>.</p>
Screenreader wechseln für das Span die Stimme und zurück.
Selbst auditieren: DevTools → Konsole → document.documentElement.lang → sollte "de" zurückgeben, nicht "".
Häufig gestellte Fragen
Soll ich de oder de-DE verwenden?
Nutze de, es sei denn, dein Inhalt ist gezielt deutschlanddeutsch (oder österreichisch, schweizerisch) und das spielt für Übersetzung/Aussprache eine Rolle. de deckt alle deutschsprachigen Locales ab; de-DE engt es ein. Für die meisten Sites ist der breitere Tag richtig.
Was ist der Unterschied zwischen lang und xml:lang?
lang ist für HTML, xml:lang für XML (und XHTML). Moderne HTML5-Seiten brauchen nur lang. Beides anzugeben ist nur Rauschen.
Mein CMS setzt überall lang="de-DE". Ist das falsch?
Nicht falsch, nur enger als nötig. Bei deutschland-spezifischen Sites lass es so. Bei Sites mit globaler deutschsprachiger Zielgruppe (DACH) wechsle auf reines de.
Quellen
Zuletzt aktualisiert 2026-05-11