
HTTP/2, HTTP/3 y minificación: ¿sigue valiendo la pena minificar?
HTTP/2 y HTTP/3 cambian el trayecto de los archivos, no su peso. Mediciones de tamaño, compilación y bundling muestran lo que la minificación aún aporta.
HTTP/2 cambió el trayecto de los archivos, no su peso
Una afirmación vuelve una y otra vez: desde que HTTP/2 multiplexa las peticiones, ya no haría falta minificar ni agrupar archivos. La mitad es cierta. El protocolo eliminó el coste de muchas peticiones pequeñas. No quitó ni un solo byte a un archivo JavaScript, y el navegador sigue teniendo que descargar, descodificar y compilar cada uno. Esta guía separa lo que HTTP/2 y HTTP/3 cambiaron de lo que dejaron intacto. Las cifras salen de tres pruebas del 22 de octubre de 2026 (el conjunto de datos de FastMinify, un paquete de 644 módulos y una prueba de compilación en V8). Las RFC y la documentación de los navegadores que se citan en el texto completan los hechos. Para la parte de compresión, consulta nuestra guía de GZIP y Brotli.
Lo que cambiaron los protocolos y lo que dejaron intacto
HTTP/2 (RFC 9113, junio de 2022) transporta muchas peticiones y respuestas a la vez por una sola conexión. Con HTTP/1.1, un navegador abría normalmente seis conexiones por host y ponía el resto en cola. Esa cola explica por qué los equipos concatenaban archivos, dibujaban sprites y repartían los recursos entre varios nombres de host.
Mejoras
HTTP/3 (RFC 9114, junio de 2022) conserva el modelo HTTP, pero circula sobre QUIC en lugar de TCP. Un paquete perdido solo detiene el flujo al que pertenece, mientras que con HTTP/2 detiene todas las transferencias de la conexión.
Mejoras
Los dos protocolos mueven bytes. Ninguno cambia cuántos bytes tiene un archivo y ninguno analiza tu código.
Mejoras
Usamos el banco de pruebas de minificación de FastMinify (edición 2026-10). Mide archivos sin minificar de bibliotecas públicas en bruto, con gzip nivel 9 y con brotli calidad 11. Cada cifra es una suma sobre los archivos de un lenguaje. JavaScript usa Terser 5.51.2 con su configuración por defecto, CSS usa CSSO y JSON usa JSON.stringify.
Mejoras
Descargamos lodash-es 4.18.1, que entrega 644 módulos JavaScript, minificamos cada módulo con esbuild y comprimimos con gzip nivel 9 y brotli calidad 11. Es un caso extremo, porque pocas páginas cargan 644 módulos, pero muestra el mecanismo.
Mejoras
Compilamos cinco bibliotecas con V8 (Node 26.4.0 en un Apple M4 Max), una vez tal como se entregan y otra minificadas con Terser. La prueba usa new vm.Script con una fuente que cambia en cada pasada, para evitar la caché de compilación. Cada cifra es la mediana de 30 pasadas y después la mediana de cinco series.
Mejoras
Qué conservar y qué abandonar en 2026
Estos pasos rinden con cualquier protocolo.
Cada uno tenía sentido con seis conexiones por host. Algunos ahora te cuestan algo.
Comprobar lo que tu servidor envía de verdad
Dos comprobaciones rápidas dan la respuesta, y una tercera explica por qué una primera visita suele mostrar h2.
La codificación depende de la cabecera que envía el cliente, así que prueba con la de un navegador.
Cinco errores que sobreviven al paso a HTTP/2
Pasar a HTTP/2 o HTTP/3 no es motivo para servir código legible. El protocolo no decide qué hay dentro del archivo.
Los módulos nativos y HTTP/2 permiten servir los archivos fuente tal cual. El equipo de V8 sigue recomendando agrupar para producción, y entregar sin agrupar solo aplicaciones pequeñas de menos de unos 100 módulos.
El exceso contrario es igual de habitual. Un solo bundle para todas las páginas significa que cada despliegue invalida toda la caché y que cada página descarga código que nunca ejecuta.
Varios hábitos solo tenían sentido con seis conexiones por host. Nuestra guía de Base64 detalla el sobrecoste de incrustar archivos de esta forma.
HTTP/3 mejora cómo se recupera una conexión tras perder paquetes. No reduce el tamaño de la página.
Cuatro afirmaciones sobre HTTP/2, HTTP/3 y el tamaño de los archivos
La afirmación trata un transporte más rápido como si redujera la carga útil.
Compresión y minificación se solapan, pero actúan sobre cosas distintas. La compresión elimina la repetición. La minificación elimina lo que el programa nunca necesitó.
El multiplexado levantó el límite de peticiones en paralelo, no los demás costes de un archivo.
HTTP/3 resuelve un problema de red, la pérdida de paquetes en una conexión compartida.
Minificar y medir con FastMinify
Estos minificadores funcionan en tu navegador y muestran el tamaño original y el de salida: minificador de JavaScript, minificador de CSS, minificador de JSON y minificador de HTML.
Pega o suelta el archivo
Pega el código en el panel de entrada o suelta un archivo. En JavaScript, elige el nivel de compresión (conservador, normal o agresivo).
Lee el panel Compresión
El panel muestra el tamaño original, el tamaño de salida y el porcentaje ahorrado. Son tamaños sin comprimir, así que compáralos con las cifras en bruto de este artículo, no con lo que viaja.
Revisa la opción de console
El minificador de JavaScript quita por defecto las llamadas a console y las instrucciones debugger (opciones «Eliminar console» y «Eliminar debugger»). Desactívalas si tu código depende de ellas.
Las páginas de los minificadores de JavaScript, CSS, HTML, XML, SVG y SQL tienen un botón «Concatenar archivos». Une los archivos que elijas y minifica el resultado.
Abre Concatenar archivos
Selecciona «Concatenar archivos» en la página del minificador y añade tus archivos. Arrástralos al orden en que deben ejecutarse.
Concatena y minifica
Ejecuta «Concatenar y minificar». En JavaScript, la herramienta une los archivos con un punto y coma en su propia línea, para que un archivo no se trague al siguiente, y luego minifica el conjunto. No resuelve imports: para un grafo de dependencias real, usa tu bundler (consulta minificadores en línea y herramientas de build).
Reproducir las mediciones con tus propios archivos
curl -I envía una petición HEAD, y algunos servidores responden a ella distinto que a un GET. Sustituye la URL por la de uno de tus archivos.
Ejemplo básico
Guarda el script como size.mjs. Usa gzip nivel 9 y brotli calidad 11, la configuración del banco de pruebas.
Ejemplo básico
Uso
Esto mide solo la compresión. Unir módulos ES de este modo no produce un script que funcione, así que úsalo sobre una carpeta para ver el coste de los archivos minúsculos.
Ejemplo básico
El script compila un script clásico sin ejecutarlo. new Script no acepta módulos ES con import o export.
Ejemplo básico
Sigue minificando y abandona los hábitos de HTTP/1.1
HTTP/2 y HTTP/3 hicieron baratas las peticiones pequeñas. No hicieron pequeños los archivos grandes. La minificación sigue reduciendo a la mitad el tamaño comprimido de un JavaScript sin minificar, quita unos puntos al CSS y reduce el trabajo de compilación. Lo que perdió valor es la caja de herramientas de HTTP/1.1, hecha de nombres de host multiplicados, push y bundles gigantes. Minifica, comprime con brotli, agrupa con medida y juzga el resultado por los bytes que viajan.
Minifica tus archivos en el navegador
Artículos relacionados

Convierte un epoch Unix en una fecha legible y al revés, distingue segundos de milisegundos y evita las trampas de zona horaria, JWT y cambio de hora.

Lee una expresión cron campo a campo, comprueba sus próximas ejecuciones en UTC o en hora local y evita las trampas de pasos, zonas horarias y dialectos.

Calcula red, máscara, rango de hosts y broadcast de un CIDR, resume rangos en bloques mínimos y comprueba una IP, todo en tu navegador, sin subir nada.