Config GZIP/Brotli Apache y Nginx — guía paso a paso

Config GZIP/Brotli Apache y Nginx — guía paso a paso

Activa GZIP y Brotli en Apache (mod_deflate) y Nginx (ngx_brotli). Configs listas para copiar, tipos MIME y verificación con DevTools o herramientas en línea.

28.11.2025
12 min de lectura
Compartir este artículo:
GZIP
Brotli
Apache
Nginx
Compresión
Rendimiento
Servidor
Optimización
Tutorial

¿Por qué activar la compresión servidor?

La compresión servidor es una de las optimizaciones más eficaces y más simples de poner en marcha. A diferencia de la minificación, que optimiza el código fuente, la compresión reduce el tamaño de los archivos durante su transferencia entre el servidor y el navegador. Combinada con la minificación, puede reducir el tamaño total de tus archivos un 70 a 90%, mejorando de forma drástica los tiempos de carga y la experiencia de usuario.

Reducción del 70-90% del tamaño de los archivos transferidos
Mejora de los tiempos de carga del 50-70%
Ahorros sustanciales en ancho de banda y costes de hosting
Mejor puntuación en los Core Web Vitals de Google
Experiencia de usuario optimizada, sobre todo en conexiones lentas

Impacto real de la compresión en el rendimiento

Métricas de rendimiento concretas

Datos reales de un sitio e-commerce que activó la compresión GZIP:

Before optimization

Tamaño de archivos
2.5 MB
Tiempo de carga
1.2s

After optimization

Tamaño de archivos
380 KB
Tiempo de carga
0.3s

Mejoras

Reducción del 85% del tamaño transferido (de 2,5 MB a 380 KB)
Mejora del 75% del tiempo de carga (de 1,2s a 0,3s)
Ahorros del 85% en el ancho de banda
Mejora significativa del LCP (Largest Contentful Paint)
Impacto en el SEO y los Core Web Vitals

La compresión mejora de forma directa tus métricas de rendimiento web:

LCP (Largest Contentful Paint): -40 a -60% gracias a archivos más pequeños
FID (First Input Delay): -30% gracias a menos datos que parsear
CLS (Cumulative Layout Shift): reducción de reflows
TTI (Time to Interactive): -50% de tiempo de espera

¿Qué es la compresión servidor?

Compresión vs minificación: entender la diferencia

La minificación y la compresión son dos técnicas complementarias pero distintas. La minificación elimina espacios, comentarios y optimiza el código fuente. La compresión (GZIP o Brotli) comprime después el archivo ya minificado para una ganancia adicional en la transferencia de red.

1
1. Escribir tu código JavaScript o CSS con normalidad
2
2. Minificar el código (reducción del 40-80%)
3
3. Comprimir el archivo minificado con GZIP/Brotli (reducción adicional del 60-80%)
4
4. Resultado: archivo final 5 a 10 veces más pequeño que el original
GZIP vs Brotli: ¿qué compresión elegir?

GZIP es la compresión más extendida y compatible con todos los navegadores. Brotli es más reciente y ofrece una mejor compresión (15-20% mejor que GZIP), pero requiere una configuración adicional.

GZIP

compression:60-80% de reducción
compatibility:100% de los navegadores
cpu:Bajo consumo de CPU
setup:Configuración simple

Brotli

compression:70-90% de reducción
compatibility:Todos los navegadores modernos (2016+)
cpu:Consumo de CPU ligeramente más alto
setup:Configuración más compleja

Configuración GZIP en Apache

Método 1: activación vía .htaccess (recomendado para principiantes)

El método más simple para activar GZIP en Apache es usar el archivo .htaccess. Este método funciona incluso si no tienes acceso a la configuración principal del servidor.

Crear o modificar el archivo .htaccess

# Activar la compresión GZIP <IfModule mod_deflate.c> # Comprimir HTML, CSS, JavaScript, Text, XML y fuentes AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/json AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom+xml AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/woff AddOutputFilterByType DEFLATE font/woff2 # No comprimir las imágenes ya comprimidas SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|webp)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary </IfModule>

Comprobar que el módulo mod_deflate está activado

# Para comprobar, ejecuta este comando en tu servidor: apache2ctl -M | grep deflate # Si el módulo no aparece, actívalo con: sudo a2enmod deflate sudo systemctl restart apache2
Método 2: configuración en httpd.conf (para usuarios avanzados)

Para una configuración más global y eficiente, configura GZIP directamente en el archivo de configuración principal de Apache.

Configuración

