Gzip i Brotli - kompresja strony WWW w praktyce

Kompresja Gzip i Brotli tnie 70-85% wagi HTML, CSS i JS. Jak sprawdzić, czy działa, jak ją włączyć na serwerze i czego nie kompresować - z liczbami z wdrożeń.

Gzip i Brotli to metody kompresji HTTP: serwer pakuje pliki tekstowe strony (HTML, CSS, JavaScript) przed wysłaniem, a przeglądarka rozpakowuje je u siebie. Typowy zysk to 70-85% mniej danych do przesłania, a włączenie kompresji na dobrym hostingu sprowadza się do jednego przełącznika - albo, jak u nas, jest domyślne.

W tym tekście wyjaśniamy różnicę między Gzipem a Brotli, co kompresować (a czego nie, żeby nie palić CPU), jak w 30 sekund sprawdzić, czy Twoja strona kompresuje, jak włączyć kompresję na różnych serwerach i ile to realnie daje - na liczbach z naszych wdrożeń.

O co chodzi w kompresji HTTP

Zanim serwer wyśle przeglądarce HTML, CSS czy skrypt, może go spakować - jak ZIP, tylko w locie. Przeglądarka rozpakowuje po swojej stronie. Tekstowe pliki kompresują się znakomicie: typowy HTML chudnie o 70-85%, CSS i JS podobnie. Mniej bajtów = szybszy transfer, szczególnie na telefonach - a kosztuje to jeden nagłówek. To najtańsza optymalizacja w całym katalogu z pillara Szybka strona WWW.

Gzip kontra Brotli

  • Gzip - weteran wspierany przez wszystko, co żyje; solidny punkt odniesienia,
  • Brotli - nowszy algorytm opracowany przez Google (ustandaryzowany w RFC 7932): pliki wychodzą zwykle o kilkanaście-20% mniejsze niż po Gzipie przy statycznych zasobach; wspierany przez wszystkie współczesne przeglądarki,
  • serwery negocjują automatycznie: przeglądarka mówi, co rozumie (nagłówek Accept-Encoding), serwer wybiera najlepsze - więc włączenie Brotli niczego nie psuje starym klientom, bo Gzip zostaje jako zapas.
CechaGzipBrotli
Rozmiar po kompresji (tekst)dobrylepszy o ~15-20%
Wsparcie przeglądarekuniwersalnewszystkie współczesne
Koszt CPU przy kompresji w locieniskiniski-średni (zależnie od poziomu)
Kompresja wstępna (statyczne pliki)możliwanajlepszy scenariusz (najwyższy poziom bez kosztu w locie)

Na LiteSpeed (nasz standard) Brotli jest dostępny od ręki; to jeden z powodów, dla których w testach wygrywa z klasycznym Apache - więcej w tekście o technologiach hostingu.

Co kompresować, a czego nie

  • TAK: HTML, CSS, JavaScript, SVG, JSON/XML (API!), czcionki w starych formatach,
  • NIE: JPG, PNG, WebP, MP4, PDF, ZIP - są już skompresowane; ponowna kompresja pali CPU i potrafi wręcz powiększyć plik. Obrazy odchudza się inaczej - WebP i spółka,
  • WOFF2 (nowoczesne czcionki) ma kompresję wbudowaną (wewnętrznie to właśnie Brotli) - zostaw w spokoju.

Jak sprawdzić, czy Twoja strona kompresuje

  1. Narzędzia deweloperskie przeglądarki (F12) → Sieć → kliknij dokument → nagłówek odpowiedzi content-encoding: wartość br (Brotli) albo gzip = działa; brak nagłówka = nie działa.
  2. Porównaj kolumny „rozmiar przesłany" vs „rozmiar zasobu" - różnica to zysk z kompresji.
  3. PageSpeed wytknie brak wprost („Włącz kompresję tekstu") - jak czytać raport: przewodnik po PSI.

Jak włączyć kompresję

  • Na naszym hostingu: nic nie robisz - kompresja (z Brotli) jest włączona serwerowo dla typów tekstowych,
  • wtyczki cache (np. LiteSpeed Cache) mają przełącznik kompresji - upewnij się, że nie dublują pracy serwera,
  • Apache bez dostępu do konfiguracji: mod_deflate przez .htaccess (dyrektywy AddOutputFilterByType dla text/html, text/css, application/javascript),
  • nginx: gzip on w konfiguracji serwera (Brotli wymaga modułu ngx_brotli),
  • uwaga na podwójną kompresję - jeśli CDN też kompresuje, niech robi to jedna warstwa; podwójne pakowanie nie zmniejsza plików, a dokłada pracy.

Ile to daje w praktyce

Przykład z naszych wdrożeń: HTML strony głównej 96 KB → 14 KB po Brotli; arkusz CSS motywu 340 KB → 42 KB. Na LTE to różnica odczuwalna gołym okiem, a serwer przy okazji wypycha kilkukrotnie mniej danych. Za darmo. Sprawdź swoją stronę testem szybkości - pokazujemy wagę strony przed i po kompresji.

Pamiętaj o proporcjach: kompresja tnie pliki tekstowe, ale na większości stron najwięcej ważą obrazy - kompletną kolejność odchudzania znajdziesz w przewodniku strona wolno się ładuje.

Najczęściej zadawane pytania

Czy kompresja spowalnia serwer?

Przy dzisiejszych procesorach koszt jest pomijalny wobec zysku na transferze, a pliki statyczne serwer może skompresować raz i trzymać gotowe (tzw. kompresja wstępna). Problemem bywa tylko wymuszanie najwyższego poziomu Brotli dla treści generowanych w locie - domyślne ustawienia serwerów są rozsądnie wyważone.

Mam do wyboru Gzip albo Brotli - co włączyć?

Oba: Brotli jako preferowany, Gzip jako zapas dla starszych klientów. Serwer i przeglądarka same uzgodnią najlepszą wspólną metodę, więc taka konfiguracja nigdy nie działa na minus.

Czy kompresja działa też na strony z WordPressa?

Tak - kompresji podlega odpowiedź HTTP, niezależnie od tego, czy HTML wygenerował WordPress, sklep czy plik statyczny. WordPress niczego nie musi „umieć"; wystarczy włączona kompresja na serwerze lub we wtyczce cache.

Włączyłem kompresję, a PageSpeed dalej pokazuje „Włącz kompresję tekstu" - dlaczego?

Najczęściej: cache serwuje starą, nieskompresowaną kopię (wyczyść cache), kompresji podlega HTML, ale nie CSS/JS (sprawdź typy w konfiguracji), albo zasób wskazywany przez PSI pochodzi z zewnętrznej domeny (skrypty firm trzecich - na ich kompresję nie masz wpływu).

Czy warto kompresować obrazy Gzipem/Brotli?

Nie - JPG, PNG i WebP są już skompresowane wewnętrznie; kolejna warstwa nic nie daje, a zużywa CPU. Obrazy optymalizuje się zmianą formatu (WebP/AVIF), wymiarów i jakości - to osobny, zwykle największy rezerwuar oszczędności na stronie.

Powiązane poradniki

Wszystkie poradniki z kategorii: Szybkość i wydajność

Powiązane usługi McProdukt

Zobacz również