Brotli to bezstratny algorytm kompresji rozwiniety przez inzynierow Google Jyrki Alakuijala i Zoltana Szabadka, opublikowany jako open source we wrzesniu 2015 i ustandaryzowany jako RFC 7932 (lipiec 2016). W porownaniu z gzip, Brotli daje pliki 15 do 25 procent mniejsze dla HTML, CSS i JavaScript przy porownywalnym koszcie CPU dzieki slownikowi 120 KB. Brotli jest obslugiwany przez wszystkie nowoczesne przegladarki od 2017 (Chrome 50 kwiecien 2016, Firefox 44 styczen 2016, Safari 11 wrzesien 2017, Edge 15 kwiecien 2017) i przez wszystkie wazne CDN (Cloudflare od 2017, Fastly, Akamai, CloudFront od wrzesnia 2020). Identyfikator Content-Encoding: br. Wlaczenie Brotli redukuje wage strony zwykle o 15 do 30 KB na 200 KB stronie i poprawia LCP o 50 do 150 ms na wolnym mobile.
Kiedy uzywac Brotli
- Zawsze dla HTML, CSS, JS, JSON, XML, SVG, czcionek.
- Nigdy dla JPEG, PNG, WebP, AVIF, MP4, ZIP, PDF.
- Zawsze z gzip jako fallback.
- Quality 11 statyczne (build), 4 do 6 dynamiczne.
nginx
Opcja A: pakiet
sudo apt update
sudo apt install libnginx-mod-http-brotli-filter libnginx-mod-http-brotli-staticbrotli_static on;
brotli on;
brotli_comp_level 6;
brotli_min_length 256;
brotli_types text/html text/css application/javascript application/json image/svg+xml font/ttf font/otf application/xml application/ld+json;sudo nginx -t
sudo systemctl reload nginxOpcja B: kompilacja ngx_brotli
git clone --recursive https://github.com/google/ngx_brotli.git
./configure --with-compat --add-dynamic-module=./ngx_brotli
make modulesApache
sudo a2enmod brotli
sudo systemctl restart apache2<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/css application/javascript application/json image/svg+xml font/ttf
BrotliCompressionQuality 5
Header append Vary Accept-Encoding
</IfModule>Zarzadzane hostingi WordPress
| Hosting | Status |
|---|---|
| Cloudflare | Domyslnie od 2017 |
| Kinsta | Domyslnie |
| WP Engine | Global Edge |
| SiteGround | SiteGround Optimizer domyslnie |
| Cloudways | Wylaczone, wlacz w Application Settings |
| Bluehost, HostGator | Czesto brak, uzyj Cloudflare |
Weryfikacja
curl -I -H "Accept-Encoding: br" https://example.pl/style.css | grep -i content-encodingStatyczna pre kompresja
find ./dist -type f \( -name "*.html" -o -name "*.css" -o -name "*.js" \) -exec brotli -q 11 -f {} \;Czeste bledy
- Brak
Vary: Accept-Encoding. - Kompresja obrazow.
- Quality 11 dynamicznie.
- Brotli bez TLS.
- BREACH (mitygacja SameSite, brak sekretow w HTML).
Brotli vs gzip vs zstd
| Algorytm | Rok | Oszczednosc HTML |
|---|---|---|
| gzip | 1992 | 70 do 75 procent |
| Brotli | 2015 | 75 do 80 procent |
| zstd | 2016, Chrome 123 marzec 2024, Firefox 126 maj 2024 | Podobny do Brotli, szybszy |
Jak InspectWP pomaga?
InspectWP analizuje Content-Encoding kazdego zasobu.