CDN na polskich stronach: Cloudflare, cache i TTFB
Cloudflare obsługuje co trzecią z 7785 stron .pl, ale większość przekazuje HTML do serwera, a TTFB na telefonach jest jak bez CDN. Szybsze są strony z cache.

Polski internet ma jeden główny CDN: Cloudflare. Jego nagłówki widać na 33% stron głównych 7785 witryn .pl z listy popularnych domen Tranco (otwiera się w nowej karcie), czyli na 87% wszystkich stron, za którymi widać jakikolwiek CDN. Daleko za nim, blisko siebie, są Amazon CloudFront (110 stron) i CDN polskiego hostingu nazwa.pl (97). Akamai i Fastly, wielkie sieci na świecie, stoją razem przed kilkudziesięcioma stronami głównymi .pl.
Pierwszy bajt za Cloudflare nie przychodzi średnio szybciej. Na telefonach prawdziwi użytkownicy Chrome czekali na niego w medianie 756 ms na stronach za Cloudflare (75. percentyl każdej strony) i 760 ms na stronach bez CDN. Powód widać we własnym nagłówku Cloudflare. 88% jego stron głównych szło dalej, do serwera strony, a szybszy pierwszy bajt miało tylko 10% podanych z cache. To ten sam spis, z którego zrobiliśmy badanie HTTP/3 i Brotli na polskich stronach, tym razem czytany pod kątem tego, kto odpowiada i skąd.
- 7785
- 33%
- 88%
- 756 ms
Co to jest CDN i jak działa
CDN (content delivery network, sieć dostarczania treści) to zbiór serwerów, zwanych węzłami brzegowymi, rozstawionych w wielu miastach. Przeglądarka łączy się z najbliższym z nich zamiast z serwerem strony. Węzeł może odpowiedzieć ze swojego cache, gdy ma świeżą kopię pliku, albo przekazać żądanie dalej do serwera strony i przekazać odpowiedź z powrotem. Tak czy inaczej kończy połączenie odwiedzającego blisko niego, może filtrować ataki i mówić w imieniu strony nowszymi protokołami.
CDN a hosting: jaka różnica?
CDN nie zastępuje hostingu. Wszystko, czego węzeł nie poda z cache, nadal musi przygotować serwer strony, a na większości stron dotyczy to samego dokumentu HTML. Pliki statyczne (obrazy, skrypty, fonty) CDN zapisuje w cache bez proszenia.
Udziały CDN w Polsce: które CDN obsługują polskie strony?
38% stron głównych wskazywało CDN w nagłówkach. Znaleźliśmy 14 sieci, a jedna z nich obsługuje blisko dziewięć na dziesięć tych stron.
Cloudflare obsługuje co trzecią polską stronę główną poniżej top 100
CDN wskazany w nagłówkach odpowiedzi strony głównej, strony .pl według miejsca na liście Tranco · n dla każdego wiersza w tabeli · CDN z mniej niż 30 stronami w CrUX złożone w Inne CDN
- Cloudflare
- Amazon CloudFront
- CDN nazwa.pl
- Inne CDN
- Bez CDN w nagłówkach
Pokaż dane
| Pozycja | Cloudflare | Amazon CloudFront | CDN nazwa.pl | Inne CDN | Bez CDN w nagłówkach | n |
|---|---|---|---|---|---|---|
| Wszystkie strony | 33% | 1,4% | 1,2% | 2,4% | 62% | 7785 |
| Top 100 | 22% | 10% | 0% | 9% | 59% | 100 |
| Miejsca 101–1000 | 34% | 3,3% | 0,4% | 4,3% | 58% | 900 |
| Poniżej 1000 | 33% | 1% | 1,4% | 2% | 63% | 6785 |