# En /etc/apache2/apache2.conf o /etc/httpd/httpd.conf # Activar el módulo deflate LoadModule deflate_module modules/mod_deflate.so # Configuración de la compresión <IfModule mod_deflate.c> # Nivel de compresión (1-9, 6 es un buen compromiso) DeflateCompressionLevel 6 # Tipos MIME a comprimir AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css AddOutputFilterByType DEFLATE text/javascript application/javascript AddOutputFilterByType DEFLATE application/json application/xml AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE font/ttf font/otf font/woff font/woff2 # Excluir los archivos ya comprimidos SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|webp|ico|gz|zip|bz2|rar)$ no-gzip # Excluir los archivos demasiado pequeños (menos de 1 KB) DeflateFilterByType text/html text/plain text/xml text/css text/javascript application/javascript </IfModule>

Configuración Brotli en Apache

Instalación del módulo mod_brotli

Brotli requiere la instalación de un módulo adicional. Cómo instalarlo según tu sistema.

Instalación en Ubuntu/Debian

# Instalar las dependencias sudo apt-get update sudo apt-get install -y libbrotli-dev # Instalar mod_brotli desde las fuentes # Descargar desde: https://github.com/kjdev/apache-mod-brotli # O usar el PPA si está disponible

Activación del módulo

# Activar el módulo sudo a2enmod brotli sudo systemctl restart apache2
Configuración Brotli en .htaccess

Una vez instalado el módulo, configura Brotli en tu .htaccess con prioridad sobre GZIP.

Configuración

# Configuración Brotli (prioridad sobre GZIP) <IfModule mod_brotli.c> # Nivel de compresión (1-11, 6 es el recomendado) BrotliCompressionLevel 6 # Tipos MIME a comprimir AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css AddOutputFilterByType BROTLI_COMPRESS text/javascript application/javascript AddOutputFilterByType BROTLI_COMPRESS application/json application/xml AddOutputFilterByType BROTLI_COMPRESS application/xhtml+xml application/rss+xml AddOutputFilterByType BROTLI_COMPRESS image/svg+xml AddOutputFilterByType BROTLI_COMPRESS font/ttf font/otf font/woff font/woff2 # Excluir los archivos ya comprimidos SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|webp|ico|gz|zip|bz2|rar)$ no-brotli </IfModule> # Configuración GZIP en fallback <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/json </IfModule>

Configuración GZIP en Nginx

Configuración de base en nginx.conf

Nginx incluye el soporte GZIP por defecto. Basta con activarlo en tu configuración.

Configuración

# En /etc/nginx/nginx.conf (configuración global) # O en el archivo de sitio específico # Activar la compresión GZIP gzip on; gzip_vary on; gzip_proxied any; # Nivel de compresión (1-9, 6 es el recomendado) gzip_comp_level 6; # Tipos MIME a comprimir gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss application/atom+xml image/svg+xml font/ttf font/otf font/woff font/woff2; # Tamaño mínimo de los archivos a comprimir (1 KB) gzip_min_length 1000; # No comprimir los archivos ya comprimidos gzip_disable "msie6";
Configuración óptima para producción

Configuración avanzada para maximizar el rendimiento en producción.

Configuración

# Configuración óptima GZIP para Nginx gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss application/atom+xml image/svg+xml font/ttf font/otf font/woff font/woff2; gzip_min_length 1000; gzip_disable "msie6"; # Caché de los archivos comprimidos gzip_static on;

Configuración Brotli en Nginx

Instalación del módulo ngx_brotli

Nginx requiere la instalación del módulo ngx_brotli. Cómo proceder.

Instalación desde las fuentes

# Instalar las dependencias sudo apt-get update sudo apt-get install -y libbrotli-dev # Descargar ngx_brotli cd /tmp git clone https://github.com/google/ngx_brotli.git cd ngx_brotli git submodule update --init # Recompilar Nginx con el módulo (requiere las fuentes de Nginx) # Consulta la documentación oficial para los detalles completos

Instalación vía paquete (si está disponible)

# En algunas distribuciones, ngx_brotli está disponible vía paquete # Comprueba con tu gestor de paquetes
Configuración Brotli en nginx.conf

Una vez instalado el módulo, configura Brotli con GZIP en fallback.

Configuración

# Configuración Brotli (prioridad sobre GZIP) brotli on; brotli_comp_level 6; brotli_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss application/atom+xml image/svg+xml font/ttf font/otf font/woff font/woff2; brotli_min_length 1000; # Configuración GZIP en fallback gzip on; gzip_vary on; gzip_comp_level 6; gzip_types text/plain text/css text/javascript application/javascript application/json; gzip_min_length 1000;

Comprobar que la compresión funciona

Usar una herramienta en línea de verificación

La forma más simple de comprobar si la compresión GZIP o Brotli está activa en tu sitio es usar una herramienta en línea especializada.

GiftOfSpeed Gzip/Brotli Test

Herramienta gratuita y simple para comprobar la compresión GZIP y Brotli de tu sitio web

https://www.giftofspeed.com/gzip-test/
Funciones:
  • Verificación instantánea de la compresión GZIP
  • Detección de la compresión Brotli
  • Visualización del tamaño original vs comprimido
  • Porcentaje de reducción mostrado
  • Test sobre varios recursos (HTML, CSS, JS)
