Brotli e um algoritmo de compressao sem perdas desenvolvido pelos engenheiros do Google Jyrki Alakuijala e Zoltan Szabadka, liberado como open source em setembro de 2015 e padronizado como RFC 7932 (julho 2016). Comparado ao gzip, Brotli produz arquivos 15 a 25 por cento menores para HTML, CSS e JavaScript com custo de CPU comparavel gracas a um dicionario estatico de 120 KB de tokens web comuns. Brotli e suportado por todos os navegadores modernos desde 2017 (Chrome 50 abril 2016, Firefox 44 janeiro 2016, Safari 11 setembro 2017, Edge 15 abril 2017) e por todos os CDNs principais (Cloudflare desde 2017, Fastly, Akamai, CloudFront desde setembro de 2020). Identificador Content-Encoding: br. Ativar Brotli reduz tipicamente o peso da pagina em 15 a 30 KB em pagina de 200 KB e melhora LCP em 50 a 150 ms em conexoes moveis lentas.
Quando usar Brotli
- Sempre para HTML, CSS, JS, JSON, XML, SVG, fontes.
- Nunca para JPEG, PNG, WebP, AVIF, MP4, ZIP, PDF.
- Sempre com gzip de fallback.
- Quality 11 estatica (build), 4 a 6 dinamica.
nginx
Opcao A: pacote
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 nginxOpcao B: compilar 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>Hospedagens gerenciadas
| Host | Estado |
|---|---|
| Cloudflare | Padrao desde 2017 |
| Kinsta | Padrao |
| WP Engine | Ativo no Global Edge |
| SiteGround | SiteGround Optimizer por padrao |
| Cloudways | Desativado, ativar em Application Settings |
| Bluehost, HostGator | Geralmente ausente, usar Cloudflare |
Verificar
curl -I -H "Accept-Encoding: br" https://example.com/style.css | grep -i content-encodingPre compressao estatica
find ./dist -type f \( -name "*.html" -o -name "*.css" -o -name "*.js" \) -exec brotli -q 11 -f {} \;Erros comuns
- Esquecer
Vary: Accept-Encoding. - Comprimir imagens.
- Quality 11 dinamico.
- Brotli sem TLS.
- BREACH (mitigado com SameSite e sem segredos no HTML).
Brotli vs gzip vs zstd
| Algoritmo | Ano | Economia HTML |
|---|---|---|
| gzip | 1992 | 70 a 75 por cento |
| Brotli | 2015 | 75 a 80 por cento |
| zstd | 2016, Chrome 123 marco 2024, Firefox 126 maio 2024 | Similar ao Brotli, mais rapido |
Como o InspectWP ajuda?
InspectWP analisa Content-Encoding de cada ativo.