gmaildeliverabilityclippingemail-optimization

Gmail's 102 KB clip limit, what it is, why it happens, how to fix it

Gmail truncates messages larger than 102 KB and shows a 'View entire message' link. Your tracking pixel fires after the clip. Here's what triggers it and exactly how to stay under the line.

February 20, 2026·5 min read·Draftship

If your Gmail email preview ends with "[Message clipped] View entire message", you've hit Gmail's clip limit. Gmail truncates any message whose HTML source is larger than 102 KB (approximately 102,400 bytes). The message still delivers, but everything below the cutoff, including your unsubscribe link, footer, and tracking pixel, is hidden behind a click.

This is one of the single most-ignored deliverability killers in email marketing. Let's break down exactly what it means, what causes it, and how to keep every message under the line.

Why clipping matters (more than you think)

1. Tracking pixels often sit in the footer. Most ESPs place the 1×1 open-tracking pixel at the very bottom of the HTML. When Gmail clips, the pixel never loads. Your open rates tank, not because recipients didn't open, but because the pixel never fired.

2. Unsubscribe links hide behind the "View entire message" click. CAN-SPAM and GDPR require a clearly visible unsubscribe option. Clipping doesn't violate the law (Gmail shows the link if you click through), but it buries the option and leads recipients to mark-as-spam instead, which actually does hurt deliverability.

3. Gmail uses clipping as a trust signal. Heavily clipped senders trend toward the spam folder faster than clean senders, per multiple 2024 industry reports. Gmail doesn't publicly confirm this, but ESPs see it in their own data consistently.

What pushes you over 102 KB

The biggest culprits, ranked:

  • Inlined CSS that duplicates across blocks. A 120-character inline style repeated across 200 table cells = 24 KB just in styles.
  • Base64-encoded images. Every base64 image multiplies its size by ~1.37. A 30 KB JPEG becomes a 41 KB string in your HTML. Always host images externally.
  • Long templates with many sections. 30-section newsletters easily cross 100 KB.
  • MSO/VML fallbacks for every button. VML adds ~400 bytes per button. 15 buttons = 6 KB.
  • Embedded SVG icons. Inline SVG is tempting but can easily add 20 KB across a template.
  • Unminified HTML with whitespace. Leading indentation in table layouts adds 2–5 KB across a large email.

How to measure accurately

Three ways:

1. Your ESP's export. Export the rendered HTML, open it in any code editor, and check the file size. 2. Chrome DevTools → Save the email preview as HTML. The file size is the metric that matters. 3. Use a builder with live size monitoring. Draftship's bottom bar shows rendered HTML size in real time with a red indicator when you pass 102 KB.

Don't trust the preview size in your ESP dashboard, it often excludes the tracking pixel wrapper and footer that get added at send time.

Staying under the line

Host images, don't inline them. This alone saves 20–60 KB on image-heavy campaigns. Use your ESP's built-in CDN or a service like Cloudinary.

Extract repeated styles where possible. If you're sending to audiences that heavily use Apple Mail and Gmail, a <style> block with classes for repeated patterns (e.g., .btn, .mob-stack) is smaller than 200 repeated inline styles. Test Outlook separately, it strips <style> blocks more aggressively than the other engines.

Skip MSO fallbacks for secondary CTAs. Your primary CTA needs VML. Your "read our blog" tertiary link doesn't.

Minify before sending. Most ESPs have a minify toggle. If yours doesn't, run the output through html-minifier-terser with collapseWhitespace: true.

Keep promotional emails ≤ 15 sections. Beyond that, split into two sends or use a dedicated landing page for the overflow.

When clipping is acceptable

For transactional emails (receipts, password resets, order confirmations), clipping is rarely an issue, they're short. For long-form content like digest newsletters, some clipping is inevitable and tolerated; just make sure the unsubscribe link and primary CTA live above the 102 KB line.

TL;DR

  • Gmail clips HTML > 102 KB and hides everything below behind a click.
  • Tracking pixels in the footer stop firing. Open rates look artificially low.
  • Unsubscribe links get buried, and recipients mark-as-spam instead.
  • Host images externally, extract repeated styles, minify, and measure live.
  • Put your CTA and unsubscribe above 80 KB so you stay safe even when a new section gets added.
Try it yourself

Open the editor and ship an email that doesn't break.