Gmail clips emails heavier than 102 KB. The rest gets hidden behind a "View entire message" button — and some readers never even click it. Let's break down exactly what bloats email size and how to fix it.

1. Heavy images

The most common cause. A banner exported from Figma without optimization can easily weigh 500 KB — that's already half of a reasonable limit for the entire email.

Images load from a server rather than being embedded in the HTML, so they don't affect the final code weight. But they do slow down the email's loading time, especially on mobile internet. An unwritten rule: banners no heavier than 150 KB, other images up to 50 KB.

What to do: save photos as JPG, not PNG. Use WebP where the client supports it. Compress with Optimizilla or TinyPNG before uploading. Export from Figma at x2 for Retina, but compress after exporting.

TinyPNG compressed a PNG by 70%: from 1 MB to 373 KB

2. GIFs and animation

GIF is the heaviest animation format. A few seconds at decent quality can easily weigh 2-4 MB. Most ESPs recommend keeping GIFs within 1-2.5 MB, otherwise the email loads slowly or doesn't open at all on a weak connection.

What to do: reduce the number of frames — 3-5 frames at 500-700 ms intervals are enough for a smooth color-change effect. Reduce the palette to 64-128 colors instead of 256. Remove unnecessary background detail. The first frame should be informative on its own — Outlook only shows that one.

In Letteros, the built-in GIF editor automatically picks the optimal compression. For more on creating animation, see our detailed 2026 GIF guide.

3. Excess HTML and CSS code

Every space, comment, and duplicated style adds bytes. An email built manually without optimization often weighs 80-90 KB from code alone — before any images are even added.

Typical sources of clutter: inline styles duplicated across multiple blocks; media queries with overlapping rules; HTML comments left in the template; empty tags and unnecessary line breaks.

What to do: run the finished email through a code minifier — it compresses the HTML into a single line and strips out everything unnecessary, saving around 20% of the size. In Letteros, minification is built in and runs automatically before export. For more on what minification is and why it matters, see the article "What Is Code Minification".

4. Too many blocks and modules

Every block is a table, cells, padding, styles. Ten modules in a single email can add 20-30 KB from markup alone, even if they only contain text.

Besides the size, an overloaded email also renders more slowly — especially in Outlook on Windows, which processes markup through the Word rendering engine.

What to do: limit the email to 5-7 meaningful blocks. One block, one job. If there's a lot of information, a series of short emails works better than one long one. For more on structuring content, see the article 6 Email Rules That Work Without a Designer.

5. Embedded fonts and third-party elements

Loading Google Fonts via <link> adds an external request — the font itself isn't part of the HTML, but it slows down loading. If the font doesn't load in time, the reader sees the fallback. It's worse when a base64 font is embedded directly in the email — that instantly adds 50-200 KB to the code weight.

Third-party scripts, iframes, and external widgets simply don't work in most email clients — but they still bloat the HTML size.

What to do: only use fonts that Apple Mail supports — other clients will show the fallback anyway. No base64 fonts in the email body. No iframes. Always have a web-safe fallback stack: font-family: 'Montserrat', Arial, Helvetica, sans-serif. For more on choosing fonts correctly, see the article Typography in Email Campaigns.

Final size guidelines

Element

Recommended limit

Email HTML code

up to 100 KB

Banner (JPG)

up to 150 KB

Other images

up to 50 KB each

GIF animation

up to 1-2.5 MB

How Letteros helps you control size

In Letteros, the code minifier runs automatically before export. The built-in GIF editor optimizes animation weight to meet email client requirements. The master template eliminates style duplication — all blocks inherit the same settings from a single source.

Before sending, you can check the email across 100+ email clients right in the interface — no switching between services required.

Read also: