Bots are silently destroying your Klaviyo deliverability.

Save My Spot β†’
Learn β€Ί Email Templates β€Ί Gmail Clipping
Part 1 of 15 Β· Email Templates

Gmail Clipping
Why Your Unsubscribe Footer Disappears

Gmail clips HTML emails over 102,005 bytes. Your unsubscribe footer β€” hidden at the bottom β€” is the first thing to disappear. When subscribers can't find your unsubscribe link, complaint rates spike. Learn how to measure template size and optimize for the threshold.

2026 Current

Gmail enforces the 102KB clipping limit at exactly 102,005 bytes. The exact threshold has been tested and confirmed by ESP vendors and email testing tools.

What is Gmail Clipping

Gmail clips (truncates) email HTML that exceeds 102,005 bytes. When an email is clipped, Gmail shows a "View entire message" link at the bottom, and subscribers must click it to see the full email in Gmail's web interface. Everything beyond the 102KB threshold is hidden by default.

How Clipping Appears to Subscribers:

Subject: Your Weekly Sales Report ...email content... [View entire message]

In most cases, subscribers don't click "View entire message." They assume the email ended normally. This is particularly problematic when critical content β€” like an unsubscribe link β€” is clipped.

Why Gmail Clips: Gmail enforces the size limit to protect against attacks that exploit large email payloads. The limit has been consistent since ~2016.

The 102,005 Byte Threshold

The clipping threshold is exactly 102,005 bytes. This is critical to understand: this byte count is measured after gzip compression (as transmitted over the wire), not the uncompressed file size on disk.

Gzipped vs. Uncompressed Size:

  • Uncompressed HTML on disk: 150KB (readable HTML file)
  • Gzipped (transmitted): 45KB (compressed for transmission)
  • Gmail measures the gzipped size; if it's over 102KB, clipping triggers
  • Your HTML editor shows uncompressed size; you must test in Gmail to measure gzipped size

How to Calculate Safe Margin: Aim for 80KB gzipped maximum to have 22KB safety margin. This accounts for dynamic content (names, numbers) that might be inserted by ESPs.

Gmail clips from the bottom up. Your unsubscribe footer β€” the last HTML element in your email β€” is the first to disappear when size exceeds the threshold. This creates a critical deliverability problem.

The Problem Sequence:

  1. Email exceeds 102KB gzipped
  2. Gmail clips content from the bottom
  3. Unsubscribe link (at footer) is removed
  4. Subscriber can't unsubscribe easily
  5. Frustrated subscriber marks email as spam instead
  6. Your spam complaint rate spikes
  7. ISPs see high complaint rate, lower your sender reputation
  8. Future emails land in spam folder or are rejected

Typical Content Order (Bottom to Top Clipping):

  • Footer (unsubscribe, address, social links) β€” FIRST to clip
  • Call-to-action buttons
  • Body content (secondary sections)
  • Body content (main content) β€” LAST to clip
  • Header (subject, preheader, logo) β€” rarely clipped

Deliverability Impact: Complaint Spikes

A clipped unsubscribe footer causes immediate, measurable harm to deliverability.

Complaint Rate Impact (Real Data):

  • Normal campaign: 0.05% complaint rate (good)
  • Campaign with clipped footer: 0.3-0.8% complaint rate (critical)
  • ISP threshold for investigation: 0.1% complaints (one per 1,000 opens)
  • Gmail/Yahoo automatic filtering kicks in at 0.3%+ sustained complaints

Why This Matters: ISPs use complaint rates as a primary spam filter signal. When complaint rates spike:

  • Gmail may auto-filter your future sends to spam folder
  • Yahoo may add your domain to a temporary blocklist
  • Outlook may flag your sender reputation as declining
  • Other ISPs follow suite, creating a cascading reputation problem

RFC 8058 Compliance: RFC 8058 (one-click unsubscribe standard) requires that unsubscribe mechanisms be visible and functional. A clipped unsubscribe footer violates this requirement and can trigger automated ISP warnings.

Real-World Scenario: A B2C retailer sends a 110KB email (gzipped) to 500,000 subscribers. Gmail clips it. 2,000 subscribers (0.4%) can't find the unsubscribe link and mark as spam instead. Complaint rate jumps from 0.06% to 0.46% β€” a 7x increase. Gmail flags the domain as problematic. Next week's campaign goes straight to spam for 40% of subscribers.

How to Measure Email Template Size

You must test in Gmail to measure the actual gzipped byte size. Uncompressed file size shown in your editor is misleading.

Method 1: Gmail Send Test (Most Accurate)

  1. Create email in your ESP with your template
  2. Send to your personal Gmail account
  3. Open email in Gmail web interface
  4. If you see "View entire message" link, it's clipped (over 102KB)
  5. No link? You're under the limit

Method 2: Online HTML Byte Counter (Quick Check)

1. Export template HTML from your editor 2. Paste into: https://www.online-convert.com/file-converter/convert-to-gzip 3. Upload HTML, it compresses and shows gzipped size 4. If under 102KB, you're safe

Method 3: CLI Compression Test (For Developers)

# Save template.html, compress it gzip -c template.html | wc -c # Output: 45678 bytes (gzipped size) # If under 102005, you're safe

