{"id":15572,"date":"2026-09-05T14:51:44","date_gmt":"2026-09-05T12:51:44","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/narzedzia\/page-structure-readability-inspector-headings-sentences\/"},"modified":"2026-09-05T14:51:44","modified_gmt":"2026-09-05T12:51:44","slug":"page-structure-readability-inspector-headings-sentences","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/page-structure-readability-inspector-headings-sentences\/","title":{"rendered":"Inspektor struktury i czytelno\u015bci strony: nag\u0142\u00f3wki, zdania, skr\u00f3ty"},"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;\">Wska\u017aniki czytelno\u015bci licz\u0105 sylaby i karz\u0105 ka\u017cde niemieckie s\u0142owo z\u0142o\u017cone, tak\u017ce zupe\u0142nie zwyczajne. To sprawdzenie mierzy to, co naprawd\u0119 decyduje, czy stron\u0119 da si\u0119 czyta\u0107 i po niej nawigowa\u0107: czy jest dok\u0142adnie jeden h1, czy drzewo nag\u0142\u00f3wk\u00f3w przeskakuje poziomy albo zawiera puste nag\u0142\u00f3wki, czy tre\u015b\u0107 g\u0142\u00f3wna jest oznaczona, jak d\u0142ugie s\u0105 zdania i akapity, kt\u00f3re skr\u00f3ty pojawiaj\u0105 si\u0119 we wst\u0119pie bez wyja\u015bnienia w nawiasie, czy obrazy maj\u0105 tekst alternatywny i ile HTML-a to w og\u00f3le tekst. Zdania mierzone s\u0105 \u015bci\u015ble w akapitach, po usuni\u0119ciu kodu, bo plik konfiguracyjny policzony jako proza daje zdanie o 140 s\u0142owach, kt\u00f3rego nigdy nie by\u0142o.<\/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;\">Adres strony<\/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;\">Z tego serwera pod podany adres trafia jedno \u017c\u0105danie o rozmiarze do 1,5 MB; nic na stronie nie jest wykonywane. Hosty w sieciach prywatnych, loopback i link-local s\u0105 odrzucane. Zapytanie chroni reCAPTCHA v3; adres IP wywo\u0142uj\u0105cego i cel s\u0105 przechowywane przez godzin\u0119 w celu ograniczenia cz\u0119stotliwo\u015bci.<\/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;\">Sprawdzenie strony<\/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;\">Granice, o kt\u00f3rych warto wiedzie\u0107: mierzony jest tylko HTML z serwera, tre\u015b\u0107 wstawiana p\u00f3\u017aniej przez JavaScript jest niewidoczna; tre\u015b\u0107 g\u0142\u00f3wna pochodzi z main, article lub elementu role=main, w przeciwnym razie z body bez nawigacji, nag\u0142\u00f3wka, stopki i paska bocznego; dzielenie zda\u0144 to heurystyka, kt\u00f3ra trzyma razem skr\u00f3ty jednoliterowe i numery dni, ale nie ma s\u0142ownika; sprawdzenie skr\u00f3t\u00f3w uznaje wyja\u015bnienie w nawiasie w dowolnym miejscu strony i pomija list\u0119 codziennych akronim\u00f3w; a sylaby celowo nie s\u0105 liczone.<\/p>\n<\/div>\n<p><script>\n(function () {\n    'use strict';<\/p>\n<p>    const T = {\"einleitung\":\"Wska\u017aniki czytelno\u015bci licz\u0105 sylaby i karz\u0105 ka\u017cde niemieckie s\u0142owo z\u0142o\u017cone, tak\u017ce zupe\u0142nie zwyczajne. To sprawdzenie mierzy to, co naprawd\u0119 decyduje, czy stron\u0119 da si\u0119 czyta\u0107 i po niej nawigowa\u0107: czy jest dok\u0142adnie jeden h1, czy drzewo nag\u0142\u00f3wk\u00f3w przeskakuje poziomy albo zawiera puste nag\u0142\u00f3wki, czy tre\u015b\u0107 g\u0142\u00f3wna jest oznaczona, jak d\u0142ugie s\u0105 zdania i akapity, kt\u00f3re skr\u00f3ty pojawiaj\u0105 si\u0119 we wst\u0119pie bez wyja\u015bnienia w nawiasie, czy obrazy maj\u0105 tekst alternatywny i ile HTML-a to w og\u00f3le tekst. Zdania mierzone s\u0105 \u015bci\u015ble w akapitach, po usuni\u0119ciu kodu, bo plik konfiguracyjny policzony jako proza daje zdanie o 140 s\u0142owach, kt\u00f3rego nigdy nie by\u0142o.\",\"label_url\":\"Adres strony\",\"datenschutz\":\"Z tego serwera pod podany adres trafia jedno \u017c\u0105danie o rozmiarze do 1,5 MB; nic na stronie nie jest wykonywane. Hosty w sieciach prywatnych, loopback i link-local s\u0105 odrzucane. Zapytanie chroni reCAPTCHA v3; adres IP wywo\u0142uj\u0105cego i cel s\u0105 przechowywane przez godzin\u0119 w celu ograniczenia cz\u0119stotliwo\u015bci.\",\"knopf\":\"Sprawdzenie strony\",\"laeuft\":\"Pobieranie i mierzenie...\",\"grenze\":\"Granice, o kt\u00f3rych warto wiedzie\u0107: mierzony jest tylko HTML z serwera, tre\u015b\u0107 wstawiana p\u00f3\u017aniej przez JavaScript jest niewidoczna; tre\u015b\u0107 g\u0142\u00f3wna pochodzi z main, article lub elementu role=main, w przeciwnym razie z body bez nawigacji, nag\u0142\u00f3wka, stopki i paska bocznego; dzielenie zda\u0144 to heurystyka, kt\u00f3ra trzyma razem skr\u00f3ty jednoliterowe i numery dni, ale nie ma s\u0142ownika; sprawdzenie skr\u00f3t\u00f3w uznaje wyja\u015bnienie w nawiasie w dowolnym miejscu strony i pomija list\u0119 codziennych akronim\u00f3w; a sylaby celowo nie s\u0105 liczone.\",\"h_kopf\":\"Nag\u0142\u00f3wek dokumentu\",\"zeile_url\":\"Zmierzony adres\",\"zeile_title\":\"Tytu\u0142\",\"zeile_description\":\"Meta opis\",\"zeile_lang\":\"J\u0119zyk (lang)\",\"zeile_landmark\":\"Tre\u015b\u0107 g\u0142\u00f3wna\",\"zeile_canonical\":\"Canonical\",\"zeile_dauer\":\"Czas\",\"zeile_limit\":\"Pozosta\u0142e sprawdzenia w tej godzinie\",\"zeichen\":\"{n} znak\u00f3w\",\"wert_fehlt\":\"brak\",\"landmark_main\":\"element main\",\"landmark_article\":\"element article\",\"landmark_role\":\"role=main\",\"landmark_id\":\"id=content lub id=main\",\"h_masse\":\"Miary\",\"m_woerter\":\"S\u0142owa w akapitach\",\"m_absaetze\":\"Akapity\",\"m_saetze\":\"Zdania\",\"m_lesezeit\":\"Czas czytania\",\"m_bilder\":\"Obrazy\",\"m_links\":\"Odno\u015bniki wewn. \\\/ zewn.\",\"m_listen\":\"Listy \\\/ tabele \\\/ bloki kodu\",\"m_html\":\"Rozmiar HTML\",\"minuten\":\"{n} min\",\"ohne_alt\":\"{n} bez alt\",\"h_gliederung\":\"Drzewo nag\u0142\u00f3wk\u00f3w ({n})\",\"leere_ueberschrift\":\"(pusty nag\u0142\u00f3wek)\",\"h_befunde\":\"Ustalenia\",\"stufe_hoch\":\"Wysoka\",\"stufe_mittel\":\"\u015arednia\",\"stufe_niedrig\":\"Niska\",\"stufe_info\":\"Informacja\",\"stufe_gut\":\"W porz\u0105dku\",\"keine_befunde\":\"Brak uwag.\",\"urteil_gut\":\"Strona ma u\u017cyteczn\u0105 struktur\u0119; reszta to szczeg\u00f3\u0142y.\",\"urteil_warnung\":\"Brakuje czego\u015b podstawowego: tytu\u0142u, h1, tekstu, albo strona nie odpowiedzia\u0142a 200.\",\"urteil_kritisch\":\"Adres nie dostarczy\u0142 strony HTML.\",\"fehler_kein_token\":\"Sprawdzenie nie mog\u0142o si\u0119 rozpocz\u0105\u0107, poniewa\u017c reCAPTCHA si\u0119 nie za\u0142adowa\u0142a.\",\"fehler_captcha\":\"reCAPTCHA uzna\u0142a \u017c\u0105danie za zautomatyzowane. Zwykle pomaga ponowne za\u0142adowanie strony.\",\"fehler_zu_viele\":\"Osi\u0105gni\u0119to limit {limit} sprawdze\u0144 na godzin\u0119 dla tego adresu.\",\"fehler_adresse\":\"Tego adresu nie da si\u0119 u\u017cy\u0107.\",\"fehler_abruf\":\"Strony nie da\u0142o si\u0119 pobra\u0107.\",\"fehler_zaehler\":\"Licznik jest niedost\u0119pny, dlatego nic nie zosta\u0142o sprawdzone.\",\"fehler_pruefdienst\":\"Us\u0142uga reCAPTCHA by\u0142a nieosi\u0105galna.\",\"fehler_aufbau\":\"Us\u0142uga nie jest poprawnie skonfigurowana. B\u0142\u0105d le\u017cy po tej stronie.\",\"fehler_eingabe\":\"\u017b\u0105danie by\u0142o nieczytelne.\",\"fehler_methode\":\"Niew\u0142a\u015bciwa metoda \u017c\u0105dania.\",\"fehler_netz\":\"Us\u0142uga by\u0142a nieosi\u0105galna.\",\"fehler_antwort\":\"Odpowied\u017a by\u0142a nieczytelna.\",\"fehler_unbekannt\":\"Co\u015b posz\u0142o nie tak, a nie ma na to osobnego komunikatu.\",\"grund_leer\":\"Nic nie zosta\u0142o wpisane.\",\"grund_zu_lang\":\"Wpis jest za d\u0142ugi.\",\"grund_unlesbar\":\"To nie jest czytelny adres.\",\"grund_schema\":\"Sprawdzane s\u0105 tylko adresy http i https.\",\"grund_benutzerinfo\":\"Wpisy z danymi logowania s\u0105 odrzucane.\",\"grund_kein_punkt\":\"Nazwa hosta potrzebuje co najmniej jednej kropki.\",\"grund_hostform\":\"Wymagana jest nazwa hosta, nie adres IP.\",\"grund_port\":\"Sprawdzane s\u0105 tylko porty 80, 443, 8080 i 8443.\",\"grund_gesperrter_bereich\":\"Ten host rozwi\u0105zuje si\u0119 do sieci prywatnej lub zarezerwowanej. Takie nigdy nie s\u0105 kontaktowane.\",\"grund_kein_dns\":\"Nazwy hosta nie da si\u0119 rozwi\u0105za\u0107.\",\"grund_abruf\":\"Adres nie odpowiedzia\u0142.\",\"grund_zu_viele_spruenge\":\"Adres przekierowuje zbyt cz\u0119sto.\",\"befund_status\":\"Serwer odpowiedzia\u0142 statusem {status} || Miary opisuj\u0105 stron\u0119 b\u0142\u0119du, a nie t\u0119 zamierzon\u0105.\",\"befund_kein_html\":\"Adres dostarcza {typ}, nie HTML || Mierzy\u0107 mo\u017cna tu tylko strony HTML.\",\"befund_weiterleitung\":\"Przekierowano {n} raz(y) na {ziel} || Zmierzono ko\u0144cow\u0105 stron\u0119 \u0142a\u0144cucha.\",\"befund_gekappt\":\"Strona obci\u0119ta przy {mb} MB || HTML jest wi\u0119kszy ni\u017c limit; miary obejmuj\u0105 tylko pierwsz\u0105 cz\u0119\u015b\u0107.\",\"befund_title_fehlt\":\"Brak tytu\u0142u || Element title nazywa stron\u0119 w kartach, zak\u0142adkach i wynikach wyszukiwania. Bez niego jego miejsce zajmuje adres.\",\"befund_title_lang\":\"Tytu\u0142 ma {n} znak\u00f3w || Wyniki wyszukiwania ucinaj\u0105 tytu\u0142y przy oko\u0142o 60 znakach. Znaczenie powinien nie\u015b\u0107 pocz\u0105tek.\",\"befund_title_kurz\":\"Tytu\u0142 ma tylko {n} znak\u00f3w || Bardzo kr\u00f3tkie tytu\u0142y rzadko m\u00f3wi\u0105, o czym jest strona.\",\"befund_title_ok\":\"Tytu\u0142 ma {n} znak\u00f3w || D\u0142ugo\u015b\u0107 pasuj\u0105ca do kart i wynik\u00f3w wyszukiwania.\",\"befund_description_fehlt\":\"Brak meta opisu || Wyszukiwarki same wybieraj\u0105 wtedy fragment, cz\u0119sto przypadkowe zdanie. Opis o d\u0142ugo\u015bci 100 do 160 znak\u00f3w m\u00f3wi, co strona daje.\",\"befund_description_lang\":\"Meta opis ma {n} znak\u00f3w || D\u0142u\u017cszy ni\u017c to, co wyniki wyszukiwania zwykle pokazuj\u0105; koniec jest ucinany.\",\"befund_description_kurz\":\"Meta opis ma tylko {n} znak\u00f3w || Za kr\u00f3tki, by powiedzie\u0107, co strona daje.\",\"befund_description_ok\":\"Meta opis ma {n} znak\u00f3w || D\u0142ugo\u015b\u0107, kt\u00f3r\u0105 wyniki wyszukiwania pokazuj\u0105 w ca\u0142o\u015bci.\",\"befund_lang_fehlt\":\"Brak atrybutu lang na elemencie html || Czytniki ekranu dobieraj\u0105 po nim g\u0142os, przegl\u0105darki proponuj\u0105 po nim t\u0142umaczenie, a dzielenie wyraz\u00f3w od niego zale\u017cy. Jeden atrybut, bez koszt\u00f3w.\",\"befund_lang\":\"J\u0119zyk: {lang} || Zadeklarowany na elemencie html.\",\"befund_landmark_fehlt\":\"Brak landmarku tre\u015bci g\u0142\u00f3wnej || Bez elementu main lub article technologia wspomagaj\u0105ca nie mo\u017ce przeskoczy\u0107 do tre\u015bci, a tryby czytania zgaduj\u0105. Zmierzono body bez nawigacji, nag\u0142\u00f3wka, stopki i paska bocznego.\",\"befund_landmark\":\"Tre\u015b\u0107 g\u0142\u00f3wna znaleziona przez {art} || Miary pochodz\u0105 z tego elementu.\",\"befund_ueberschriften_fehlen\":\"Brak nag\u0142\u00f3wk\u00f3w w tre\u015bci g\u0142\u00f3wnej || Strona bez nag\u0142\u00f3wk\u00f3w nie ma struktury do nawigacji. U\u017cytkownicy czytnik\u00f3w ekranu poruszaj\u0105 si\u0119 po nag\u0142\u00f3wkach; bez nich strona jest jednym blokiem.\",\"befund_h1_fehlt\":\"Brak h1 || H1 nazywa, o czym jest strona. Ka\u017cda strona powinna mie\u0107 dok\u0142adnie jeden.\",\"befund_h1_mehrfach\":\"{n} nag\u0142\u00f3wk\u00f3w h1 || Jeden h1 na stron\u0119 to konwencja. Kilka rozmywa temat; pozosta\u0142e zwykle nale\u017c\u0105 do h2.\",\"befund_h1_ok\":\"Jeden h1: {text} || Strona nazywa sw\u00f3j temat raz.\",\"befund_erste_nicht_h1\":\"Pierwszy nag\u0142\u00f3wek to h{ebene} || Drzewo nag\u0142\u00f3wk\u00f3w powinno zaczyna\u0107 si\u0119 od h1; struktura zaczynaj\u0105ca si\u0119 g\u0142\u0119biej myli konspekty i czytniki ekranu.\",\"befund_h_sprung\":\"{n} przeskok(i) poziom\u00f3w w drzewie nag\u0142\u00f3wk\u00f3w || H4 bezpo\u015brednio po h2 pomija poziom. Konspekty i czytniki ekranu pokazuj\u0105 luk\u0119, a spis tre\u015bci budowany z nag\u0142\u00f3wk\u00f3w si\u0119 psuje.\",\"befund_h_leer\":\"{n} pusty(ch) nag\u0142\u00f3wek(\u00f3w) || Nag\u0142\u00f3wek bez tekstu to wpis w konspekcie, kt\u00f3ry nic nie m\u00f3wi. Spis tre\u015bci budowany z element\u00f3w h2 zatrzymuje si\u0119 na pustym.\",\"befund_h_lang\":\"{n} nag\u0142\u00f3wek(\u00f3w) d\u0142u\u017cszy(ch) ni\u017c 80 znak\u00f3w || Nag\u0142\u00f3wki to etykiety, nie zdania. D\u0142ugie \u017ale si\u0119 \u0142ami\u0105 i utrudniaj\u0105 przegl\u0105danie konspektu.\",\"befund_gliederung\":\"{n} nag\u0142\u00f3wk\u00f3w, {h2} na poziomie 2, najg\u0142\u0119bszy poziom h{tiefe} || Konspekt, jaki widzi czytelnik lub czytnik ekranu.\",\"befund_h2_fehlt_langer_text\":\"{woerter} s\u0142\u00f3w bez ani jednego h2 || D\u0142ugi tekst bez nag\u0142\u00f3wk\u00f3w sekcji nie daje czytelnikom nic do przegl\u0105dania i pomijania.\",\"befund_kein_text\":\"Nie znaleziono tekstu akapit\u00f3w || Brak tekstu w elementach p. Albo strona jest pusta, albo tre\u015b\u0107 siedzi w elementach, kt\u00f3rych to sprawdzenie nie liczy jako prozy.\",\"befund_umfang\":\"{woerter} s\u0142\u00f3w w {absaetze} akapitach i {saetze} zdaniach, oko\u0142o {minuten} min czytania || Policzone w akapitach tre\u015bci g\u0142\u00f3wnej, po usuni\u0119ciu kodu.\",\"befund_text_kurz\":\"Tylko {woerter} s\u0142\u00f3w || Cienka tre\u015b\u0107 jak na stron\u0119, kt\u00f3ra ma by\u0107 znaleziona i przeczytana.\",\"befund_satzlaenge\":\"D\u0142ugo\u015b\u0107 zda\u0144: \u015brednio {schnitt} s\u0142\u00f3w, mediana {median}, {lang} zda\u0144 powy\u017cej 30 s\u0142\u00f3w ({prozent} %), najd\u0142u\u017csze {laengster} || Najd\u0142u\u017csze zdanie: {text}\",\"befund_saetze_lang\":\"{prozent} % zda\u0144 ma wi\u0119cej ni\u017c 30 s\u0142\u00f3w ({n}) || Ponad jedna czwarta zda\u0144 jest d\u0142uga. D\u0142ugie zdania nie s\u0105 b\u0142\u0119dem, ale tekst, kt\u00f3ry si\u0119 z nich sk\u0142ada, m\u0119czy.\",\"befund_satz_sehr_lang\":\"Zdanie o {woerter} s\u0142owach || {text}\",\"befund_absaetze_lang\":\"{n} akapit(\u00f3w) z ponad 150 s\u0142owami (najd\u0142u\u017cszy {max}) || D\u0142ugie akapity tworz\u0105 na telefonie \u015bciany tekstu. Pomaga podzia\u0142 przy zmianie my\u015bli.\",\"befund_absaetze_zerhackt\":\"{n} z {von} akapit\u00f3w to pojedyncze kr\u00f3tkie zdanie || Wiele jednolinijkowych akapit\u00f3w czyta si\u0119 jak list\u0119 bez punkt\u00f3w. Niekt\u00f3re da si\u0119 po\u0142\u0105czy\u0107, inne mog\u0105 sta\u0107 si\u0119 prawdziw\u0105 list\u0105.\",\"befund_kuerzel\":\"{n} skr\u00f3t(\u00f3w) we wst\u0119pie nigdy niewyja\u015bniony(ch): {liste} || Akronim u\u017cyty w pierwszych 150 s\u0142owach bez wyja\u015bnienia w nawiasie gdziekolwiek na stronie. Czytelnicy spoza bran\u017cy tu utykaj\u0105.\",\"befund_nominal\":\"{n} konstrukcja(e) nominalna(e): {liste} || Zwroty takie jak \u201eunter Verwendung von\\u0022 nios\u0105 czasownik w rzeczowniku. Liczone tylko dla stron niemieckich i tylko konkretne konstrukcje, bo og\u00f3lne liczenie ko\u0144c\u00f3wek -ung trafia zwyk\u0142e rzeczy.\",\"befund_bilder_ohne_alt\":\"{n} z {von} obraz\u00f3w bez atrybutu alt || Czytniki ekranu og\u0142aszaj\u0105 je jako \u201eobraz\\u0022 i nic wi\u0119cej. Obrazy dekoracyjne dostaj\u0105 alt=\\u0022\\u0022, informacyjne opis.\",\"befund_bilder_alt_ok\":\"Wszystkie {n} obrazy maj\u0105 atrybut alt || Obecny przy ka\u017cdym obrazie w tre\u015bci g\u0142\u00f3wnej. Czy tekst jest przydatny, to pytanie do cz\u0142owieka.\",\"befund_links\":\"{intern} wewn\u0119trznych, {extern} zewn\u0119trznych odno\u015bnik\u00f3w, {nofollow} z nofollow || Odno\u015bniki w tre\u015bci g\u0142\u00f3wnej, bez kotwic i mailto.\",\"befund_keine_internen_links\":\"Brak wewn\u0119trznych odno\u015bnik\u00f3w w tre\u015bci g\u0142\u00f3wnej || D\u0142uga strona bez odno\u015bnik\u00f3w do powi\u0105zanych stron to \u015blepa uliczka, dla czytelnik\u00f3w i dla crawler\u00f3w.\",\"befund_bausteine\":\"{listen} list z {punkte} punktami, {tabellen} tabel, {code} blok\u00f3w kodu || Bloki, kt\u00f3re rozbijaj\u0105 tekst.\",\"befund_text_anteil\":\"Tekst to {prozent} % z {kb} KB HTML || Ile z tego, co pobiera przegl\u0105darka, jest czytelnym tekstem. Niskie udzia\u0142y s\u0105 typowe dla stron z du\u017cymi skryptami, menu lub stylami inline.\"};<\/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>Pobiera stron\u0119 i mierzy jej budow\u0119 zamiast stylu: tytu\u0142, opis i j\u0119zyk, drzewo nag\u0142\u00f3wk\u00f3w z lukami i pustymi nag\u0142\u00f3wkami, landmark tre\u015bci g\u0142\u00f3wnej, s\u0142owa, akapity i d\u0142ugo\u015bci zda\u0144 mierzone \u015bci\u015ble w akapitach, niewyja\u015bnione skr\u00f3ty we wst\u0119pie, obrazy bez tekstu alternatywnego, odno\u015bniki i bloki.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9284,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[92740,92295,92283],"class_list":["post-15572","page","type-page","status-publish","hentry","tag-content-pl","tag-seo-pl","tag-web-performance-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Inspektor struktury i czytelno\u015bci strony: nag\u0142\u00f3wki, zdania, skr\u00f3ty - 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\/pl\/narzedzia\/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=\"Inspektor struktury i czytelno\u015bci strony: nag\u0142\u00f3wki, zdania, skr\u00f3ty - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Pobiera stron\u0119 i mierzy jej budow\u0119 zamiast stylu: tytu\u0142, opis i j\u0119zyk, drzewo nag\u0142\u00f3wk\u00f3w z lukami i pustymi nag\u0142\u00f3wkami, landmark tre\u015bci g\u0142\u00f3wnej, s\u0142owa, akapity i d\u0142ugo\u015bci zda\u0144 mierzone \u015bci\u015ble w akapitach, niewyja\u015bnione skr\u00f3ty we wst\u0119pie, obrazy bez tekstu alternatywnego, odno\u015bniki i bloki.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/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\\\/pl\\\/narzedzia\\\/page-structure-readability-inspector-headings-sentences\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/page-structure-readability-inspector-headings-sentences\\\/\",\"name\":\"Inspektor struktury i czytelno\u015bci strony: nag\u0142\u00f3wki, zdania, skr\u00f3ty - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-09-05T12:51:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/page-structure-readability-inspector-headings-sentences\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/page-structure-readability-inspector-headings-sentences\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/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-3\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Inspektor struktury i czytelno\u015bci strony: nag\u0142\u00f3wki, zdania, skr\u00f3ty\"}]},{\"@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":"Inspektor struktury i czytelno\u015bci strony: nag\u0142\u00f3wki, zdania, skr\u00f3ty - 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\/pl\/narzedzia\/page-structure-readability-inspector-headings-sentences\/","og_locale":"en_US","og_type":"article","og_title":"Inspektor struktury i czytelno\u015bci strony: nag\u0142\u00f3wki, zdania, skr\u00f3ty - Lukas Wojcik - Blog","og_description":"Pobiera stron\u0119 i mierzy jej budow\u0119 zamiast stylu: tytu\u0142, opis i j\u0119zyk, drzewo nag\u0142\u00f3wk\u00f3w z lukami i pustymi nag\u0142\u00f3wkami, landmark tre\u015bci g\u0142\u00f3wnej, s\u0142owa, akapity i d\u0142ugo\u015bci zda\u0144 mierzone \u015bci\u015ble w akapitach, niewyja\u015bnione skr\u00f3ty we wst\u0119pie, obrazy bez tekstu alternatywnego, odno\u015bniki i bloki.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/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\/pl\/narzedzia\/page-structure-readability-inspector-headings-sentences\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/page-structure-readability-inspector-headings-sentences\/","name":"Inspektor struktury i czytelno\u015bci strony: nag\u0142\u00f3wki, zdania, skr\u00f3ty - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-09-05T12:51:44+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/page-structure-readability-inspector-headings-sentences\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/page-structure-readability-inspector-headings-sentences\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/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-3\/"},{"@type":"ListItem","position":3,"name":"Inspektor struktury i czytelno\u015bci strony: nag\u0142\u00f3wki, zdania, skr\u00f3ty"}]},{"@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\/15572","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=15572"}],"version-history":[{"count":0,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/15572\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/9284"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=15572"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=15572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}