Wykres jako obraz. Możesz go użyć na licencji CC BY 4.0, podając Outofplace jako źródło i link do tej strony.
Na samym szczycie udział Cloudflare jest niższy: 22% w top 100 wobec 34% w kolejnych 900 i 33% niżej; 95% przedziały dla top 100 i reszty się nie pokrywają. Top 100 opiera się zamiast tego na innych sieciach. Amazon CloudFront obsługuje 10% top 100, mniejsze CDN razem 9%, a CDN nazwa.pl nie ma tam wcale. Jego 97 stron leży prawie w całości poniżej pierwszego tysiąca.
Cloudflare czy Akamai: który jest większy?
Na polskich stronach głównych Cloudflare, o dwa rzędy wielkości: 2563 strony wobec 24 dla Akamai i 25 dla Fastly. To liczba stron, nie ruchu ani przychodów, a nasz spis widzi tylko, kto odpowiada HTML-em strony głównej. Strona, która wysyła obrazy przez Akamai, a strony ze swojego serwera, liczy się tu jako „bez CDN”.
| CDN | Strony | Udział we wszystkich | W top 100 | Miejsca 101–1000 |
|---|---|---|---|---|
| Bez CDN w nagłówkach | 4832 | 62% | 59 | 522 |
| Cloudflare | 2563 | 33% | 22 | 305 |
| Amazon CloudFront | 110 | 1,4% | 10 | 30 |
| CDN nazwa.pl | 97 | 1,3% | 0 | 4 |
| Load balancer Google Cloud | 30 | 0,4% | 0 | 6 |
| Bunny CDN | 27 | 0,4% | 4 | 7 |
| Fastly | 25 | 0,3% | 0 | 4 |
| Akamai | 24 | 0,3% | 3 | 5 |
| Azure Front Door | 24 | 0,3% | 1 | 4 |
| Imperva | 22 | 0,3% | 0 | 9 |
| Vercel | 14 | 0,2% | 1 | 1 |
| Hostinger CDN | 9 | 0,1% | 0 | 0 |
| Sucuri | 5 | 0,1% | 0 | 3 |
| Netlify | 2 | 0% | 0 | 0 |
| DDoS-Guard | 1 | 0% | 0 | 0 |
Skąd odpowiada CDN: głównie z Warszawy
Cztery z tych sieci zapisują w nagłówku, który węzeł odpowiedział: Cloudflare w cf-ray (kod w rodzaju -WAW), CloudFront w X-Amz-Cf-Pop, nazwa.pl w X-CDN-nazwa.pl-location, a Fastly w X-Served-By. Naszemu klientowi w Polsce prawie każda odpowiedź przyszła z Warszawy.
| CDN | Węzeł, który odpowiedział | Strony | Udział w stronach CDN |
|---|---|---|---|
| Cloudflare | Warszawa (WAW) | 2561 | 100% |
| Cloudflare | Frankfurt (FRA) | 1 | 0% |
| Cloudflare | Londyn (LHR) | 1 | 0% |
| Amazon CloudFront | Warszawa (WAW) | 107 | 97% |
| Amazon CloudFront | Frankfurt (FRA) | 3 | 2,7% |
| CDN nazwa.pl | Warszawa (WAW) | 97 | 100% |
| Fastly | Wiedeń (VIE) | 14 | 56% |
| Fastly | Berlin (BER) | 9 | 36% |
| Fastly | Marsylia (MRS) | 2 | 8% |
Cloudflare odpowiedział z Warszawy dla 2561 z 2563 swoich stron głównych. Fastly ani razu nie odpowiedział nam z Polski: jego 25 stron przyszło z Wiednia, Berlina i Marsylii. Tak każda sieć pokierowała jedną maszynę jednego dnia; odwiedzający z innego miejsca w Polsce albo z innej sieci może trafić na inny węzeł.
Czy Cloudflare cache'uje HTML?
Nie, dopóki się mu tego nie każe. Dokumentacja Cloudflare o domyślnym zachowaniu cache (otwiera się w nowej karcie) (aktualizacja z 14 września 2026) mówi, że „the Cloudflare CDN does not cache HTML or JSON by default”; zapisuje pliki według rozszerzenia: obrazy, skrypty, fonty i podobne. Cloudflare oznacza swoje odpowiedzi nagłówkiem cf-cache-status, a strona Cloudflare o odpowiedziach cache (otwiera się w nowej karcie) wyjaśnia, co znaczy każda wartość. DYNAMIC znaczy, że Cloudflare „determined at request time that the asset is not eligible for cache”, a BYPASS, że odpowiedź serwera ostatecznie nie nadawała się do cache.
Większość CDN przekazuje HTML polskiej strony głównej do serwera
Status cache HTML-a strony głównej we własnym nagłówku każdego CDN (cf-cache-status, X-Cache, X-CDN-nazwa.pl-cache) · n dla każdego wiersza w tabeli
- Z cache węzła
- Do cache, tym razem z serwera
- Przekazane do serwera
- Bez nagłówka cache
Pokaż dane
| Pozycja | Z cache węzła | Do cache, tym razem z serwera | Przekazane do serwera | Bez nagłówka cache | n |
|---|---|---|---|---|---|
| Cloudflare | 10% | 0,8% | 88% | 1% | 2563 |
| Amazon CloudFront | 40% | 60% | 0% | 0% | 110 |
| CDN nazwa.pl | 30% | 24% | 0% | 46% | 97 |
| Inne CDN | 17% | 9,8% | 13% | 60% | 183 |

