Como corrigir a compressao Gzip desativada no WordPress
O que é a Gzip compression no WordPress desativada?
A compressao Gzip no WordPress e a compactacao feita pelo servidor web nos arquivos de texto (HTML, CSS, JavaScript, JSON, SVG) antes de enviar a resposta ao navegador. O navegador anuncia que aceita Gzip pelo cabeçalho de requisicao Accept-Encoding, o servidor compacta o corpo da resposta e devolve o cabeçalho Content-Encoding com o valor gzip. Como esses arquivos de texto são muito repetitivos, a reducao costuma ficar entre 60% e 80% do tamanho original, o que diminui o tempo de download e melhora o First Contentful Paint.
Como identificar
- O PageSpeed Insights mostra a oportunidade “Enable text compression” (“Ativar compactacao de texto”) com a economia estimada em KiB.
- Na aba Network do DevTools, a resposta do documento ou dos arquivos CSS e JS não traz o cabeçalho “content-encoding: gzip” (nem “br”).
- Ferramentas online de teste de Gzip, como GTmetrix ou checadores de compressao, retornam que o recurso não esta compactado.
- Os arquivos de HTML, CSS e JavaScript chegam ao navegador com o mesmo tamanho do arquivo original no servidor, sem reducao de transferencia.
Como prevenir
- Após qualquer migração de host ou reescrita do htaccess, confirme o cabeçalho Content-Encoding gzip nos arquivos de texto principais
- Mantenha o módulo de compressao (mod_deflate no Apache ou gzip on no Nginx) ativo no servidor, não so a regra no htaccess
- Se usar CDN, garanta na configuração que ele compacta ou repassa o conteúdo compactado em vez de remover o cabeçalho de codificacao
Causa
- O módulo mod_deflate não esta habilitado no Apache ou LiteSpeed, entao mesmo com a regra no htaccess o servidor não compacta nada.
- Em servidor Nginx a diretiva gzip on esta ausente ou comentada no arquivo de configuração, e o htaccess do WordPress e ignorado nesse servidor.
- As regras de compressao do htaccess foram apagadas ao reescrever o arquivo, ao migrar de host ou ao desativar o plugin de cache que as gerava.
- Um CDN ou proxy reverso na frente do site remove ou não repassa o cabeçalho Content-Encoding, fazendo o navegador receber o conteúdo descompactado.
- A extensão zlib do PHP esta desligada e o servidor compartilhado não oferece mod_deflate, sem nenhum mecanismo de compressao ativo.
Como resolver
- Confirme se o Gzip esta mesmo desligado: abra o site, va na aba Network do DevTools, clique na requisicao do documento e procure no bloco de Response Headers o cabeçalho de codificacao. Se ele não aparecer com o valor gzip, a compressao esta inativa para aquele recurso.
- Verifique se o módulo de compressao existe no servidor: em Apache, cheque se o mod_deflate esta carregado. Se você gerencia o servidor, habilite o módulo e reinicie o Apache. Em hospedagem compartilhada, peca ao suporte para confirmar o módulo ativo.
apachectl -M | grep deflate a2enmod deflate systemctl restart apache2 - Adicione as regras de Gzip no htaccess (Apache/LiteSpeed): edite o arquivo htaccess na raiz do WordPress e inclua o bloco do mod_deflate antes da seção do WordPress. Ele liga o filtro de saida e lista os tipos de arquivo de texto a compactar.
SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json image/svg+xml Header append Vary: Accept-Encoding - Em Nginx, ative a diretiva gzip: se o servidor for Nginx, o htaccess não tem efeito. Edite o arquivo de configuração do Nginx, ative a compressao, defina os tipos de arquivo e recarregue o serviço.
gzip on; gzip_types text/css application/javascript application/json image/svg+xml; nginx -t && systemctl reload nginx - Deixe o plugin de cache cuidar das regras: se preferir não editar arquivos, ative o WP Rocket: ele insere as regras de Gzip no htaccess automaticamente ao ser ativado, desde que o mod_deflate já esteja disponível no servidor.
- Meca de novo e confirme a compressao: limpe o cache, recarregue a página e cheque outra vez o cabeçalho de codificacao no DevTools. Rode o PageSpeed Insights de novo e confirme que a oportunidade de text compression saiu da lista.
# Gzip via mod_deflate (Apache/LiteSpeed) — colar no htaccess, antes do bloco do WordPress
<IfModule mod_deflate.c>
# Liga o filtro de saida por tipo de conteudo (texto)
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
AddOutputFilterByType DEFLATE application/javascript application/json
AddOutputFilterByType DEFLATE application/xml image/svg+xml font/ttf font/otf
# Navegadores antigos com cabecalho corrompido: desliga p/ esses casos
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
# Caches intermediarios servem a versao certa por Accept-Encoding
<IfModule mod_headers.c>
Header append Vary: Accept-Encoding
</IfModule>
</IfModule>














