Inicio / Guías / Peso del email: minificación HTML, imágenes y evitar el clipping de Gmail

Optimizar el peso del email: HTML, imágenes y clipping de Gmail

4,8 · 45 valoraciones
· Actualizado el 29 de abril de 2026

Cómo reducir el peso de un email HTML para evitar el clipping de Gmail (102KB), minificar HTML, comprimir imágenes y mejorar tiempos de render en clientes.

Peso del email: minificación HTML, imágenes y evitar el clipping de Gmail

El peso del email tiene impacto directo en deliverability, render y experiencia del usuario. Gmail recorta cualquier mensaje cuyo HTML supere aproximadamente 102KB, lo que rompe píxeles de tracking y CTAs por debajo del corte. Outlook desktop tarda más en abrir mensajes pesados. Y los clientes móviles en redes lentas pierden interés si las imágenes tardan en cargar. Reducir el peso es una de las optimizaciones con mejor relación coste-beneficio en email.

Las tres dimensiones del peso

Cuando hablamos de “peso del email” nos referimos a tres cosas distintas que conviene medir por separado.

Peso del HTML

Es lo que mide Gmail para decidir si aplicar clipping. Incluye:

  • El HTML escrito por ti.
  • Los estilos CSS embebidos.
  • Las variables sustituidas (nombres, productos, links de tracking).
  • El código que el ESP añade automáticamente (píxeles, wrappers, footer legal).
  • Headers y MIME envueltos.

Sin imágenes ni adjuntos. Solo el texto del cuerpo.

Peso de las imágenes

Las imágenes externas referenciadas por URL no cuentan para el clipping de Gmail, pero sí para el tiempo de render y para el peso total que el cliente descarga. Si abusas, el usuario en 4G puede tardar segundos antes de ver tu CTA.

Peso total del email

La suma de HTML + imágenes + adjuntos. Idealmente < 600KB para emails marketing, < 1MB en casos especiales. Pasarse de 1MB es señal de que conviene rediseñar.

El problema de Gmail clipping

Qué hace Gmail

Cuando el HTML supera ~102KB, Gmail muestra el contenido truncado y un enlace “View entire message” que abre la versión completa en una pestaña aparte. Las consecuencias prácticas:

  • El píxel de tracking, que suele ir al final, no se carga: aperturas no se cuentan.
  • CTAs por debajo del corte requieren un clic extra para verse.
  • El List-Unsubscribe en cabeceras sigue funcionando, pero el del cuerpo se pierde.
  • Da impresión de “email roto”.

Por qué se llega a 102KB

Casos típicos:

  • Plantilla con CSS inline en cada celda (el inline duplica reglas en docenas de elementos).
  • Imágenes embebidas en base64 dentro del <img>.
  • Frameworks completos (Bootstrap, etc.) sin purgar.
  • Comentarios y código no usado.
  • Variables muy largas (URLs de tracking de 200-300 caracteres por enlace, multiplicadas por todos los enlaces).
  • Dynamic content para cada destinatario que multiplica el contenido base.

Cómo medir

$ wc -c email.html
   95342 email.html

O con node:

$ node -e "console.log(require('fs').statSync('email.html').size)"
95342

Hazlo con la versión final, tras renderizar variables y aplicar todos los wrappers del ESP. Algunos ESP permiten descargar el HTML enviado a un destinatario concreto: usa eso para medir lo que de verdad llega.

Minificación del HTML

Qué se puede minificar

  • Espacios en blanco superfluos entre etiquetas.
  • Indentación.
  • Comentarios HTML que no sean condicionales de Outlook.
  • Atributos vacíos (alt="" no, ese sí se queda).
  • Comillas redundantes en algunos atributos (con cuidado).

Qué NO tocar

  • Conditional comments <!--[if mso]> y similares: son críticos para Outlook.
  • Inline styles necesarios en cada celda.
  • Espacios dentro de <pre> o atributos.
  • Texto del usuario.

Herramientas

  • html-minifier-terser con --conservative-collapse y preservando conditional comments.
  • mjml-cli si maquetaste con MJML (genera HTML ya razonablemente compacto).
  • Plugins de Webpack/Vite si el email se compila desde un build.

Configuración tipo de html-minifier-terser:

