Minificar HTML
Aligere una página antes de servirla: se van los comentarios y los espacios y saltos de línea entre etiquetas, así que el bloque sangrado del ejemplo vuelve en una sola línea, sin su comentario y con Hola intacto. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- HTML minimizado
- <div> <!-- comentario --> <p> Hola </p> </div>
- HTML minimizado
- <div><p> Hola </p></div>
Cada espacio de más, salto de línea y comentario olvidado en un archivo HTML servido es un byte que el navegador tiene que descargar antes de poder mostrar algo.
Qué quita la minificación y qué deja en paz
Las plantillas y los generadores de sitios suelen producir un HTML pensado para la persona que lee el código, no para el navegador que lo descarga: sangrías anidadas, líneas en blanco entre bloques y comentarios que solo importaban mientras se construía la página. Nada de eso cambia lo que aparece en pantalla, pero cada byte viaja en cada carga. Esta herramienta elimina los comentarios y los espacios y saltos de línea situados entre etiquetas, y recorta el principio y el final del documento. El texto de cada elemento no se toca: en el ejemplo, un bloque con un comentario y un párrafo sangrado vuelve en una sola línea, sin el comentario y con el párrafo intacto.
Dónde ayuda y qué espacios conviene revisar
Encaja al final de la construcción de un sitio, antes de publicar desde un gestor de contenidos o al compactar plantillas de correo para que los mensajes pesen menos, y los editores pueden conservar su código legible mientras los visitantes reciben la versión compacta. La ganancia se nota sobre todo en conexiones móviles. Una precaución: algunos espacios sí importan. Dentro de un bloque preformateado, en un cuadro de texto o entre dos elementos en línea, como dos enlaces seguidos, quitar un espacio puede juntar dos palabras a la vista. Guarde el original legible como fuente y revise esos puntos una vez después de minificar.
Minificar sin romper la página
Lo difícil de minificar HTML no es quitar espacios entre etiquetas, sino saber dónde ese espacio en blanco es significativo, como dentro de un bloque pre, un textarea, o entre elementos en línea donde quitar un espacio fusionaría visualmente dos palabras. El HTML arrastra esta ambigüedad desde sus primeros días como lenguaje de marcado tolerante con los espacios, y un minificador que no la respeta produce páginas que se ven bien en una revisión rápida y se ven mal de forma sutil en producción.
Este está construido para preservar el render exacto, no solo para achicar el archivo.
Qué puede hacer con ella
Paso de build de un generador de sitios estáticos
Un generador de sitios estáticos minifica cada página HTML durante el build, entregando archivos más pequeños a los visitantes sin cambiar cómo se ve ninguna página.
Compactación de plantillas de correo
Un sistema de correos transaccionales minifica las plantillas HTML de correo para reducir el tamaño del mensaje manteniendo el diseño renderizado idéntico entre distintos clientes de correo.
Pipeline de publicación de un gestor de contenidos
Un gestor de contenidos minifica el HTML al publicar, para que los editores conserven plantillas fuente legibles mientras los visitantes reciben páginas compactas y de carga rápida.
Preguntas frecuentes
¿Minificar rompe cómo se muestra mi página?
No, está construido para preservar el espacio en blanco significativo dentro de elementos como pre y textarea, así que el render se mantiene idéntico mientras baja el tamaño del archivo.
¿Elimina los comentarios de HTML?
Sí, los comentarios estándar se eliminan por defecto, ya que no aportan ningún significado a la página renderizada.
¿Cuánto se reduce el tamaño del archivo?
Depende por completo de cuánto espacio en blanco, indentación y comentarios tenga el marcado de origen; las plantillas muy formateadas se reducen más que un HTML ya compacto.
¿Se guarda mi HTML de origen después de minificarlo?
No, tanto el HTML enviado como el minificado se eliminan después del período de retención y nunca se usan para entrenamiento.
¿Se modifica el texto que hay dentro de mis párrafos?
No. Solo se eliminan los comentarios y los espacios y saltos de línea entre etiquetas. El texto de cada elemento queda exactamente como lo escribió: en el ejemplo, el párrafo sigue conteniendo Hola con los mismos espacios alrededor.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/data/html-minify \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"html":"<p> a </p> <p>b</p>"}'const res = await fetch("https://api.kit.forhosting.com/data/html-minify", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"html": "<p> a </p> <p>b</p>"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/html-minify",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"html": "<p> a </p> <p>b</p>"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/html-minify", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"html":"<p> a </p> <p>b</p>"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"html":"<p> a </p> <p>b</p>"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/html-minify", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"html": "<p> a </p> <p>b</p>"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.html_minify",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Este endpoint compacta el marcado hasta lo que el navegador realmente necesita, sin tocar cómo se ve la página.
Bytes que nunca se justifican
Los motores de plantillas y los frameworks por componentes suelen generar HTML formateado para que lo lea un desarrollador, no para que lo descargue un navegador por la red: indentación anidada, líneas en blanco entre bloques, comentarios que explican una condición que solo importa en tiempo de build. Nada de eso cambia lo que se muestra en pantalla, y todo suma en cada carga de página, cada despliegue con caché invalidada, cada visita de un rastreador. data.html_minify elimina exactamente los bytes que no afectan el resultado, dejando el documento semánticamente idéntico.
Cómo funciona la solicitud
Envíe POST a /data/html-minify con el código HTML de origen, y recibirá un task_id de inmediato mientras la minificación corre en segundo plano. El marcado compactado, con los espacios en blanco colapsados, los comentarios eliminados y las comillas de atributos redundantes recortadas donde es seguro hacerlo, llega mediante una llamada de webhook firmada o queda disponible en un enlace firmado válido por 24 horas.
Dónde rinde la minificación en un pipeline
Un generador de sitios estáticos, un framework de renderizado en servidor o un pipeline de publicación de un gestor de contenidos que minifica su salida HTML en el momento del build o del despliegue entrega desde ese momento un archivo más pequeño a cada visitante, algo que importa especialmente en conexiones móviles y en páginas servidas a una audiencia global con ancho de banda desigual. Como la tarea se cobra por solicitud y nunca se cobra si falla, encaja limpiamente en un paso de despliegue: minificar cada página generada una vez durante el build, guardar el resultado en caché, y cada visitante posterior descarga la versión más liviana sin que el pipeline necesite mantener su propia dependencia de minificación empaquetada.
Casos de integración
Salida de una aplicación renderizada en servidor
Una aplicación web renderizada en servidor minifica su respuesta HTML antes de enviarla, recortando el tamaño del payload en cada solicitud sin agregar una dependencia en tiempo de ejecución.
Preguntas técnicas
¿Cómo minifico HTML con la API?
Envíe su HTML por POST a /data/html-minify, guarde el task_id devuelto y reciba el marcado minificado por webhook o mediante un enlace firmado válido por 24 horas.
¿Es gratis la API para minificar HTML?
No, no hay plan gratuito ni prueba; cuesta $0.002 por solicitud, y una solicitud fallida nunca se cobra.
¿Puedo minificar muchas páginas por lote?
Sí, envíe una tarea asíncrona por página y reciba cada resultado por webhook, algo que encaja bien en un paso de build de un sitio estático.
¿Ya está disponible este endpoint?
Sí, data.html_minify está en producción y acepta solicitudes ahora mismo.