{"id":15338,"date":"2025-09-01T13:39:58","date_gmt":"2025-09-01T11:39:58","guid":{"rendered":"https:\/\/dhosting.pl\/pomoc\/?post_type=manual_kb&#038;p=15338"},"modified":"2025-09-01T13:39:58","modified_gmt":"2025-09-01T11:39:58","slug":"early-hints-103-w-praktyce-szybszy-lcp","status":"publish","type":"manual_kb","link":"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/early-hints-103-w-praktyce-szybszy-lcp\/","title":{"rendered":"Early Hints 103 w praktyce &#8211; szybszy LCP"},"content":{"rendered":"<p><!-- Meta description: Jak w\u0142\u0105czy\u0107 Early Hints 103, kt\u00f3re zasoby preloadowa\u0107 i jak zmierzy\u0107 realny zysk w LCP - przewodnik wdro\u017ceniowy krok po kroku. --><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-left counter-flat ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/early-hints-103-w-praktyce-szybszy-lcp\/#Czym_sa_Early_Hints_103_i_jak_przyspieszaja_LCP\" >Czym s\u0105 Early Hints 103 i jak przyspieszaj\u0105 LCP<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/early-hints-103-w-praktyce-szybszy-lcp\/#Jak_wlaczyc_Early_Hints_%E2%80%93_Cloudflare_i_inne_srodowiska\" >Jak w\u0142\u0105czy\u0107 Early Hints &#8211; Cloudflare i inne \u015brodowiska<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/early-hints-103-w-praktyce-szybszy-lcp\/#Co_preloadowac_zeby_nie_przepalic_budzetu\" >Co preloadowa\u0107, \u017ceby nie przepali\u0107 bud\u017cetu<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/early-hints-103-w-praktyce-szybszy-lcp\/#Weryfikacja_zysku_%E2%80%93_metryki_narzedzia_i_kontrola_jakosci\" >Weryfikacja zysku &#8211; metryki, narz\u0119dzia i kontrola jako\u015bci<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/early-hints-103-w-praktyce-szybszy-lcp\/#Najczestsze_pulapki_i_jak_ich_uniknac\" >Najcz\u0119stsze pu\u0142apki i jak ich unikn\u0105\u0107<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/early-hints-103-w-praktyce-szybszy-lcp\/#Podsumowujac\" >Podsumowuj\u0105c<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Czym_sa_Early_Hints_103_i_jak_przyspieszaja_LCP\"><\/span>Czym s\u0105 Early Hints 103 i jak przyspieszaj\u0105 LCP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Early Hints 103 to wczesna odpowied\u017a serwera, kt\u00f3ra pozwala przegl\u0105darce zacz\u0105\u0107 pobieranie kluczowych zasob\u00f3w zanim backend wygeneruje stron\u0119. Zamiast bezczynnie czeka\u0107 na HTML, klient ju\u017c w pierwszych milisekundach pobiera CSS, czcionki lub obraz LCP &#8211; dlatego metryka Largest Contentful Paint zwykle si\u0119 poprawia.<\/p>\n<p>Mechanizm dzia\u0142a prosto &#8211; serwer lub CDN wysy\u0142a status 103 wraz z nag\u0142\u00f3wkami <code class=\"\" data-line=\"\">Link<\/code>, a pe\u0142na odpowied\u017a 200 pojawia si\u0119 chwil\u0119 p\u00f3\u017aniej. Przegl\u0105darka traktuje te wskaz\u00f3wki jak polecenia preload lub preconnect, wi\u0119c skraca czas do renderu. Najwi\u0119kszy zysk wida\u0107 tam, gdzie TTFB bywa d\u0142u\u017cszy &#8211; aplikacje dynamiczne, sklepy i strony z wieloma integracjami.<\/p>\n<div id=\"dhost-164592065\" class=\"dhost-inpost dhost-entity-placement\"><a href=\"https:\/\/dhosting.pl\/opieka-stron.html?utm_source=pomoc&utm_medium=artykul&utm_campaign=pomoc\" target=\"_blank\">\r\n\t<img decoding=\"async\" src=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2025\/01\/baner-opieka.png\" alt=\"opieka stron www\">\r\n<\/a>\r\n<br \/>\r\n<br \/><\/div><h2><span class=\"ez-toc-section\" id=\"Jak_wlaczyc_Early_Hints_%E2%80%93_Cloudflare_i_inne_srodowiska\"><\/span>Jak w\u0142\u0105czy\u0107 Early Hints &#8211; Cloudflare i inne \u015brodowiska<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Najpro\u015bciej uruchomi\u0107 Early Hints na CDN &#8211; to on wy\u015ble 103 zanim origin sko\u0144czy generowa\u0107 HTML. W Cloudflare funkcja jest dost\u0119pna na poziomie domeny &#8211; w\u0142\u0105cz j\u0105 w sekcji optymalizacji wydajno\u015bci i zostaw tryb domy\u015blny, kt\u00f3ry automatycznie buduje 103 z nag\u0142\u00f3wk\u00f3w <code class=\"\" data-line=\"\">Link<\/code> oraz z analizy HTML. To dobry start bez zmian w aplikacji.<\/p>\n<p>Je\u015bli chcesz kontrolowa\u0107 wskaz\u00f3wki, dodawaj <code class=\"\" data-line=\"\">Link<\/code> po stronie originu &#8211; CDN skopiuje je do 103. Mo\u017cesz te\u017c tworzy\u0107 regu\u0142y na \u015bcie\u017cki &#8211; dla <code class=\"\" data-line=\"\">\/<\/code>, <code class=\"\" data-line=\"\">\/product\/*<\/code> czy <code class=\"\" data-line=\"\">\/blog\/*<\/code> przygotuj r\u00f3\u017cne zestawy zasob\u00f3w, kt\u00f3re maj\u0105 by\u0107 pobierane najwcze\u015bniej.<\/p>\n<p>W \u015brodowiskach bez CDN masz dwie \u015bcie\u017cki. Pierwsza &#8211; native support w serwerze lub frameworku. Nowoczesne platformy potrafi\u0105 wys\u0142a\u0107 103 z poziomu aplikacji &#8211; w Node mo\u017cesz emitowa\u0107 Early Hints przed w\u0142a\u015bciw\u0105 odpowiedzi\u0105, a podobne wsparcie pojawia si\u0119 w wybranych frameworkach. Druga &#8211; reverse proxy przed aplikacj\u0105. Serwery po\u015brednie mog\u0105 generowa\u0107 103 na podstawie regu\u0142 lub wstrzykiwanych nag\u0142\u00f3wk\u00f3w <code class=\"\" data-line=\"\">Link<\/code>.<\/p>\n<p>Pami\u0119taj o protokole &#8211; Early Hints najlepiej dzia\u0142aj\u0105 na HTTP\/2 i HTTP\/3. Je\u015bli ruch wpada przez HTTP\/1.1, cz\u0119\u015b\u0107 klient\u00f3w 103 zignoruje, a cz\u0119\u015b\u0107 nie zyska wystarczaj\u0105co na r\u00f3wnoleg\u0142o\u015bci. W praktyce i tak warto je w\u0142\u0105czy\u0107 &#8211; nowoczesne przegl\u0105darki obs\u0142uguj\u0105 mechanizm, a brak wsparcia po stronie klienta po prostu niczego nie psuje.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Co_preloadowac_zeby_nie_przepalic_budzetu\"><\/span>Co preloadowa\u0107, \u017ceby nie przepali\u0107 bud\u017cetu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Zasada jest prosta &#8211; preloaduj tylko to, co realnie przyspiesza pierwsze renderowanie. Zbyt d\u0142uga lista w 103 spowoduje kontencj\u0119 i odwrotny efekt. Zacznij od trzech kategorii:<\/p>\n<p><strong>1) Krytyczny CSS<\/strong><br \/>\n&#8211; G\u0142\u00f3wna kaskada, bez kt\u00f3rej nie ma layoutu.<br \/>\n&#8211; U\u017cyj <code class=\"\" data-line=\"\">as=style<\/code> i upewnij si\u0119, \u017ce nazwa pliku jest stabilna &#8211; w przeciwnym razie przegl\u0105darka nie skorzysta z cache.<br \/>\n&#8211; Je\u015bli dzielisz CSS na modu\u0142y, preloaduj tylko pakiet krytyczny &#8211; reszt\u0119 \u0142aduj p\u00f3\u017aniej.<\/p>\n<p><strong>2) Czcionki u\u017cyte w above the fold<\/strong><br \/>\n&#8211; Pliki w formatach WOFF2 &#8211; s\u0105 mniejsze i szybciej si\u0119 dekoduj\u0105.<br \/>\n&#8211; Zawsze dodaj <code class=\"\" data-line=\"\">as=font<\/code> i <code class=\"\" data-line=\"\">crossorigin<\/code> &#8211; inaczej przegl\u0105darka mo\u017ce pobra\u0107 font dwa razy.<br \/>\n&#8211; Unikaj preloading wielu wariant\u00f3w &#8211; zwykle wystarczy regular i bold dla pierwszego widoku.<\/p>\n<p><strong>3) Obraz LCP<\/strong><br \/>\n&#8211; Preload ma najwi\u0119kszy sens, gdy LCP to hero image lub g\u0142\u00f3wny baner.<br \/>\n&#8211; Dodaj <code class=\"\" data-line=\"\">as=image<\/code> i parametry odpowiadaj\u0105ce faktycznemu rozmiarowi &#8211; zminimalizujesz ryzyko pobrania niepotrzebnie du\u017cych plik\u00f3w.<br \/>\n&#8211; Je\u015bli masz warianty responsywne, upewnij si\u0119, \u017ce przegl\u0105darka wybierze w\u0142a\u015bciwy zas\u00f3b &#8211; wskazuj dok\u0142adnie ten, kt\u00f3ry jest najcz\u0119\u015bciej renderowany na danym szablonie.<\/p>\n<p>Uzupe\u0142niaj\u0105co rozwa\u017c <code class=\"\" data-line=\"\">preconnect<\/code> do kluczowych domen &#8211; np. CDN obraz\u00f3w lub hosta czcionek. To skraca TLS handshake i DNS, ale nie nadu\u017cywaj tej techniki &#8211; ka\u017cdy preconnect zu\u017cywa gniazda i mo\u017ce pogorszy\u0107 kolejk\u0119 \u017c\u0105da\u0144.<\/p>\n<p><em>Czego nie preloadowa\u0107<\/em> &#8211; skrypt\u00f3w analitycznych, wid\u017cet\u00f3w spo\u0142eczno\u015bciowych i zasob\u00f3w, kt\u00f3re nie bior\u0105 udzia\u0142u w pierwszym malowaniu. Je\u015bli musisz preloadowa\u0107 JS, r\u00f3b to ostro\u017cnie i tylko dla krytycznych, ma\u0142ych plik\u00f3w inicjalizuj\u0105cych.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Weryfikacja_zysku_%E2%80%93_metryki_narzedzia_i_kontrola_jakosci\"><\/span>Weryfikacja zysku &#8211; metryki, narz\u0119dzia i kontrola jako\u015bci<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>1) Zbierz baz\u0119 przed wdro\u017ceniem<\/strong><br \/>\n&#8211; Minimum 7 dni danych z ruchu produkcyjnego &#8211; LCP w percentylu 75, TTFB, CLS i FID\/INP.<br \/>\n&#8211; Podziel wyniki na typ po\u0142\u0105czenia i urz\u0105dzenia &#8211; mobilne vs desktop.<br \/>\n&#8211; Zanotuj, kt\u00f3re szablony stron i URL-e generuj\u0105 najwi\u0119cej ods\u0142on &#8211; tam skupisz optymalizacj\u0119.<\/p>\n<p><strong>2) W\u0142\u0105cz Early Hints na ograniczonym zakresie<\/strong><br \/>\n&#8211; Najpierw <code class=\"\" data-line=\"\">\/<\/code> i szablony o najwi\u0119kszym ruchu.<br \/>\n&#8211; Preloaduj tylko krytyczne zasoby &#8211; 2\u20134 wpisy <code class=\"\" data-line=\"\">Link<\/code> to zwykle bezpieczny poziom.<br \/>\n&#8211; Monitoruj b\u0142\u0119dy &#8211; czy nie pojawia si\u0119 podw\u00f3jne pobieranie font\u00f3w, czy nie ro\u015bnie Total Blocking Time przez kolizj\u0119 z innymi optymalizacjami.<\/p>\n<p><strong>3) Por\u00f3wnaj przed i po<\/strong><br \/>\n&#8211; Por\u00f3wnanie tydzie\u0144 do tygodnia na tej samej puli URL-i.<br \/>\n&#8211; Oczekiwany efekt &#8211; spadek LCP o 50\u2013200 ms na dobrze dobranych zasobach, wi\u0119cej przy d\u0142ugim TTFB.<br \/>\n&#8211; Je\u015bli zysku nie ma &#8211; ogranicz list\u0119 preload\u00f3w, usu\u0144 <code class=\"\" data-line=\"\">preconnect<\/code>, przetestuj r\u00f3\u017cne rozmiary obrazu LCP lub zaktualizuj priorytety \u0142adowania.<\/p>\n<p><strong>Jak sprawdzi\u0107, \u017ce 103 naprawd\u0119 wychodzi do u\u017cytkownika?<\/strong><br \/>\n&#8211; DevTools &#8211; w zak\u0142adce Network zobaczysz wczesn\u0105 odpowied\u017a 103 dla dokumentu oraz rozpocz\u0119te pobieranie zasob\u00f3w przed 200.<br \/>\n&#8211; cURL &#8211; nag\u0142\u00f3wki 103 s\u0105 widoczne przy zapytaniach z w\u0142\u0105czonym HTTP\/2.<br \/>\n&#8211; Logi i RUM &#8211; zanotuj odsetek \u017c\u0105da\u0144 z Early Hints oraz korelacj\u0119 z LCP. Je\u015bli masz mo\u017cliwo\u015b\u0107, wysy\u0142aj w RUM flag\u0119 \u201eEH hit\u201d i por\u00f3wnuj mediany.<\/p>\n<p><strong>Wa\u017cne zasady jako\u015bci<\/strong><br \/>\n&#8211; Nie dubluj preload\u00f3w &#8211; je\u015bli zas\u00f3b jest ju\u017c inlinowany lub wymuszony w HTML, usu\u0144 zb\u0119dne wpisy.<br \/>\n&#8211; Dodawaj <code class=\"\" data-line=\"\">crossorigin<\/code> do font\u00f3w i zasob\u00f3w z innych domen &#8211; inaczej przegl\u0105darka mo\u017ce utworzy\u0107 dwa wpisy w cache.<br \/>\n&#8211; Aktualizuj list\u0119 przy zmianach bundla &#8211; hash w nazwie pliku wymaga dostosowania nag\u0142\u00f3wk\u00f3w <code class=\"\" data-line=\"\">Link<\/code>.<br \/>\n&#8211; Nie preloaduj zasob\u00f3w warunkowych &#8211; je\u015bli obraz LCP r\u00f3\u017cni si\u0119 na wielu typach stron, rozdziel regu\u0142y w zale\u017cno\u015bci od szablonu.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Najczestsze_pulapki_i_jak_ich_uniknac\"><\/span>Najcz\u0119stsze pu\u0142apki i jak ich unikn\u0105\u0107<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Za d\u0142ugi zestaw hint\u00f3w &#8211; ogranicz do najwa\u017cniejszego CSS, jednego fontu i obrazu LCP. Dodatkowe zasoby do\u0142\u00f3\u017c dopiero, gdy zobaczysz brak regresji w LCP.<\/p>\n<p>Konflikt z optymalizacjami &#8211; niekt\u00f3re narz\u0119dzia \u0142\u0105cz\u0105 pliki i zmieniaj\u0105 kolejno\u015b\u0107 \u0142adowania. Ustal priorytety &#8211; najpierw weryfikuj Early Hints, potem dopasuj minifikacj\u0119 i lazy loading.<\/p>\n<p>Cache po stronie CDN &#8211; 103 powinien by\u0107 generowany dla ka\u017cdej odpowiedzi dokumentu &#8211; nie buforuj dynamicznych nag\u0142\u00f3wk\u00f3w <code class=\"\" data-line=\"\">Link<\/code> w spos\u00f3b, kt\u00f3ry pomija warianty dla r\u00f3\u017cnych szablon\u00f3w.<\/p>\n<p>Brak efektu na wolnych \u0142\u0105czach &#8211; je\u015bli g\u0142\u00f3wnym w\u0105skim gard\u0142em jest przepustowo\u015b\u0107, postaw na kompresj\u0119 obraz\u00f3w i rozmiary plik\u00f3w &#8211; Early Hints skracaj\u0105 \u201ebezczynno\u015b\u0107\u201d, ale nie zast\u0105pi\u0105 optymalizacji payloadu.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Podsumowujac\"><\/span>Podsumowuj\u0105c<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Early Hints 103 to szybkie zwyci\u0119stwo &#8211; przegl\u0105darka zaczyna prac\u0119, zanim backend sko\u0144czy, a LCP spada bez zmian w widoku. W\u0142\u0105cz funkcj\u0119 na kraw\u0119dzi, preloaduj tylko CSS krytyczny, wybrane fonty i obraz LCP, a zysk weryfikuj w danych polowych. Trzymaj list\u0119 <code class=\"\" data-line=\"\">Link<\/code> kr\u00f3tk\u0105, dodawaj <code class=\"\" data-line=\"\">crossorigin<\/code> do font\u00f3w i mierz wp\u0142yw per szablon &#8211; tak wykorzystasz potencja\u0142 103 bez ryzyka regresji.<\/p>\n","protected":false},"author":6,"featured_media":10957,"parent":0,"menu_order":0,"template":"","format":"standard","manualknowledgebasecat":[121,118],"manual_kb_tag":[952,5888,5895,5884,5889,5890,4661,5885,5891,5893,5892,5887,5886,5894,76],"class_list":["post-15338","manual_kb","type-manual_kb","status-publish","format-standard","has-post-thumbnail","hentry","manualknowledgebasecat-inne","manualknowledgebasecat-pozostale","manual_kb_tag-cdn","manual_kb_tag-cloudflare-early-hints","manual_kb_tag-devtools","manual_kb_tag-early-hints-103","manual_kb_tag-http-2","manual_kb_tag-http-3","manual_kb_tag-largest-contentful-paint","manual_kb_tag-lcp","manual_kb_tag-naglowek-link","manual_kb_tag-optymalizacja-front-end","manual_kb_tag-performance-web","manual_kb_tag-preconnect","manual_kb_tag-preload","manual_kb_tag-rum","manual_kb_tag-wordpress"],"_links":{"self":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/15338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":1,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/15338\/revisions"}],"predecessor-version":[{"id":15339,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/15338\/revisions\/15339"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media\/10957"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=15338"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manualknowledgebasecat?post=15338"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb_tag?post=15338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}