Neste post irei demonstrar como comprimir conteúdo de texto em suas aplicações web ou Websites, de modo que o tamanho trafegado seja menor e, consequentemente, o tempo de carregamento da sua aplicação também.
Para tal, utilizaremos o arquivo de configuração do servidor Web Apache, o .htaccess. Lembre-se que arquivos como vídeos, músicas e outros arquivos binários, provavelmente já são comprimidos e por geralmente apresentarem um tamanho bem maior que os arquivos texto, iria requerer muito processamento do servidor para comprimi-los novamente, e o ganho com a compressão seria mínimo.
Por este motivo, recomenda-se ativar a compressão apenas em arquivos texto, e principalmente no “Big 3” (HTML, CSS e Javascript).
Ativando compressão com o DEFLATE
Esta é a compressão mais fácil de configurar no servidor e já vem habilitada por padrão. Utiliza menos processamento do servidor que o GZip, mas não compacta tanto como o mesmo.
1 2 3 4 5 6 7 8 9 10 11 12 |
<IfModule mod_deflate.c> # Compactar por tipo - html, text, css, xml AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml # Compactar por tipo - javascript AddOutputFilterByType DEFLATE application/x-javascript application/javascript text/javascript text/x-js text/x-javascript # Compactar por extensão AddOutputFilter DEFLATE js css htm html xml ttf eot </IfModule> |
Ativando compressão com o GZip
O GZip vem ganhando muito espaço hoje em dia na Web devido ao seu grande poder de compressão de dados, diminuindo o tempo de carregamento das páginas drasticamente, principalmente quando falamos de internet móvel (3G) no Brasil, que ainda é muito lenta e precária em vários lugares. Por apresentar um alto nível de compressão, exige mais processamento que o método de compressão DEFLATE.
1 2 3 4 5 6 7 8 9 10 |
<IfModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl|ttf|eot)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </IfModule> |
Criei a arquivo .htaccess com o código do gzip na raiz do site, porem o google pagespeed continua acusando falta de compactação. O que pode estar acontecendo?