Minificar HTML
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. Este endpoint compacta el marcado hasta lo que el navegador realmente necesita, sin tocar cómo se ve la página.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta 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.
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.
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.
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.
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.
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
¿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.
¿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.
¿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.
¿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.
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, y pronto desde nuestra app, el email y Telegram.
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 '{"input":"…"}'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({
"input": "…"
})
});
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={
"input": "…"
},
)
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" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
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
{
"input": "…"
}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. |