{
  "collapseWhitespace": true,
  "removeComments": false,
  "ignoreCustomComments": [
    "^\\[if\\s",
    "<!\\[endif\\]"
  ],
  "minifyCSS": true,
  "removeEmptyAttributes": false,
  "preserveLineBreaks": false
}

removeComments: false y ignoreCustomComments son clave: borrar los conditional rompería Outlook.

Limpieza de CSS

Un email rara vez usa todo el CSS que tiene. Estilos copiados de plantillas previas, clases que se usaron en una versión anterior y reglas duplicadas suman KB innecesarios.

Cómo identificar lo no usado

  • Tools como purgecss adaptadas a HTML estático.
  • Auditoría manual rápida: para cada clase, buscarla en el HTML.
  • Analizar el <style> y eliminar reglas que no se aplican a ningún elemento.

Cuidado con el dynamic content: si hay reglas que solo se usan en variantes condicionales del email, no las elimines.

Inline styles vs head styles

El balance entre inline (cada estilo en cada elemento) y head (un solo bloque <style>) afecta al peso:

  • Inline duplica los mismos estilos en muchos elementos.
  • Head es más compacto, pero algunos clientes no lo respetan.

Una práctica eficiente: declarar la mayoría de estilos en <head> y aplicar inline solo lo crítico (color de texto en celdas que Gmail saneará). Esto mantiene la compatibilidad y reduce el peso.

Compresión de imágenes

Formatos

  • JPEG con compresión 75-85 para fotografías.
  • PNG con paleta optimizada para gráficos con transparencia.
  • WebP si el cliente lo soporta (Apple Mail, Gmail web sí; Outlook desktop no).
  • GIF solo si necesitas animación (y considera si vale la pena, son pesados).

Herramientas

  • mozjpeg o imagemin con plugins.
  • optipng o pngquant para PNG.
  • cwebp para WebP.
  • ImageOptim en Mac, Squoosh en navegador.

Una imagen de cabecera de 800px de ancho en JPEG calidad 80 debería pesar entre 60 y 120KB. Si pesa 400KB, hay que comprimirla.

Tamaño correcto

Las imágenes deben servirse al tamaño que se van a ver, no al doble por “calidad”. El cliente de email no va a hacer zoom: lo que se ve es lo que pesa.

  • Cabecera principal: 600-1200px de ancho según display.
  • Producto en grilla: 300-600px.
  • Iconos sociales: 24-48px.

Evita servir imágenes de 2000px y dejar que el cliente las escale: pesan mucho más sin aportar.

Servir desde CDN

Imágenes en CDN se cargan en paralelo, se cachean y soportan compresión Brotli/gzip. El correo no se beneficia de la cache entre usuarios distintos, pero sí de la cercanía geográfica del CDN al destinatario.

Evita totalmente imágenes en base64 dentro del HTML: cuentan para el peso del HTML y se cuentan para el clipping.

Optimizar el ratio texto/HTML

Los filtros antispam analizan el contenido. Un email con 3 líneas de texto y 90KB de markup levanta sospechas. Buscar:

  • Al menos un 40-50 % del peso del HTML correspondiendo a contenido textual.
  • Estructura HTML proporcional al contenido. Una landing extensa justifica más markup que un envío con dos frases.
  • Evitar bloques decorativos masivos sin texto.

Si tu email es muy “imagen-pesado” con poco texto, suma copia visible que aporte valor. Mejora deliverability y accesibilidad.

Optimización en envíos masivos

Variables y dynamic content

Cada destinatario recibe una versión “renderizada” del email. Si tu plantilla tiene 60KB y por destinatario añades 5-10KB de personalización (productos recomendados, nombre, links de tracking únicos), llegas a 70KB. Suma el wrapper del ESP y puedes acercarte al límite.

Optimiza:

  • Acortadores de URL sensatos (no acumular parámetros UTM duplicados).
  • Personalización proporcional: si el email “personalizado” tiene 50 productos por destinatario, repensar.
  • Dynamic content que se renderiza en servidor, no condicionales en el HTML que se envían siempre.

Precompiled vs runtime

Algunos ESP precompilan el HTML por destinatario y reducen wrappers. Otros aplican wrappers genéricos. Si el ESP añade mucho footer técnico (links de baja, branding, tracking), parte del presupuesto KB se va ahí.