Method 4: ESP Native Tools

  • Klaviyo: Email performance metrics show estimated delivered size
  • Mailchimp: Minification report shows final size
  • ActiveCampaign: Email preview includes size info
  • HubSpot: Email size displayed before send

Biggest HTML Bloat Sources

Most templates bloat from a few specific sources. Targeting these saves the most bytes.

1. Inline CSS Repetition (Often 30-40% of size)

BAD: Repeating full style on every element <table> <tr><td style="font-family:Arial,sans-serif; font-size:16px; color:#222222; line-height:1.5; padding:10px;">Text 1</td></tr> <tr><td style="font-family:Arial,sans-serif; font-size:16px; color:#222222; line-height:1.5; padding:10px;">Text 2</td></tr> <tr><td style="font-family:Arial,sans-serif; font-size:16px; color:#222222; line-height:1.5; padding:10px;">Text 3</td></tr> </table> GOOD: Use table attributes + single style <table> <tr><td style="padding:10px;">Text 1</td></tr> <tr><td style="padding:10px;">Text 2</td></tr> <tr><td style="padding:10px;">Text 3</td></tr> </table> Savings: 140 bytes (5x reduction on style attributes)

2. Whitespace & Formatting (Often 15-20% of size)

BAD: Readable but bloated HTML <table width="600" align="center"> <tr> <td height="20"></td> </tr> <tr> <td> <p>Hello subscriber</p> </td> </tr> </table> GOOD: Remove unnecessary whitespace <table width="600"><tr><td height="20"></td></tr><tr><td><p>Hello subscriber</p></td></tr></table> Savings: 80-120 bytes per table (minification)

3. HTML Comments (Often 2-5% of size)

BAD: Comments add bytes <!-- Logo section --> <table> <tr> <!-- Logo image centered --> <td><img src="logo.png"></td> </tr> </table> <!-- End logo section --> GOOD: Remove comments <table><tr><td><img src="logo.png"></td></tr></table> Savings: 100+ bytes (especially for complex templates)

4. Long Tracking URLs (Often 5-10% of size)

BAD: Full tracking URLs <a href="https://example.com/campaign/spring-sale-2026/section-1/item-special-offer?utm_source=email&utm_medium=newsletter&utm_campaign=spring_sale_2026&utm_content=hero_button&subscriber_id=12345&tracking_id=abcdef123456"> GOOD: Shortened URL with server-side expansion <a href="https://example.com/t/abc123"> Savings: 150-300 bytes per URL (multiple CTA buttons = big savings)

Size Reduction Strategies

Quick Wins (Can Save 20-30% of total size):

  • Remove all HTML comments β€” 5-10% savings
  • Delete extra whitespace/newlines β€” 10-15% savings
  • Use URL shortener for tracking links β€” 5-8% savings
  • Remove unused CSS rules β€” 2-5% savings
  • Use CSS shorthand β€” margin: 10px 20px instead of margin-top, margin-bottom, margin-left, margin-right (saves ~40%)

Medium-Effort Strategies (Can Save 30-50%):

  • Minify HTML/CSS β€” Use MJML or Stripo minifier (automatic)
  • Consolidate inline styles β€” Create reusable style snippets
  • Use table attributes instead of styles β€” width="600" instead of style="width:600px"
  • Compress images β€” Use TinyPNG or similar for embedded images
  • Remove unused elements β€” Delete spacer tables, extra divs

Advanced Strategies (Can Save 50%+):

  • Use MJML templating β€” Auto-minifies, optimizes HTML
  • Lazy-load images β€” Show placeholder, load on open (requires ESP support)
  • Truncate long content β€” Move secondary content to web-view version
  • Use AMP for Email β€” Dynamic, lightweight alternative to HTML (limited support)

ESP Auto-Minification Support

ESPs with Built-in Minification:

  • Klaviyo β€” Automatic minification; check "Minify HTML" option in sending settings
  • Mailchimp β€” Auto-minifies HTML before send
  • ActiveCampaign β€” Minification available in advanced settings
  • HubSpot β€” Auto-minification included in professional tier
  • SendGrid/Twilio β€” No auto-minification; must minify before upload
  • ConvertKit β€” Auto-minifies all emails

How to Enable Minification (Klaviyo Example):

  1. Create email in editor
  2. Go to "Settings" β†’ "Email Settings"
  3. Toggle "Enable HTML minification" ON
  4. Send β†’ Template is compressed automatically
  5. Verify Gmail doesn't show "View entire message" link

Size Reduction Checklist Before Send:

  • ☐ Ran minifier tool (MJML, Stripo, or ESP native)
  • ☐ Removed all HTML comments
  • ☐ Tested gzipped size in Gmail (under 102KB)
  • ☐ Verified unsubscribe footer is visible in Gmail preview
  • ☐ Tested in 2+ email clients (Gmail, Apple Mail, Outlook)
  • ☐ Confirmed no clipping artifacts or broken layout

Next in the Email Templates Series

Learn about email preheader text, the hidden template element that shows in inbox previews.

Email Preheader Text
Explore with AI

Open this content in your AI assistant for deeper analysis, or copy it as Markdown to paste anywhere.