Why Gmail Clips Emails at 102KB (and How to Fix It)
Few things in email development are as frustrating as opening a carefully designed newsletter in Gmail only to find your footer missing, replaced by the message: “[Message clipped] View entire message”. Here is why Gmail truncates messages at exactly 102KB, what breaks, and how to keep your emails intact.
Gmail clips any email whose raw HTML body text exceeds 102,400 bytes (102.4 KB). External images hosted on CDNs do not count, but inline CSS, base64 data URIs, HTML comments, and formatting whitespace do. When clipped, Gmail breaks layouts and drops the 1x1 tracking pixel at the footer, causing open rates to drop by up to 80%.
What triggers Gmail clipping?
Gmail clipping occurs whenever the raw HTML code of an email message exceeds 102,400 bytes (exactly 100 KiB / 102.4 KB). When this threshold is crossed, Gmail stops rendering the DOM tree at that exact byte offset and inserts a truncation link prompting the reader to view the full message in a separate window.
Crucially, Gmail measures this cutoff purely on the text payload of the HTML document itself. External assets like images, web fonts, or hosted assets loaded via HTTP URLs do not count toward the 102,400-byte cap. However, inline CSS declarations, HTML comments, embedded SVG strings, and base64 data URIs count directly toward the byte weight.
This is often confused with Google Workspace's 25MB total email transmission limit. While Gmail will happily transmit an email with attachments up to 25MB, its web and mobile rendering engine applies an independent 102KB display limit to the body text.
Why clipping damages email performance
Clipping is not just an aesthetic defect. It silently breaks tracking, deliverability, and legal compliance:
- Open-rate tracking pixel loss (up to 80% distortion). Most ESPs (Klaviyo, Mailchimp, Customer.io, Resend) place a 1x1 transparent tracking GIF at the very end of the message HTML. When Gmail clips the email, that image tag is never fetched unless the recipient clicks through, causing your analytics to report false non-opens and distorting your email deliverability metrics.
- Mandatory footer and unsubscribe links cut off. CAN-SPAM and GDPR require clear unsubscribe links and sender physical addresses. When Gmail cuts the footer, recipients cannot find the unsubscribe button and hit “Report Spam” instead, directly harming your domain reputation.
- Unclosed HTML tags distorting layouts. Because Gmail chops the byte stream mid-document, closing tags like
</table>,</td>, or</div>are frequently missing, causing unexpected rendering glitches across Gmail's interface and compounding issues in strict table-based engines like Outlook.
What counts toward the 102KB limit (and what doesn't)
| Asset Type | Counts Toward 102KB? | Impact & Recommended Action |
|---|---|---|
| Hosted Images (CDN URLs) | No | Only the URL text length counts (~50-80 bytes). Always host images externally. |
| Base64 Images / Data URIs | Yes (100%) | Avoid entirely. A single 20KB icon turns into >27KB of raw HTML text. |
| Inline CSS Declarations | Yes | Repetitive inline styles add 15-30KB quickly. Follow our CSS inlining guide to optimize. |
| Whitespace & Comments | Yes | Strip during build with a minifier. Saves 40-60% of total payload without visual changes. |
| Forwarded Thread Chains | Yes (Multiplied) | Duplicated email thread headers easily push small templates over the cutoff. |
This is why many developers are surprised when their email is clipped even though “it only has 2 images.” It is never about image file sizes, it is strictly about the character count of the HTML markup itself.
How to fix it without cutting content
You rarely need to delete copy or remove sections to beat the 102KB limit. Here are the four most effective structural fixes:
- Minify your compiled HTML. Stripping unnecessary whitespace, tabs, and build-tool comments reliably yields a 40% to 60% byte reduction without modifying rendered output.
- Replace inline SVGs with hosted PNGs. Complex SVG coordinate paths consume thousands of bytes. Convert icons and decorative graphics to optimized hosted PNG or WebP assets.
- Move the tracking pixel above the footer. If your ESP permits custom tracking placement, placing the 1x1 pixel earlier in the body ensures open rates record even if a long message is clipped.
- Verify payload size before sending. Always measure the raw UTF-8 byte length of your final compiled HTML in your build step or CI check.
Automating minification
If you are using MJML, React Email, or Maizzle, add a post-compilation minification step to your export pipeline:
// Example: Automated HTML minification in your build pipeline
import { minify } from 'html-minifier-terser';
export async function optimizeEmailHtml(rawHtml: string): Promise<string> {
const minified = await minify(rawHtml, {
collapseWhitespace: true,
removeComments: true,
minifyCSS: true,
removeAttributeQuotes: false, // Preserves quotes for Outlook MSO attributes
keepClosingSlash: true,
});
// UTF-8 byte count verification against the 102,400 bytes threshold
const byteLength = new TextEncoder().encode(minified).length;
if (byteLength > 102400) {
console.warn(`Warning: Email is ${byteLength} bytes. Gmail will clip this message.`);
}
return minified;
}The reliable approach
Rather than sending test emails to personal Gmail accounts (where conversation threading often falsely aggregates multiple test sends into a clipped view), test your email against Gmail's sanitizer in your development loop.
Emailens inspects your exact UTF-8 byte weight in milliseconds and simulates Gmail's sanitizer alongside 20 other email clients, flagging potential clipping before your campaign goes out.
Frequently Asked Questions
Can recipients disable email clipping in their Gmail account settings?
No. Gmail's 102KB clipping rule is enforced by Google's backend processing and rendering pipeline. There is no user preference, lab feature, or client setting that allows recipients or senders to disable clipping.
Does Gmail clip emails on mobile iPhone and Android apps?
Yes. The Gmail app on iOS and Android enforces the exact same 102,400 bytes threshold as desktop web Gmail. On mobile devices, the message is cut off and an '[Entire message clipped] View entire message' button appears at the bottom.
Why do test emails forwarded between team members get clipped?
When an email is forwarded or replied to, email clients (including Gmail and Outlook) prepend the entire previous message body and header metadata. If your template was 60KB, forwarding it appends another 60KB+, easily exceeding 120KB and triggering clipping.
Do hosted CDN images count towards the 102KB Gmail clipping limit?
No. Images loaded via external URLs (e.g., https://cdn.example.com/hero.jpg) do not count towards the 102KB limit. Only the length of the HTML <img> tag and the URL string itself count towards the byte count.
Check your email byte weight before sending
Paste your HTML and see exactly how Gmail, Outlook, and Apple Mail render it, with instant size warnings.
Inspect your email- •Google Workspace Admin Help: Email message size limits and clipping rules
- •IETF RFC 5322: Internet Message Format Specification
- •Can I Email: Gmail Web, iOS, and Android rendering engine capabilities
- •Emailens Test Suite: Gmail Desktop & Mobile Sanitizer Simulation Engine
Reviewed by Philippe KAM · Last updated: Sep 6, 2026
Building next-generation email preview and QA infrastructure for developers. Focused on reverse-engineering rendering engines across Outlook (Word MSO & New Outlook), Gmail, and Apple Mail to eliminate email rendering bugs before dispatch.