Validación tras minificar

Tras la minificación, revisa el render en al menos:

  • Outlook desktop Windows (los conditional comments deben seguir funcionando).
  • Gmail web (HTML interno aplicado correctamente).
  • Apple Mail iOS y macOS (CSS moderno respetado).
  • Yahoo y Outlook.com web.

Más detalle de qué revisar en cada cliente en la guía de compatibilidad cross-client.

Errores frecuentes

Pasar el límite por personalización extrema

El HTML “fuente” mide 80KB, pero la personalización por destinatario lo lleva a 110KB. Mide siempre la versión final.

Eliminar conditional comments al minificar

El minificador agresivo borra <!--[if mso]>. Outlook desktop deja de mostrar lo que dependía de eso. Configura siempre el minificador para preservarlos.

Imágenes en base64

Aunque parecen prácticas para “auto-contenidos”, inflan el HTML y son la causa más común de clipping en emails con muchas imágenes pequeñas.

Frameworks sin purgar

Cargar Bootstrap completo en el <style> añade 100KB de reglas no usadas. Para email, mejor escribir el CSS necesario o usar herramientas específicas.

No medir tras render

Algunos equipos miden el HTML “fuente” antes de variables. La versión real es siempre mayor.

Sustituir HTML denso por imágenes

Tentación: meter todo en una imagen grande y reducir HTML. Resultado: imagen pesada, mal alt text, render variable y filtros antispam más estrictos.

El presupuesto razonable

Como guía:

  • HTML final tras render: < 90KB. Mejor si te quedas en 60-70KB.
  • Imágenes total: < 500KB para marketing visual; < 100KB para transaccional sobrio.
  • Total del email: idealmente < 600KB.

Si tu plantilla original viene de un editor visual del ESP, comprueba el resultado. Algunos editores generan HTML extremadamente verboso (60-80 % de overhead vs equivalente escrito a mano).

La pregunta clave

Antes de optimizar al milímetro, pregúntate qué quieres conseguir. Para emails transaccionales (recibos, OTPs), 30KB sobra. Para newsletters editoriales con muchas piezas, 70-80KB es razonable. Para campañas masivas con personalización, controla el peso total tras renderizar.

La optimización del peso es un proceso continuo: cada cambio en la plantilla, cada nuevo bloque, cada actualización del wrapper del ESP puede mover el contador. Incluir una medición en el flujo de QA evita que el clipping aparezca tras un envío real, cuando ya no hay forma de corregir.

Recursos relacionados

Si quieres profundizar, prueba estas herramientas gratuitas: Domain Health, mail tester, validador SPF y validador DMARC.

¿Necesitas que alguien lleve tu canal de email entero? Abalola Mail es la agencia de email marketing para ecommerce de Abalola para ecommerce: estrategia, producción y operación del stack sobre Klaviyo, Mailchimp o Brevo.

Preguntas frecuentes

¿Cuál es el límite exacto de Gmail para clipping?
Gmail anuncia 102KB para el HTML, aunque algunos análisis sitúan el corte entre 100 y 110KB en función de codificación y headers. La práctica segura es mantener el HTML por debajo de 90KB.
¿El peso de las imágenes cuenta para el clipping?
No. El clipping mide el HTML, no las imágenes externas referenciadas. Pero las imágenes incrustadas en base64 sí cuentan. Por eso conviene servir imágenes desde CDN, no embebidas.
¿La minificación de HTML rompe la compatibilidad con Outlook?
No si se hace bien. Hay que respetar los conditional comments (`<!--[if mso]>`) que algunos minificadores eliminan. Configura el minificador para preservar comentarios condicionales.
¿Cuánto deben pesar las imágenes en un email?
Como referencia: cabecera principal < 100KB, imágenes secundarias < 50KB cada una, total del email (HTML+imágenes) idealmente < 600KB. Por encima, hay clientes que aplican lazy loading o usuarios en redes lentas que abandonan.
¿Qué ratio texto/HTML buscan los filtros antispam?
No hay un ratio mágico, pero un email con muy poco texto y mucho HTML decorativo levanta sospechas. Un equilibrio razonable es al menos un 40-50 % del peso del HTML correspondiendo a contenido textual real, no a markup.