Compresión

Técnicas para reducir el tamaño de archivos y datos para transferirlos más rápido.

La compresión es el proceso de reducir el tamaño de un archivo o dato para que ocupe menos espacio y se transfiera más rápido por la red. Es como comprimir ropa en una bolsa al vacío para que entre más en la valija: el contenido es el mismo, pero ocupa mucho menos lugar. En la web, la compresión es una de las formas más efectivas de mejorar el rendimiento de tu aplicación.

Compresión con pérdida vs sin pérdida

Existen dos grandes familias de compresión:

  • Sin pérdida (lossless): el archivo comprimido se puede descomprimir y recuperar exactamente el original. Se usa para código, texto, y cualquier dato donde no podés perder ni un bit. Ejemplos: gzip, Brotli, ZIP.
  • Con pérdida (lossy): se descarta información que el humano difícilmente nota, logrando archivos mucho más chicos. Se usa para imágenes, audio y video. Ejemplos: JPEG, MP3, H.264.

Compresión en la web: gzip y Brotli

Cuando tu navegador pide una página web, el servidor puede comprimir la respuesta antes de enviarla. El navegador la descomprime automáticamente. Esto se negocia con headers HTTP:

# The browser tells the server which compression it accepts Accept-Encoding: gzip, deflate, br # The server responds indicating which one it used Content-Encoding: br

Brotli (br) es el estándar moderno: comprime entre un 15-25% mejor que gzip, especialmente para archivos de texto como HTML, CSS y JavaScript. La mayoría de los servidores y CDNs lo soportan.

Formatos de imagen modernos

Los formatos de imagen son donde más impacto tiene la compresión. Mirá la diferencia de peso para una misma foto:

FormatoPeso aproximadoSoporte
JPEG200 KBUniversal
PNG500 KBUniversal
WebP120 KB97% de navegadores
AVIF80 KB92% de navegadores

WebP y AVIF usan algoritmos de compresión mucho más avanzados. Si tu app muestra muchas imágenes, migrar a estos formatos puede reducir el peso de tu página a la mitad sin perder calidad visible.

Compresión de video

El video es, por lejos, el tipo de contenido más pesado. Un minuto de video sin comprimir puede pesar varios gigabytes. Los codecs (programas que comprimen y descomprimen video) como H.264, H.265 y AV1 reducen esto a apenas unos megabytes. Por eso plataformas como YouTube recodifican cada video que subís a múltiples resoluciones y codecs.

Por qué importa para el rendimiento

Pensá en un usuario con conexión 3G en el celular. Si tu página pesa 5 MB, puede tardar 15 segundos en cargar. Con compresión bien aplicada, podés bajar eso a 1.5 MB y que cargue en 4-5 segundos. Combinada con un CDN y buenas políticas de cache, la compresión es una de las optimizaciones que más impacto tiene con menos esfuerzo.