{"id":15571,"date":"2026-09-05T14:51:42","date_gmt":"2026-09-05T12:51:42","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/"},"modified":"2026-09-05T14:51:42","modified_gmt":"2026-09-05T12:51:42","slug":"page-structure-readability-inspector-headings-sentences","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/","title":{"rendered":"Seitenstruktur- und Lesbarkeitspr\u00fcfer: \u00dcberschriften, S\u00e4tze, K\u00fcrzel"},"content":{"rendered":"<div class=\"gtm-analyser-container\" style=\"background: var(--bg-panel, #1e1e24); padding: 25px; border-radius: 8px; border: 1px solid var(--border, #2a2a35);\">\n<p style=\"color: var(--text-secondary, #a0a0b0); margin-bottom: 20px;\">Lesbarkeitsindizes z\u00e4hlen Silben und bestrafen jedes deutsche Kompositum, auch ein v\u00f6llig gel\u00e4ufiges. Diese Pr\u00fcfung misst, was tats\u00e4chlich dar\u00fcber entscheidet, ob eine Seite gelesen und durchsucht werden kann: Gibt es genau eine h1, \u00fcberspringt der \u00dcberschriftenbaum Ebenen oder enth\u00e4lt er leere \u00dcberschriften, ist der Hauptinhalt als solcher ausgezeichnet, wie lang sind S\u00e4tze und Abs\u00e4tze, welche K\u00fcrzel stehen in der Einleitung, ohne je in Klammern erkl\u00e4rt zu werden, tragen Bilder einen Alt-Text, und wie viel des HTML ist \u00fcberhaupt Text. S\u00e4tze werden strikt innerhalb von Abs\u00e4tzen gemessen, Code vorher entfernt, denn eine als Prosa gez\u00e4hlte Konfigurationsdatei ergibt einen 140-W\u00f6rter-Satz, den es nie gab.<\/p>\n<div style=\"margin-bottom: 14px;\">\n        <label for=\"st-url\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Seitenadresse<\/label><br \/>\n        <input id=\"st-url\" type=\"text\" value=\"https:\/\/en.wikipedia.org\/wiki\/Readability\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box; font-family: monospace;\">\n    <\/div>\n<p style=\"color: var(--text-secondary, #a0a0b0); font-size: 0.82rem; margin-bottom: 16px;\">Von diesem Server geht eine Anfrage von h\u00f6chstens 1,5 MB an die eingegebene Adresse; nichts auf der Seite wird ausgef\u00fchrt. Hosts in privaten, Loopback- und Link-local-Netzen werden abgelehnt. Die Abfrage ist durch reCAPTCHA v3 gesch\u00fctzt; die aufrufende IP-Adresse und das Ziel werden eine Stunde lang gespeichert, um die Rate zu begrenzen.<\/p>\n<p>    <button id=\"st-btn\" class=\"button\" style=\"background: var(--accent, #7ee787); color: var(--on-accent, #0b1114); border: none; padding: 12px 24px; border-radius: 6px; font-weight: 700; cursor: pointer;\">Seite pr\u00fcfen<\/button><\/p>\n<div id=\"st-ausgabe\" style=\"margin-top: 22px;\"><\/div>\n<p style=\"color: var(--text-secondary, #a0a0b0); font-size: 0.8rem; margin: 24px 0 0;\">Grenzen, die dazugeh\u00f6ren: Gemessen wird nur servergeliefertes HTML, was JavaScript sp\u00e4ter einf\u00fcgt, bleibt unsichtbar; der Hauptinhalt kommt aus main, article oder einem role=main-Element, sonst aus dem body ohne Navigation, Kopf, Fu\u00df und Seitenleiste; die Satztrennung ist eine Heuristik, die Ein-Buchstaben-K\u00fcrzel und Tageszahlen zusammenh\u00e4lt, aber kein W\u00f6rterbuch hat; die K\u00fcrzelpr\u00fcfung akzeptiert eine Klammererkl\u00e4rung irgendwo auf der Seite und \u00fcbergeht eine Liste allt\u00e4glicher Abk\u00fcrzungen; und Silben werden absichtlich nicht gez\u00e4hlt.<\/p>\n<\/div>\n<p><script>\n(function () {\n    'use strict';<\/p>\n<p>    const T = {\"einleitung\":\"Lesbarkeitsindizes z\u00e4hlen Silben und bestrafen jedes deutsche Kompositum, auch ein v\u00f6llig gel\u00e4ufiges. Diese Pr\u00fcfung misst, was tats\u00e4chlich dar\u00fcber entscheidet, ob eine Seite gelesen und durchsucht werden kann: Gibt es genau eine h1, \u00fcberspringt der \u00dcberschriftenbaum Ebenen oder enth\u00e4lt er leere \u00dcberschriften, ist der Hauptinhalt als solcher ausgezeichnet, wie lang sind S\u00e4tze und Abs\u00e4tze, welche K\u00fcrzel stehen in der Einleitung, ohne je in Klammern erkl\u00e4rt zu werden, tragen Bilder einen Alt-Text, und wie viel des HTML ist \u00fcberhaupt Text. S\u00e4tze werden strikt innerhalb von Abs\u00e4tzen gemessen, Code vorher entfernt, denn eine als Prosa gez\u00e4hlte Konfigurationsdatei ergibt einen 140-W\u00f6rter-Satz, den es nie gab.\",\"label_url\":\"Seitenadresse\",\"datenschutz\":\"Von diesem Server geht eine Anfrage von h\u00f6chstens 1,5 MB an die eingegebene Adresse; nichts auf der Seite wird ausgef\u00fchrt. Hosts in privaten, Loopback- und Link-local-Netzen werden abgelehnt. Die Abfrage ist durch reCAPTCHA v3 gesch\u00fctzt; die aufrufende IP-Adresse und das Ziel werden eine Stunde lang gespeichert, um die Rate zu begrenzen.\",\"knopf\":\"Seite pr\u00fcfen\",\"laeuft\":\"Abrufen und messen...\",\"grenze\":\"Grenzen, die dazugeh\u00f6ren: Gemessen wird nur servergeliefertes HTML, was JavaScript sp\u00e4ter einf\u00fcgt, bleibt unsichtbar; der Hauptinhalt kommt aus main, article oder einem role=main-Element, sonst aus dem body ohne Navigation, Kopf, Fu\u00df und Seitenleiste; die Satztrennung ist eine Heuristik, die Ein-Buchstaben-K\u00fcrzel und Tageszahlen zusammenh\u00e4lt, aber kein W\u00f6rterbuch hat; die K\u00fcrzelpr\u00fcfung akzeptiert eine Klammererkl\u00e4rung irgendwo auf der Seite und \u00fcbergeht eine Liste allt\u00e4glicher Abk\u00fcrzungen; und Silben werden absichtlich nicht gez\u00e4hlt.\",\"h_kopf\":\"Kopf\",\"zeile_url\":\"Gemessene Adresse\",\"zeile_title\":\"Titel\",\"zeile_description\":\"Meta-Beschreibung\",\"zeile_lang\":\"Sprache (lang)\",\"zeile_landmark\":\"Hauptinhalt\",\"zeile_canonical\":\"Canonical\",\"zeile_dauer\":\"Dauer\",\"zeile_limit\":\"Pr\u00fcfungen in dieser Stunde noch\",\"zeichen\":\"{n} Zeichen\",\"wert_fehlt\":\"fehlt\",\"landmark_main\":\"main-Element\",\"landmark_article\":\"article-Element\",\"landmark_role\":\"role=main\",\"landmark_id\":\"id=content oder id=main\",\"h_masse\":\"Ma\u00dfe\",\"m_woerter\":\"W\u00f6rter in Abs\u00e4tzen\",\"m_absaetze\":\"Abs\u00e4tze\",\"m_saetze\":\"S\u00e4tze\",\"m_lesezeit\":\"Lesezeit\",\"m_bilder\":\"Bilder\",\"m_links\":\"Verweise intern \\\/ extern\",\"m_listen\":\"Listen \\\/ Tabellen \\\/ Codebl\u00f6cke\",\"m_html\":\"HTML-Gr\u00f6\u00dfe\",\"minuten\":\"{n} min\",\"ohne_alt\":\"{n} ohne alt\",\"h_gliederung\":\"\u00dcberschriftenbaum ({n})\",\"leere_ueberschrift\":\"(leere \u00dcberschrift)\",\"h_befunde\":\"Befunde\",\"stufe_hoch\":\"Hoch\",\"stufe_mittel\":\"Mittel\",\"stufe_niedrig\":\"Niedrig\",\"stufe_info\":\"Hinweis\",\"stufe_gut\":\"In Ordnung\",\"keine_befunde\":\"Nichts zu berichten.\",\"urteil_gut\":\"Die Seite hat einen brauchbaren Aufbau; was bleibt, sind Details.\",\"urteil_warnung\":\"Etwas Grundlegendes fehlt: ein Titel, eine h1, ein Text, oder die Seite hat nicht mit 200 geantwortet.\",\"urteil_kritisch\":\"Die Adresse hat keine HTML-Seite geliefert.\",\"fehler_kein_token\":\"Die Pr\u00fcfung konnte nicht starten, weil reCAPTCHA nicht geladen wurde.\",\"fehler_captcha\":\"reCAPTCHA hat die Anfrage als automatisiert eingestuft. Ein Neuladen der Seite hilft in der Regel.\",\"fehler_zu_viele\":\"Die Grenze von {limit} Pr\u00fcfungen je Stunde f\u00fcr diese Adresse ist erreicht.\",\"fehler_adresse\":\"Diese Adresse l\u00e4sst sich nicht verwenden.\",\"fehler_abruf\":\"Die Seite lie\u00df sich nicht abrufen.\",\"fehler_zaehler\":\"Der Z\u00e4hler ist nicht erreichbar, deshalb wurde nichts gepr\u00fcft.\",\"fehler_pruefdienst\":\"Der reCAPTCHA-Dienst war nicht erreichbar.\",\"fehler_aufbau\":\"Der Dienst ist nicht richtig eingerichtet. Der Fehler liegt auf dieser Seite.\",\"fehler_eingabe\":\"Die Anfrage war nicht lesbar.\",\"fehler_methode\":\"Falsche Anfragemethode.\",\"fehler_netz\":\"Der Dienst war nicht erreichbar.\",\"fehler_antwort\":\"Die Antwort war nicht lesbar.\",\"fehler_unbekannt\":\"Etwas ging schief, wof\u00fcr es keine eigene Meldung gibt.\",\"grund_leer\":\"Es wurde nichts eingegeben.\",\"grund_zu_lang\":\"Die Eingabe ist zu lang.\",\"grund_unlesbar\":\"Das ist keine lesbare Adresse.\",\"grund_schema\":\"Gepr\u00fcft werden nur http- und https-Adressen.\",\"grund_benutzerinfo\":\"Eingaben mit Zugangsdaten werden abgelehnt.\",\"grund_kein_punkt\":\"Der Hostname braucht mindestens einen Punkt.\",\"grund_hostform\":\"Es wird ein Hostname gebraucht, keine IP-Adresse.\",\"grund_port\":\"Gepr\u00fcft werden nur die Ports 80, 443, 8080 und 8443.\",\"grund_gesperrter_bereich\":\"Dieser Host l\u00f6st in ein privates oder reserviertes Netz auf. Solche werden nie kontaktiert.\",\"grund_kein_dns\":\"Der Hostname l\u00e4sst sich nicht aufl\u00f6sen.\",\"grund_abruf\":\"Die Adresse hat nicht geantwortet.\",\"grund_zu_viele_spruenge\":\"Die Adresse leitet zu oft weiter.\",\"befund_status\":\"Der Server hat mit Status {status} geantwortet || Die Ma\u00dfe beschreiben eine Fehlerseite, nicht die gemeinte.\",\"befund_kein_html\":\"Die Adresse liefert {typ}, kein HTML || Hier lassen sich nur HTML-Seiten messen.\",\"befund_weiterleitung\":\"{n}-mal weitergeleitet auf {ziel} || Gemessen wurde die Endseite der Kette.\",\"befund_gekappt\":\"Seite bei {mb} MB abgeschnitten || Das HTML ist gr\u00f6\u00dfer als die Grenze; die Ma\u00dfe decken nur den ersten Teil ab.\",\"befund_title_fehlt\":\"Kein Titel || Das title-Element benennt die Seite in Tabs, Lesezeichen und Suchergebnissen. Ohne es tritt die Adresse an seine Stelle.\",\"befund_title_lang\":\"Titel mit {n} Zeichen || Suchergebnisse schneiden Titel bei etwa 60 Zeichen ab. Der Anfang sollte die Bedeutung tragen.\",\"befund_title_kurz\":\"Titel mit nur {n} Zeichen || Sehr kurze Titel sagen selten, worum es auf der Seite geht.\",\"befund_title_ok\":\"Titel mit {n} Zeichen || Eine L\u00e4nge, die in Tabs und Suchergebnisse passt.\",\"befund_description_fehlt\":\"Keine Meta-Beschreibung || Suchmaschinen w\u00e4hlen dann selbst einen Ausschnitt, oft einen beliebigen Satz. Eine Beschreibung von 100 bis 160 Zeichen sagt, was die Seite liefert.\",\"befund_description_lang\":\"Meta-Beschreibung mit {n} Zeichen || L\u00e4nger als das, was Suchergebnisse \u00fcblicherweise zeigen; das Ende wird abgeschnitten.\",\"befund_description_kurz\":\"Meta-Beschreibung mit nur {n} Zeichen || Zu kurz, um zu sagen, was die Seite liefert.\",\"befund_description_ok\":\"Meta-Beschreibung mit {n} Zeichen || Eine L\u00e4nge, die Suchergebnisse vollst\u00e4ndig zeigen.\",\"befund_lang_fehlt\":\"Kein lang-Attribut am html-Element || Screenreader w\u00e4hlen danach die Stimme, Browser bieten danach \u00dcbersetzung an, und die Silbentrennung h\u00e4ngt daran. Ein Attribut, keine Kosten.\",\"befund_lang\":\"Sprache: {lang} || Am html-Element erkl\u00e4rt.\",\"befund_landmark_fehlt\":\"Kein Landmark f\u00fcr den Hauptinhalt || Ohne main- oder article-Element kann Hilfstechnik nicht zum Inhalt springen, und Lesemodi raten. Gemessen wurde der body ohne Navigation, Kopf, Fu\u00df und Seitenleiste.\",\"befund_landmark\":\"Hauptinhalt gefunden \u00fcber {art} || Die Ma\u00dfe stammen aus diesem Element.\",\"befund_ueberschriften_fehlen\":\"Keine \u00dcberschriften im Hauptinhalt || Eine Seite ohne \u00dcberschriften hat keine Struktur, an der sich navigieren lie\u00dfe. Screenreader-Nutzer springen von \u00dcberschrift zu \u00dcberschrift; ohne sie ist die Seite ein Block.\",\"befund_h1_fehlt\":\"Keine h1 || Die h1 benennt, worum es auf der Seite geht. Jede Seite sollte genau eine haben.\",\"befund_h1_mehrfach\":\"{n} h1-\u00dcberschriften || Eine h1 je Seite ist die Konvention. Mehrere verw\u00e4ssern, worum es geht; die \u00fcbrigen geh\u00f6ren meist auf h2.\",\"befund_h1_ok\":\"Eine h1: {text} || Die Seite benennt ihr Thema einmal.\",\"befund_erste_nicht_h1\":\"Die erste \u00dcberschrift ist eine h{ebene} || Der \u00dcberschriftenbaum sollte bei h1 beginnen; eine Struktur, die tiefer anf\u00e4ngt, verwirrt Gliederungen und Screenreader.\",\"befund_h_sprung\":\"{n} Ebenensprung\\\/-spr\u00fcnge im \u00dcberschriftenbaum || Eine h4 direkt nach einer h2 \u00fcberspringt eine Ebene. Gliederungen und Screenreader zeigen eine L\u00fccke, und ein aus \u00dcberschriften gebautes Inhaltsverzeichnis bricht.\",\"befund_h_leer\":\"{n} leere \u00dcberschrift(en) || Eine \u00dcberschrift ohne Text ist ein Eintrag in der Gliederung, der nichts sagt. Ein aus h2-Elementen gebautes Inhaltsverzeichnis bleibt an einer leeren h\u00e4ngen.\",\"befund_h_lang\":\"{n} \u00dcberschrift(en) l\u00e4nger als 80 Zeichen || \u00dcberschriften sind Etiketten, keine S\u00e4tze. Lange brechen schlecht um und machen die Gliederung schwer \u00fcberfliegbar.\",\"befund_gliederung\":\"{n} \u00dcberschriften, {h2} auf Ebene 2, tiefste Ebene h{tiefe} || Die Gliederung, wie ein Leser oder ein Screenreader sie sieht.\",\"befund_h2_fehlt_langer_text\":\"{woerter} W\u00f6rter ohne eine einzige h2 || Ein langer Text ohne Abschnitts\u00fcberschriften gibt Lesern nichts zum \u00dcberfliegen und \u00dcberspringen.\",\"befund_kein_text\":\"Kein Absatztext gefunden || Kein Text innerhalb von p-Elementen. Entweder ist die Seite leer, oder der Inhalt steckt in Elementen, die diese Pr\u00fcfung nicht als Prosa z\u00e4hlt.\",\"befund_umfang\":\"{woerter} W\u00f6rter in {absaetze} Abs\u00e4tzen und {saetze} S\u00e4tzen, etwa {minuten} min Lesezeit || Gez\u00e4hlt innerhalb der Abs\u00e4tze des Hauptinhalts, Code entfernt.\",\"befund_text_kurz\":\"Nur {woerter} W\u00f6rter || D\u00fcnner Inhalt f\u00fcr eine Seite, die gefunden und gelesen werden soll.\",\"befund_satzlaenge\":\"Satzl\u00e4nge: im Schnitt {schnitt} W\u00f6rter, Median {median}, {lang} S\u00e4tze \u00fcber 30 W\u00f6rter ({prozent} %), l\u00e4ngster {laengster} || L\u00e4ngster Satz: {text}\",\"befund_saetze_lang\":\"{prozent} % der S\u00e4tze haben mehr als 30 W\u00f6rter ({n}) || Mehr als ein Viertel der S\u00e4tze ist lang. Lange S\u00e4tze sind nicht falsch, aber ein Text, der aus ihnen besteht, erm\u00fcdet.\",\"befund_satz_sehr_lang\":\"Ein Satz mit {woerter} W\u00f6rtern || {text}\",\"befund_absaetze_lang\":\"{n} Absatz\\\/Abs\u00e4tze mit mehr als 150 W\u00f6rtern (l\u00e4ngster {max}) || Lange Abs\u00e4tze bilden auf dem Handy Textw\u00e4nde. Ein Umbruch beim Gedankenwechsel hilft.\",\"befund_absaetze_zerhackt\":\"{n} von {von} Abs\u00e4tzen sind ein einzelner kurzer Satz || Viele Einzeiler lesen sich wie eine Liste ohne Punkte. Manche lassen sich zusammenfassen, manche werden eine echte Liste.\",\"befund_kuerzel\":\"{n} K\u00fcrzel in der Einleitung nie erkl\u00e4rt: {liste} || Ein K\u00fcrzel in den ersten 150 W\u00f6rtern, ohne Klammererkl\u00e4rung irgendwo auf der Seite. Leser au\u00dferhalb des Fachs bleiben hier h\u00e4ngen.\",\"befund_nominal\":\"{n} Nominalkonstruktion(en): {liste} || Wendungen wie \u201eunter Verwendung von\u201c tragen ein Verb im Substantiv. Nur bei deutschen Seiten gez\u00e4hlt, und nur konkrete Konstruktionen, weil eine allgemeine -ung-Z\u00e4hlung Sachw\u00f6rter trifft.\",\"befund_bilder_ohne_alt\":\"{n} von {von} Bildern ohne alt-Attribut || Screenreader nennen sie \u201eBild\u201c und sonst nichts. Schmuckbilder bekommen alt=\\u0022\\u0022, informative eine Beschreibung.\",\"befund_bilder_alt_ok\":\"Alle {n} Bilder tragen ein alt-Attribut || Bei jedem Bild im Hauptinhalt vorhanden. Ob der Text taugt, ist eine Frage f\u00fcr einen Menschen.\",\"befund_links\":\"{intern} interne, {extern} externe Verweise, {nofollow} mit nofollow || Verweise im Hauptinhalt, Anker und mailto ausgenommen.\",\"befund_keine_internen_links\":\"Keine internen Verweise im Hauptinhalt || Eine lange Seite ohne Verweise auf verwandte Seiten ist eine Sackgasse, f\u00fcr Leser wie f\u00fcr Crawler.\",\"befund_bausteine\":\"{listen} Listen mit {punkte} Punkten, {tabellen} Tabellen, {code} Codebl\u00f6cke || Bausteine, die den Text auflockern.\",\"befund_text_anteil\":\"Text ist {prozent} % von {kb} KB HTML || Wie viel von dem, was der Browser l\u00e4dt, lesbarer Text ist. Niedrige Anteile sind typisch f\u00fcr Seiten mit gro\u00dfen Skripten, Men\u00fcs oder Inline-Styles.\"};<\/p>\n<p>    var ENDPUNKT = '\/lw-structure.php';\n    var SITEKEY = '6LcrPkEtAAAAAPo1QCOf-IIM2fCL0UfdJz4y2iSY';\n    var STUFEN = ['hoch', 'mittel', 'niedrig', 'info', 'gut'];<\/p>\n<p>    function liste(w) { return Array.isArray(w) ? w : []; }\n    function zahl(w) { return (typeof w === 'number' && isFinite(w)) ? w : null; }\n    function text(schluessel, daten) {\n        var t = T[schluessel];\n        if (typeof t !== 'string') { return null; }\n        return t.replace(\/\\{([a-z_0-9]+)\\}\/g, function (m, k) {\n            return (daten && daten[k] !== undefined && daten[k] !== null) ? String(daten[k]) : m;\n        });\n    }<\/p>\n<p>    function bewerten(antwort) {\n        var a = antwort || {};\n        if (a.fehler) { return { fehler: String(a.fehler), grund: a.grund || null, limit: zahl(a.limit) }; }\n        var befunde = liste(a.befunde).map(function (f) {\n            return { key: String(f.key || ''), stufe: STUFEN.indexOf(f.stufe) === -1 ? 'info' : f.stufe, daten: (f.daten && typeof f.daten === 'object') ? f.daten : {} };\n        });\n        var gruppen = {};\n        STUFEN.forEach(function (s) { gruppen[s] = befunde.filter(function (f) { return f.stufe === s; }); });\n        var m = (a.masse && typeof a.masse === 'object') ? a.masse : {};\n        var masse = {};\n        ['woerter', 'absaetze', 'saetze', 'bilder', 'bilder_ohne_alt', 'links_intern', 'links_extern', 'listen', 'tabellen', 'code', 'html_kb', 'text_zeichen'].forEach(function (k) { masse[k] = zahl(m[k]) || 0; });\n        return {\n            fehler: null, url: a.url ? String(a.url) : '', endurl: a.endurl ? String(a.endurl) : '',\n            urteil: (a.urteil === 'gut' || a.urteil === 'warnung' || a.urteil === 'kritisch') ? a.urteil : 'kritisch',\n            title: a.title ? String(a.title) : null, description: a.description ? String(a.description) : null, lang: a.lang ? String(a.lang) : null, canonical: a.canonical ? String(a.canonical) : null, landmark: a.landmark ? String(a.landmark) : null,\n            ueberschriften: liste(a.ueberschriften).map(function (h) { h = h || {}; var e = zahl(h.ebene); return { ebene: e === null ? 1 : Math.min(6, Math.max(1, e)), text: h.text !== undefined && h.text !== null ? String(h.text) : '' }; }),\n            masse: masse, kuerzel: liste(a.kuerzel).map(String), einleitung: a.einleitung ? String(a.einleitung) : '',\n            befunde: befunde, gruppen: gruppen, dauer: zahl(a.dauer_ms), limitRest: zahl(a.limit_rest)\n        };\n    }<\/p>\n<p>    function skriptLaden() {\n        return new Promise(function (auf) {\n            if (window.grecaptcha) { auf(true); return; }\n            var s = document.createElement('script');\n            s.src = 'https:\/\/www.google.com\/recaptcha\/api.js?render=' + SITEKEY;\n            s.onload = function () { auf(true); }; s.onerror = function () { auf(false); };\n            document.head.appendChild(s);\n            setTimeout(function () { auf(!!window.grecaptcha); }, 8000);\n        });\n    }\n    function tokenHolen() {\n        return skriptLaden().then(function (da) {\n            if (!da || !window.grecaptcha || !window.grecaptcha.ready) { return null; }\n            return new Promise(function (auf) {\n                var fertig = false;\n                function einmal(w) { if (!fertig) { fertig = true; auf(w); } }\n                setTimeout(function () { einmal(null); }, 12000);\n                try {\n                    window.grecaptcha.ready(function () {\n                        if (fertig) { return; }\n                        if (!window.grecaptcha.execute) { einmal(null); return; }\n                        window.grecaptcha.execute(SITEKEY, { action: 'structure' }).then(function (t) { einmal(t || null); }, function () { einmal(null); });\n                    });\n                } catch (e) { einmal(null); }\n            });\n        }, function () { return null; });\n    }\n    function abfragen(url) {\n        return tokenHolen().then(function (token) {\n            return fetch(ENDPUNKT, { method: 'POST', headers: { 'Content-Type': 'application\/json' }, body: JSON.stringify({ url: url, token: token || '' }) })\n                .then(function (r) { return r.json().then(function (j) { return j; }, function () { return { fehler: 'antwort' }; }); }, function () { return { fehler: 'netz' }; });\n        });\n    }<\/p>\n<p>    window.LW_TEST = window.LW_TEST || {};\n    window.LW_TEST.ST = { bewerten: bewerten, darstellen: null, text: text, ENDPUNKT: ENDPUNKT, STUFEN: STUFEN, T: T };<\/p>\n<p>    var btn = document.getElementById('st-btn');\n    var out = document.getElementById('st-ausgabe');\n    if (!btn || !out) { return; }<\/p>\n<p>    function el(tag, stil, txt) { var e = document.createElement(tag); if (stil) { e.setAttribute('style', stil); } if (txt !== undefined && txt !== null) { e.textContent = txt; } return e; }\n    function wert(id) { var e = document.getElementById(id); return e ? e.value : ''; }\n    var UEBERSCHRIFT = 'font-family: \"Nunito Sans\", sans-serif; font-weight: 700; color: var(--text-primary, #e8e8ee); font-size: 0.95rem; margin: 22px 0 8px;';\n    var ZELLE = 'padding: 5px 12px 5px 0; color: var(--text-secondary, #a0a0b0); font-size: 0.87rem;';\n    var ZELLE_WERT = 'padding: 5px 12px 5px 0; color: var(--text-primary, #e8e8ee); font-size: 0.87rem; font-family: monospace; word-break: break-all;';\n    var KASTEN = 'background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); border-radius: 8px; padding: 14px 16px; margin: 0 0 10px;';\n    var GUT = ' color: #7ee787;', WARN = ' color: #ffa94d;', ROT = ' color: #ff7b72;', GRAU = ' color: #8a8a99;';\n    var FARBEN = { hoch: '#ff7b72', mittel: '#ffa94d', niedrig: '#e3b341', info: '#8a8a99', gut: '#7ee787' };\n    var URTEIL = { gut: GUT, warnung: WARN, kritisch: ROT };\n    function gitter(sp) { return el('div', 'display: grid; grid-template-columns: ' + sp + '; gap: 0 18px; align-items: baseline;'); }\n    function paar(g, n, w, stil) { g.appendChild(el('div', ZELLE, n)); g.appendChild(el('div', ZELLE_WERT + (stil || ''), w)); }<\/p>\n<p>    function darstellen(b, ziel) {\n        ziel.innerHTML = '';\n        if (b.fehler) {\n            var txt = T['fehler_' + b.fehler] || T.fehler_unbekannt;\n            if (b.grund && T['grund_' + b.grund]) { txt = txt + ' ' + T['grund_' + b.grund]; }\n            if (b.limit !== null) { txt = txt.replace('{limit}', String(b.limit)); }\n            ziel.appendChild(el('p', ZELLE + WARN + ' margin: 0;', txt));\n            return;\n        }\n        ziel.appendChild(el('div', 'font-size: 1.05rem; font-weight: 700; margin: 0 0 12px;' + URTEIL[b.urteil], T['urteil_' + b.urteil]));<\/p>\n<p>        ziel.appendChild(el('div', UEBERSCHRIFT, T.h_kopf));\n        var g = gitter('auto auto');\n        paar(g, T.zeile_url, b.endurl || b.url);\n        paar(g, T.zeile_title, b.title ? b.title + '  (' + text('zeichen', { n: b.title.length }) + ')' : T.wert_fehlt, b.title ? '' : ROT);\n        paar(g, T.zeile_description, b.description ? b.description + '  (' + text('zeichen', { n: b.description.length }) + ')' : T.wert_fehlt, b.description ? GRAU : WARN);\n        paar(g, T.zeile_lang, b.lang || T.wert_fehlt, b.lang ? GRAU : WARN);\n        paar(g, T.zeile_landmark, b.landmark ? T['landmark_' + b.landmark] || b.landmark : T.wert_fehlt, b.landmark ? GRAU : WARN);\n        if (b.canonical) { paar(g, T.zeile_canonical, b.canonical, GRAU); }\n        if (b.dauer !== null) { paar(g, T.zeile_dauer, b.dauer + ' ms', GRAU); }\n        if (b.limitRest !== null) { paar(g, T.zeile_limit, String(b.limitRest), GRAU); }\n        ziel.appendChild(g);<\/p>\n<p>        ziel.appendChild(el('div', UEBERSCHRIFT, T.h_masse));\n        var gm = gitter('auto auto auto auto');\n        var m = b.masse;\n        var kacheln = [[T.m_woerter, m.woerter], [T.m_absaetze, m.absaetze], [T.m_saetze, m.saetze], [T.m_lesezeit, text('minuten', { n: Math.max(1, Math.round(m.woerter \/ 200)) })], [T.m_bilder, m.bilder + (m.bilder_ohne_alt ? ' (' + text('ohne_alt', { n: m.bilder_ohne_alt }) + ')' : '')], [T.m_links, m.links_intern + ' \/ ' + m.links_extern], [T.m_listen, m.listen + ' \/ ' + m.tabellen + ' \/ ' + m.code], [T.m_html, m.html_kb + ' KB']];\n        kacheln.forEach(function (k) { var box = el('div', KASTEN + ' padding: 10px 12px;'); box.appendChild(el('div', ZELLE + ' padding: 0; font-size: 0.78rem;', k[0])); box.appendChild(el('div', 'color: var(--text-primary, #e8e8ee); font-size: 1.05rem; font-weight: 700; font-family: monospace;', String(k[1]))); gm.appendChild(box); });\n        ziel.appendChild(gm);<\/p>\n<p>        if (b.ueberschriften.length) {\n            ziel.appendChild(el('div', UEBERSCHRIFT, text('h_gliederung', { n: b.ueberschriften.length })));\n            var gl = el('div', KASTEN);\n            b.ueberschriften.forEach(function (h) {\n                var z = el('div', 'padding: 2px 0 2px ' + ((h.ebene - 1) * 18) + 'px; font-size: 0.85rem; color: ' + (h.text === '' ? '#ff7b72' : (h.ebene === 1 ? 'var(--text-primary, #e8e8ee)' : 'var(--text-secondary, #a0a0b0)')) + ';');\n                z.appendChild(el('span', 'font-family: monospace; color: #8a8a99; margin-right: 8px;', 'h' + h.ebene));\n                z.appendChild(document.createTextNode(h.text === '' ? T.leere_ueberschrift : h.text));\n                gl.appendChild(z);\n            });\n            ziel.appendChild(gl);\n        }<\/p>\n<p>        ziel.appendChild(el('div', UEBERSCHRIFT, T.h_befunde));\n        var irgendwas = false;\n        STUFEN.forEach(function (s) {\n            var gr = b.gruppen[s];\n            if (!gr.length) { return; }\n            irgendwas = true;\n            ziel.appendChild(el('div', 'font-weight: 700; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.5px; margin: 14px 0 6px; color: ' + FARBEN[s] + ';', T['stufe_' + s] + ' (' + gr.length + ')'));\n            gr.forEach(function (f) {\n                var k = el('div', KASTEN + ' border-left: 3px solid ' + FARBEN[s] + ';');\n                var t = text('befund_' + f.key, f.daten) || f.key;\n                var teile = t.split(' || ');\n                k.appendChild(el('div', 'color: var(--text-primary, #e8e8ee); font-size: 0.9rem; font-weight: 700;', teile[0]));\n                if (teile[1]) { k.appendChild(el('div', ZELLE + ' padding: 6px 0 0; line-height: 1.55;', teile[1])); }\n                ziel.appendChild(k);\n            });\n        });\n        if (!irgendwas) { ziel.appendChild(el('p', ZELLE + ' margin: 0;', T.keine_befunde)); }\n    }\n    window.LW_TEST.ST.darstellen = darstellen;<\/p>\n<p>    var laeuft = false;\n    btn.addEventListener('click', function () {\n        if (laeuft) { return; }\n        laeuft = true; btn.disabled = true;\n        out.innerHTML = '';\n        out.appendChild(el('p', ZELLE + GRAU + ' margin: 0;', T.laeuft));\n        abfragen(wert('st-url')).then(function (a) { darstellen(bewerten(a), out); laeuft = false; btn.disabled = false; },\n            function () { darstellen(bewerten({ fehler: 'netz' }), out); laeuft = false; btn.disabled = false; });\n    });\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Holt eine Seite und misst ihren Aufbau statt ihres Stils: Titel, Beschreibung und Sprache, den \u00dcberschriftenbaum mit L\u00fccken und leeren \u00dcberschriften, den Hauptinhalts-Landmark, W\u00f6rter, Abs\u00e4tze und Satzl\u00e4ngen strikt innerhalb von Abs\u00e4tzen gemessen, unerkl\u00e4rte K\u00fcrzel in der Einleitung, Bilder ohne Alt-Text, Verweise und Bausteine.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9283,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[92737,92289,92292],"class_list":["post-15571","page","type-page","status-publish","hentry","tag-content-de","tag-seo-de","tag-web-performance-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Seitenstruktur- und Lesbarkeitspr\u00fcfer: \u00dcberschriften, S\u00e4tze, K\u00fcrzel - Lukas Wojcik - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Seitenstruktur- und Lesbarkeitspr\u00fcfer: \u00dcberschriften, S\u00e4tze, K\u00fcrzel - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Holt eine Seite und misst ihren Aufbau statt ihres Stils: Titel, Beschreibung und Sprache, den \u00dcberschriftenbaum mit L\u00fccken und leeren \u00dcberschriften, den Hauptinhalts-Landmark, W\u00f6rter, Abs\u00e4tze und Satzl\u00e4ngen strikt innerhalb von Abs\u00e4tzen gemessen, unerkl\u00e4rte K\u00fcrzel in der Einleitung, Bilder ohne Alt-Text, Verweise und Bausteine.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/page-structure-readability-inspector-headings-sentences\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/page-structure-readability-inspector-headings-sentences\\\/\",\"name\":\"Seitenstruktur- und Lesbarkeitspr\u00fcfer: \u00dcberschriften, S\u00e4tze, K\u00fcrzel - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-09-05T12:51:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/page-structure-readability-inspector-headings-sentences\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/page-structure-readability-inspector-headings-sentences\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/page-structure-readability-inspector-headings-sentences\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Toolbox\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/toolbox-2\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Seitenstruktur- und Lesbarkeitspr\u00fcfer: \u00dcberschriften, S\u00e4tze, K\u00fcrzel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Seitenstruktur- und Lesbarkeitspr\u00fcfer: \u00dcberschriften, S\u00e4tze, K\u00fcrzel - Lukas Wojcik - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/","og_locale":"en_US","og_type":"article","og_title":"Seitenstruktur- und Lesbarkeitspr\u00fcfer: \u00dcberschriften, S\u00e4tze, K\u00fcrzel - Lukas Wojcik - Blog","og_description":"Holt eine Seite und misst ihren Aufbau statt ihres Stils: Titel, Beschreibung und Sprache, den \u00dcberschriftenbaum mit L\u00fccken und leeren \u00dcberschriften, den Hauptinhalts-Landmark, W\u00f6rter, Abs\u00e4tze und Satzl\u00e4ngen strikt innerhalb von Abs\u00e4tzen gemessen, unerkl\u00e4rte K\u00fcrzel in der Einleitung, Bilder ohne Alt-Text, Verweise und Bausteine.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/","og_site_name":"Lukas Wojcik - Blog","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/","name":"Seitenstruktur- und Lesbarkeitspr\u00fcfer: \u00dcberschriften, S\u00e4tze, K\u00fcrzel - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-09-05T12:51:42+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/page-structure-readability-inspector-headings-sentences\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Toolbox","item":"https:\/\/www.lukaswojcik.com\/blog\/toolbox-2\/"},{"@type":"ListItem","position":3,"name":"Seitenstruktur- und Lesbarkeitspr\u00fcfer: \u00dcberschriften, S\u00e4tze, K\u00fcrzel"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/15571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=15571"}],"version-history":[{"count":0,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/15571\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/9283"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=15571"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=15571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}