Wykres jako obraz. Możesz go użyć na licencji CC BY 4.0, podając Outofplace jako źródło i link do tej strony.
Za Cloudflare 85% stron głównych wróciło z DYNAMIC, a 2,6% z BYPASS. Większość stron używa więc Cloudflare jako przekaźnika HTML-a i pozwala mu cache'ować tylko te pliki, które cache'uje i tak. CloudFront podał z cache 40% swoich stron głównych, nazwa.pl 30%. Kolejne 46% stron głównych nazwa.pl przyszło bez jego nagłówka cache, więc tego nie wiemy. Strona pomocy nazwa.pl o nagłówkach CDN (otwiera się w nowej karcie) mówi, że decyduje o tym nagłówek Cache-Control strony.
Czy Cloudflare przyspiesza stronę?
TTFB (time to first byte) to czas, jaki przeglądarka czeka od poproszenia o stronę do pierwszego bajtu odpowiedzi. Mieści się w nim zestawienie połączenia, a za CDN także droga węzła do serwera strony, gdy nie może odpowiedzieć z cache. Spojrzeliśmy na to dwojako: na czasy samego spisu, jedno żądanie na stronę z Polski, i na TTFB, jaki na telefonach widzieli prawdziwi użytkownicy Chrome.
Z Polski strona główna z cache czeka na pierwszy bajt trzy razy krócej
Mediana czekania od wysłania żądania do pierwszego bajtu, w ms, po zestawieniu połączenia · klient spisu w Polsce, jedno żądanie na stronę główną · 95% przedziały bootstrap
Pokaż dane
| Pozycja | Wartość | Zakres | n |
|---|---|---|---|
| Bez CDN | 208 ms | 201 ms–218 ms | 4832 |
| Cloudflare, HTML przekazany dalej | 229 ms | 215 ms–242 ms | 2251 |
| Cloudflare, HTML z cache | 63 ms | 59 ms–70 ms | 266 |
| CloudFront, miss | 260 ms | 172 ms–320 ms | 66 |
| CloudFront, hit | 64 ms | 52 ms–90 ms | 44 |
| CDN nazwa.pl | 202 ms | 121 ms–318 ms | 97 |
| Inne CDN | 173 ms | 137 ms–217 ms | 183 |