Cómo usar:
1
1. Visita https://www.giftofspeed.com/gzip-test/
2
2. Introduce la URL de tu sitio web
3
3. Haz clic en 'Test webpage'
4
4. Consulta los resultados: verás si GZIP/Brotli está activo y el porcentaje de reducción
Verificación manual con las DevTools del navegador

También puedes comprobar la compresión directamente en las herramientas de desarrollo de tu navegador.

Abrir las DevTools

Pulsa F12 o Cmd+Option+I (Mac) / Ctrl+Shift+I (Windows/Linux)

Pestaña Network

Ve a la pestaña 'Network' y recarga la página

Comprobar los encabezados

Haz clic en un recurso (HTML, CSS, JS) y mira la pestaña 'Headers'. Deberías ver 'Content-Encoding: gzip' o 'Content-Encoding: br' (Brotli)

Ejemplo

# Ejemplo de encabezado de respuesta con compresión GZIP HTTP/1.1 200 OK Content-Type: text/css Content-Encoding: gzip Content-Length: 15234 # Ejemplo de encabezado de respuesta con compresión Brotli HTTP/1.1 200 OK Content-Type: text/css Content-Encoding: br Content-Length: 12345

Buenas prácticas y recomendaciones

¿Qué archivos comprimir?

Comprime los archivos de texto, pero evita comprimir los archivos ya comprimidos.

Comprimir:

HTML, CSS, JavaScript
JSON, XML, SVG
Fuentes (TTF, OTF, WOFF, WOFF2)
Archivos de texto (TXT, CSV)

No comprimir:

Imágenes ya comprimidas (JPEG, PNG, GIF, WebP)
Archivos binarios (PDF, ZIP, EXE)
Archivos de vídeo y audio
Archivos ya comprimidos (.gz, .bz2)
Niveles de compresión óptimos

Encuentra el equilibrio adecuado entre tamaño y consumo de CPU.

GZIP nivel 6: buen compromiso para la mayoría de sitios
Brotli nivel 6: óptimo para Brotli (mejor compresión que GZIP nivel 6)
Evita el nivel 9: ganancia marginal para un consumo de CPU importante
Nivel 1-3: para servidores con pocos recursos de CPU
Tamaño mínimo de los archivos

No comprimas los archivos muy pequeños, la ganancia es negligible.

Caché y compresión

Combina compresión y caché para un rendimiento óptimo.

Sirve archivos precomprimidos (.gz, .br) cuando sea posible
Configura encabezados Cache-Control apropiados
Usa ETags para la validación de caché
Activa la caché de archivos comprimidos en Nginx (gzip_static)

Resolución de problemas habituales

La compresión no funciona

Si la compresión no parece activa, comprueba estos puntos:

Comprueba que el módulo mod_deflate (Apache) o gzip (Nginx) está bien activado
Comprueba los logs de error del servidor en busca de mensajes de error
Asegúrate de que los tipos MIME están configurados correctamente
Comprueba que el navegador envía el encabezado 'Accept-Encoding: gzip, br'
Prueba con una herramienta en línea como GiftOfSpeed Gzip/Brotli Test
Errores de configuración Apache

Problemas habituales con Apache y sus soluciones.

Errores y soluciones

# Error: 'mod_deflate' not found # Solución: activa el módulo sudo a2enmod deflate sudo systemctl restart apache2 # Error: Syntax error en .htaccess # Solución: comprueba la sintaxis, cada línea debe ser correcta
Errores de configuración Nginx

Problemas habituales con Nginx y sus soluciones.

Errores y soluciones

# Error: 'unknown directive "gzip"' # Solución: comprueba que no hay un error de tipeo # gzip debe escribirse exactamente así # Error: Configuration test failed # Solución: prueba con sudo nginx -t para ver los errores exactos

Conclusión

Activar la compresión GZIP y Brotli en tus servidores Apache o Nginx es una optimización esencial que puede reducir de forma drástica el tamaño de tus archivos transferidos. Combinada con la minificación de tu código JavaScript y CSS, la compresión puede mejorar de forma significativa el rendimiento de tu sitio web, reducir tus costes de ancho de banda y mejorar tu posicionamiento Google gracias a mejores Core Web Vitals.

¿Listo para optimizar tus archivos?

Activa GZIP en prioridad (compatible con todos los navegadores)
Añade Brotli si es posible para una compresión aún mejor
Configura un tamaño mínimo de 1 KB para evitar comprimir los archivos pequeños
Prueba con regularidad con GiftOfSpeed Gzip/Brotli Test para comprobar que todo funciona
Combina compresión y minificación para resultados óptimos
Supervisa el impacto en tus Core Web Vitals en Google Search Console
Compartir este artículo
Compartir este artículo: