
The Short Version
Target under 90KB
Gmail clipping is widely observed around 102KB. Leave headroom for ESP tracking, personalization, and encoding overhead.
Measure HTML source
Hosted images usually are not the clipping problem. Repeated inline styles, tables, comments, and hidden markup usually are.
Move critical content up
Put the primary CTA, legal footer, and unsubscribe link before any risky long-form sections.
What Gmail Clipping Actually Means
When Gmail clips an email, it hides the lower part of the message behind a prompt to view the entire email. The recipient can still expand it, but many people will not. For marketing and product emails, that means the lower sections may effectively disappear.
The damage is not only visual. If your unsubscribe link, compliance footer, tracking pixel, or secondary CTA sits below the clipping point, the message can become harder to use and harder to measure. A clipped email can look unfinished even when the template was technically sent correctly.
102KB vs. 128KB: Use the Stricter Number
Many teams loosely describe Gmail clipping as a 100KB, 102KB, or 128KB issue. For production work, use the conservative rule: assume Gmail may clip when the HTML source approaches 102KB, then budget lower than that.
A practical target is 90KB or less before your ESP adds tracking links, unsubscribe wrappers, analytics pixels, personalization output, and MIME encoding. This gives product and lifecycle teams a margin of safety instead of shipping right at the edge.
What Counts Toward the Limit
The clipping risk comes from the message source Gmail receives. The biggest contributors are usually HTML and CSS, not the byte size of images hosted on a CDN.
- Nested table markup and layout wrappers.
- Repeated inline CSS on every cell and text block.
- Generated builder metadata that was not removed before send.
- Long tracking URLs and repeated UTM parameters.
- Duplicated mobile and desktop sections.
- Hidden fallback content, comments, and unused attributes.
- Personalized loops that render many product or content cards.
How to Diagnose an Email Before Gmail Clips It
Do not rely on the visual height of the email. Measure the rendered HTML that will actually be sent after merge tags, dynamic sections, and ESP transformations.
# Save the final rendered HTML as email.html, then measure bytes.
wc -c email.html
# Get a rough view of repeated style bloat.
grep -o 'style="[^"]*"' email.html | sort | uniq -c | sort -nr | head
# Check whether comments or builder metadata remain.
grep -n '<!--\|data-' email.html | head -40The important word is final. Measuring a design canvas, MJML source, or pre-rendered template can understate the final size. Measure after content rendering, localization, product loops, link tracking, and ESP footer injection.
Common Sources of Email HTML Bloat
1. Duplicated mobile and desktop content
A common pattern is to build one layout for desktop and a second hidden layout for mobile. This can work visually, but it doubles content and style weight. Prefer responsive structures that adapt instead of duplicating the same section twice.
2. Repeated inline styles
Email needs inline CSS for compatibility, but generated templates often repeat long declarations on every table cell. A simple product grid can become heavy when each item repeats typography, spacing, border, and color declarations.
3. Drag-and-drop editor residue
Editors often keep metadata for selection, block identity, or design-time behavior. That metadata is useful in the editor but should not be sent to the inbox unless the renderer truly needs it.
4. Personalization that expands too far
Dynamic blocks can turn a compact template into a very large email. A loop that renders eight products, six recommendations, and a long editorial section may be valid HTML but still unsafe for Gmail.
Optimization Techniques That Usually Work
Reduce repeated markup
Simplify nested tables, remove wrapper layers that do not affect rendering, and avoid duplicating blocks for mobile.
Minify carefully
Remove comments and whitespace after rendering, but preserve email-client hacks and conditional comments that Outlook needs.
Limit dynamic loops
Cap product cards, recommendations, article lists, and repeated modules. Long personalized emails should have hard size budgets.
Shorten URLs
Tracking parameters add up quickly. Standardize campaign parameters and avoid repeating unnecessary query strings.
A Safer Template Budget
Treat email size like a product constraint. For teams that let non-technical users build templates, the editor should make the budget visible before the campaign is exported or sent.
Recommended budget bands
Under 80KB
Healthy. You have room for tracking and personalization.
80-90KB
Watch closely. Review dynamic sections and final ESP output.
90KB+
Risky. Reduce markup or move lower-priority content elsewhere.
What Not to Optimize First
Image compression is still important for load speed and user experience, but it is usually not the first fix for Gmail clipping when images are linked from a CDN. If the image is not embedded as base64, the hosted image file size is not the same as the HTML source size Gmail is evaluating.
Start with rendered HTML. Once clipping is under control, then tune image dimensions, compression, `srcset` strategy, and CDN behavior for performance.
Team Workflow for Preventing Clipped Emails
- Render the final email with realistic production data.
- Measure byte size after merge tags and dynamic sections.
- Run a warning threshold around 80KB and a hard review at 90KB.
- Preview in Gmail before sending major lifecycle campaigns.
- Keep unsubscribe and compliance content above risky sections.
- Track which blocks add the most markup and simplify them over time.
How This Relates to Responsive and Dark Mode Design
Email size, responsiveness, and dark mode are connected. Duplicated mobile sections increase clipping risk. Extra dark-mode fallback markup can add weight. Complex nested wrappers make both rendering and optimization harder.
A better approach is to build reusable blocks that are already tested for size, responsiveness, and color contrast. Then template authors can assemble emails without accidentally creating a 120KB payload.