Wykres jako obraz. Możesz go użyć na licencji CC BY 4.0, podając Outofplace jako źródło i link do tej strony.
Spis rozdziela obie połowy. Zestawienie połączenia (DNS, TCP i TLS) z warszawskim węzłem Cloudflare trwało w medianie 90 ms, z serwerami bez CDN 141 ms. Czekanie po wysłaniu żądania zależy od cache. Gdy Cloudflare odpowiadał z cache, pierwszy bajt przychodził po medianie 63 ms. Gdy przekazywał stronę dalej, po 229 ms, czyli nie szybciej niż 208 ms serwera bez CDN. CloudFront dzieli się tak samo na trafienia i chybienia.
Prawdziwi użytkownicy pokazują ten sam wzór, z mniejszą różnicą. Chrome UX Report ma rekord dla telefonów dla 6076 stron, z 28 dni do 22 września 2026.
Za Cloudflare niższy TTFB na telefonach ma tylko strona główna z cache
Mediana TTFB p75 originów na telefonach, w sekundach · CrUX, 26 sie – 22 wrz 2026 · 95% przedziały bootstrap · n dla każdego wiersza w danych
Pokaż dane
| Pozycja | Wartość | Zakres | n |
|---|---|---|---|
| Bez CDN | 0,76 s | 0,74 s–0,78 s | 3552 |
| Cloudflare, HTML przekazany dalej | 0,77 s | 0,74 s–0,8 s | 1896 |
| Cloudflare, HTML z cache | 0,65 s | 0,57 s–0,69 s | 243 |
| CloudFront, miss | 0,71 s | 0,62 s–0,86 s | 63 |
| CloudFront, hit | 0,7 s | 0,53 s–0,78 s | 43 |
| CDN nazwa.pl | 0,66 s | 0,55 s–0,84 s | 69 |
| Inne CDN | 0,76 s | 0,71 s–0,83 s | 174 |

Wykres jako obraz. Możesz go użyć na licencji CC BY 4.0, podając Outofplace jako źródło i link do tej strony.
W całości strony za Cloudflare i strony bez CDN wychodzą na remis. Różnica median wynosi -4 ms, z 95% przedziałem od -40 ms do 28 ms. Podzielone według cache już nie. Strony za Cloudflare, których stronę główną podał z cache, miały medianę 654 ms, przekazane dalej 771 ms, czyli różnicę -117 ms (przedział od -219 ms do -66 ms). Różnica jest mniejsza niż w spisie, prawdopodobnie dlatego, że TTFB telefonu obejmuje też przekierowania, DNS i sieć komórkową, których żaden cache nie skraca.
Jaki TTFB jest dobry?
Przewodnik web.dev po TTFB (otwiera się w nowej karcie) uznaje za dobry wynik do 0,8 sekundy, a za słaby ponad 1,8 sekundy, jako „rough guide”, i dodaje, że TTFB nie jest jednym z Core Web Vitals. Według tej granicy dobry TTFB na telefonach w 75. percentylu miało 53% polskich stron bez CDN, 52% stron za Cloudflare przekazujących HTML dalej i 64% tych, których HTML przyszedł z cache Cloudflare. Pierwszy bajt to początek LCP, czyli ładowania, na którym polskie strony kancelarii odpadają najczęściej.
Pierwszy bajt to nie cała strona: LCP za CDN
Largest Contentful Paint, wskaźnik ładowania z Core Web Vitals, zaczyna się po pierwszym bajcie i dodaje wszystko, co strona potem pobiera. Szybszy pierwszy bajt nie przenosi się tu na LCP. Strony za Cloudflare miały medianę LCP p75 o 86 ms wyższą niż strony bez CDN (przedział od 40 ms do 142 ms). Cache'owanie HTML-a nie dało różnicy, którą umielibyśmy zmierzyć: przedział tej różnicy biegnie od -172 ms do 62 ms.
Ta różnica nie uwzględnia tego, co stoi za Cloudflare: 36% jego stron głównych to sklepy internetowe, w tym wszystkie 127 sklepów na Shopify w próbie, a typów stron między grupami nie porównywaliśmy. Jak wypadają platformy sklepowe w LCP, pokazujemy w badaniu Core Web Vitals polskich sklepów internetowych.
| Grupa | Originy w CrUX | Mediana TTFB p75 | Dobry TTFB | Mediana LCP p75 | Dobry LCP | Nawiązanie połączenia | Czekanie na pierwszy bajt |
|---|---|---|---|---|---|---|---|
| Bez CDN | 3552 | 760 ms | 53% | 1691 ms | 85% | 141 ms | 208 ms |
| Cloudflare, HTML przekazany dalej | 1896 | 771 ms | 52% | 1785 ms | 80% | 90 ms | 229 ms |
| Cloudflare, HTML z cache | 243 | 654 ms | 64% | 1725 ms | 83% | 92 ms | 63 ms |
| Cloudflare, miss lub bez statusu | 36 | 771 ms | 56% | 1863 ms | 86% | 75 ms | 131 ms |
| CloudFront, miss | 63 | 705 ms | 57% | 1693 ms | 78% | 109 ms | 260 ms |
| CloudFront, hit | 43 | 696 ms | 65% | 1948 ms | 81% | 130 ms | 64 ms |
| CDN nazwa.pl | 69 | 660 ms | 59% | 1549 ms | 86% | 88 ms | 202 ms |
| Inne CDN | 174 | 757 ms | 55% | 1883 ms | 73% | 142 ms | 173 ms |
CDN dla strony: czy jest potrzebny, gdy odwiedzający są w Polsce?
Dla HTML-a nasze dane pokazują szybszy pierwszy bajt tylko tam, gdzie CDN go cache'uje. Z naszych danych wynika, że węzeł w Warszawie zestawia połączenie szybciej niż przeciętny polski serwer, a potem czeka na ten sam serwer za każdym razem, gdy przekazuje stronę dalej. W naszych danych strony, których CDN przekazuje HTML dalej, miały taki sam pierwszy bajt jak strony bez CDN, a szybszy tylko te z HTML-em z cache. To różne strony, więc nie jest to efekt włączenia cache, ale trafienie w cache to jedyny przypadek, w którym droga do serwera odpada.
Pozostałe powody, by mieć CDN, nie zależą od HTML-a: obrazy i skrypty podawane z węzła, ochrona przed atakami, nowe protokoły i kompresja. Za Cloudflare większość polskich stron głównych przychodzi z HTTP/3 i Brotli albo zstd, co pokazuje nasze badanie HTTP/3.
Jak sprawdzić, czy CDN cache'uje HTML strony
Przeczytaj nagłówek cache
Poproś o stronę główną tak jak przeglądarka i sprawdź własne nagłówki CDN:
curl -sI https://www.example.pl/ | grep -iE '^(cf-cache-status|cf-ray|x-cache|x-amz-cf-pop|x-cdn-nazwa\.pl-[a-z]+|age|cache-control):'cf-cache-status: HITznaczy, że Cloudflare odpowiedział z cache,DYNAMIC, że przekazał żądanie dalej. CloudFront pisze wx-cacheHit from cloudfrontalboMiss from cloudfront, nazwa.pl wX-CDN-nazwa.pl-cacheHITalboMISS. Zapytaj dwa razy: pierwsze żądanie po zmianie może być chybieniem.Zdecyduj, czy HTML może trafić do cache
Stronę można cache'ować na węźle, gdy każdy odwiedzający dostaje ten sam HTML: bez imienia w nagłówku, bez liczby produktów w koszyku wpisanej w stronę, bez cen zależnych od tego, kto pyta. Sklep albo strefa po zalogowaniu zwykle musi trzymać odwiedzających z ciasteczkiem sesji poza cache albo doładowywać te części JavaScriptem po stronie.
W Cloudflare dodaj regułę cache
Reguła Cache Rule ustawiona na „Eligible for cache” dla ścieżek HTML, z Edge TTL, sprawia, że Cloudflare zatrzymuje stronę (ustawienia reguły (otwiera się w nowej karcie)). Reguły cache są dostępne w planie Free (otwiera się w nowej karcie), do 10 sztuk (stan na 15 października 2026). Dodaj drugą regułę z „Bypass cache” dla żądań z ciasteczkiem sesji i czyść cache po publikacji.
W innych CDN wyślij Cache-Control
CloudFront bierze
max-agealbos-maxagez nagłówkaCache-Controlserwera, w granicach minimalnego i maksymalnego TTL swojej polityki cache, jak wyjaśnia strona AWS o wygasaniu cache (otwiera się w nowej karcie); strona pomocy nazwa.pl mówi, że ten sam nagłówek steruje jej cache.Cache-Control: public, max-age=0, s-maxage=300pozwala współdzielonym cache trzymać stronę pięć minut, a przeglądarki pytają za każdym razem.Zmierz ponownie po czterech tygodniach
CrUX podaje 28 dni wizyt, więc efekt zmiany widać w pełni po około miesiącu. Porównaj TTFB p75 na telefonach w PageSpeed Insights albo w CrUX API przed zmianą i po niej.
Jak mierzyliśmy
Czego te dane nie powiedzą
Jedna odpowiedź na stronę: strona główna, 24 września 2026, z jednej maszyny w Polsce, w trakcie spisu z kilkoma stronami naraz. Obrazy, skrypty i inne podstrony mogą przychodzić z innych hostów i innych CDN, więc „bez CDN” znaczy, że żadnego nie widać w nagłówkach strony głównej. Via: 1.1 google w Google Cloud oznacza load balancer, który może, ale nie musi cache'ować. Węzły to miejsca, do których każda sieć skierowała naszą maszynę, a nie każdego odwiedzającego z Polski. CrUX liczy użytkowników Chrome, gdziekolwiek są, nie tylko w Polsce. Nie widzimy planu strony, jej ustawień cache ani tego, gdzie stoi jej serwer, więc porównania grup to korelacje, a nie efekty dostawcy.
Który CDN ma największy udział w Polsce?
Cloudflare, z ogromną przewagą. 24 września 2026 jego nagłówki pojawiły się na 33% z 7785 stron głównych .pl, które przeczytaliśmy, czyli na 87% wszystkich stron z jakimkolwiek CDN. Drugi był Amazon CloudFront (110 stron), trzeci CDN polskiego hostingu nazwa.pl (97).
Ile stron korzysta z Cloudflare?
Spośród stron .pl z listy Tranco 33% odpowiadało stroną główną przez Cloudflare w naszym spisie z 24 września 2026. Na samym szczycie udział jest niższy: 22% w top 100 i 33% poniżej pierwszego tysiąca.
Czy Cloudflare to CDN i czy cache'uje HTML?
Cloudflare to CDN, ale HTML-a domyślnie nie cache'uje. Jego dokumentacja mówi, że CDN Cloudflare „does not cache HTML or JSON by default”, a na polskich stronach 88% stron głównych za Cloudflare szło dalej, do serwera strony. Z cache przyszło tylko 10%. Reguła cache (Cache Rule), dostępna w każdym planie, może dopuścić HTML do cache.
Co oznacza cf-cache-status DYNAMIC?
Że Cloudflare uznał odpowiedź za niekwalifikującą się do cache i pobrał ją z serwera strony. HTML dostaje ten status, dopóki reguła cache (Cache Rule) nie powie inaczej. W naszym spisie 85% polskich stron głównych za Cloudflare wróciło ze statusem DYNAMIC.
Czy Cloudflare przyspiesza stronę?
W naszych danych niższy TTFB miały tylko strony, którym Cloudflare podał HTML ze swojego cache. Na telefonach mediana TTFB polskich stron za Cloudflare wyniosła 756 ms, a stron bez CDN 760 ms. Strony, których HTML Cloudflare podał z cache, miały medianę 654 ms, a te przekazane do serwera 771 ms.
TTFB: co to i jaki wynik jest dobry?
TTFB (Time to First Byte) to czas od wysłania żądania do pierwszego bajtu odpowiedzi. Według web.dev dobry wynik to do 0,8 sekundy, a słaby to ponad 1,8 sekundy; TTFB nie jest jednym z Core Web Vitals. Wśród polskich stron bez CDN 53% miało TTFB p75 na telefonach do 0,8 sekundy, wśród stron z HTML-em z cache Cloudflare 64%.
Czy potrzebuję CDN, gdy odwiedzający są w Polsce?
Dla HTML-a nasze dane pokazują szybszy pierwszy bajt tylko tam, gdzie CDN go cache'uje. Cloudflare odpowiadał naszemu klientowi w Polsce z Warszawy i szybciej zestawiał połączenie niż serwery bez CDN, ale gdy HTML szedł dalej do serwera strony, czekanie na niego nie było krótsze niż bez CDN. Pozostałe powody, czyli pliki statyczne, ochrona przed atakami i nowe protokoły, zostają.