Brotli e un algoritmo di compressione senza perdita sviluppato dagli ingegneri Google Jyrki Alakuijala e Zoltan Szabadka, pubblicato come open source nel settembre 2015 e standardizzato come RFC 7932 (luglio 2016). Rispetto a gzip, Brotli produce file dal 15 al 25 percento piu piccoli per HTML, CSS e JavaScript con costo CPU comparabile grazie a un dizionario statico di 120 KB di token web comuni. Brotli e supportato da tutti i browser moderni dal 2017 (Chrome 50 aprile 2016, Firefox 44 gennaio 2016, Safari 11 settembre 2017, Edge 15 aprile 2017) e da tutti i CDN principali (Cloudflare dal 2017, Fastly, Akamai, CloudFront da settembre 2020). Identificatore Content-Encoding: br. Attivare Brotli riduce tipicamente il peso della pagina di 15 a 30 KB su una pagina di 200 KB e migliora LCP di 50 a 150 ms su mobile lento.
Quando usare Brotli
- Sempre per HTML, CSS, JS, JSON, XML, SVG, font.
- Mai per JPEG, PNG, WebP, AVIF, MP4, ZIP, PDF.
- Sempre con gzip come fallback.
- Quality 11 statica (build), 4 a 6 dinamica.
nginx
Opzione A: pacchetto
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 nginxOpzione B: compilare 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>Hosting WordPress gestiti
| Host | Stato |
|---|---|
| Cloudflare | Default dal 2017 |
| Kinsta | Default |
| WP Engine | Global Edge |
| SiteGround | SiteGround Optimizer di default |
| Cloudways | Disattivato, abilitare in Application Settings |
| Bluehost, HostGator | Spesso assente, usare Cloudflare |
Verifica
curl -I -H "Accept-Encoding: br" https://example.it/style.css | grep -i content-encodingPre compressione statica
find ./dist -type f \( -name "*.html" -o -name "*.css" -o -name "*.js" \) -exec brotli -q 11 -f {} \;Errori comuni
- Dimenticare
Vary: Accept-Encoding. - Comprimere le immagini.
- Quality 11 dinamica.
- Brotli senza TLS.
- BREACH (mitigato con SameSite e senza segreti nell HTML).
Brotli vs gzip vs zstd
| Algoritmo | Anno | Risparmio HTML |
|---|---|---|
| gzip | 1992 | 70 a 75 percento |
| Brotli | 2015 | 75 a 80 percento |
| zstd | 2016, Chrome 123 marzo 2024, Firefox 126 maggio 2024 | Simile a Brotli, piu veloce |
Come InspectWP aiuta?
InspectWP analizza Content-Encoding di ogni asset.