Gmail's 102 KB clip limit: what is known and how to stay under it

Gmail clips email HTML at about 102 KB, a figure Google has not published. What is documented, what testers saw, and how to stay under the line.

102 KB

About where Gmail clips an email's HTML. Google has not published the number
On this page
  1. What Google documents and what testers observed
  2. What counts toward the limit
  3. What clipping hides
  4. How to cut the size
  5. How to measure it
  6. Sources

Gmail cuts off an email and shows a "View entire message" link when its HTML passes about 102 KB. Google does not publish that number. Litmus, Mailchimp and Klaviyo all cite it, and developer tests found clipping near 100 KB. Only code counts, not images. Stay under 80 KB.

For scale, here is every template in our library as the editor exports it, split into what fills it. Inline style attributes are the largest part of each one.

  • 52.6 KB, Office hours invite
  • A day at the studio, 52.3 KB
  • SOC 2 trust update, 45.9 KB
  • Kickoff, 41.4 KB
  • Trial ending, 39.7 KB
  • Left in the basket, 38.6 KB
  • Price change, 37.7 KB
  • Six weeks of colour, 36.2 KB
  • Maintenance, 36.0 KB
  • Product launch, 35.5 KB
  • Lamp launch, 33.9 KB
  • Single product launch, 33.4 KB
  • Five for Friday, 32.2 KB
  • The Housewarming Set, 32.1 KB
  • Year in review, 31.5 KB
  • The Lunch Set, 31.2 KB
  • Headphone launch, 30.0 KB
  • Tomorrow, 29.9 KB
  • Reading churn properly, 29.5 KB
  • The Summer Reset, 28.1 KB
  • Still want these?, 27.8 KB
  • Membership, 27.7 KB
  • Three steps to set up, 27.2 KB
  • Invite-only beta, 27.0 KB
  • New hire, 26.9 KB
  • Autumn Return, 26.2 KB
  • New name, 26.2 KB
  • 24 Hours, 25.0 KB
  • Two potters and a kiln, 24.8 KB
  • Release notes, 24.8 KB
  • August in four numbers, 24.7 KB
  • You are in the room, 21.8 KB
  • Come and eat with us, 21.3 KB
  • The long afternoon, 21.2 KB
  • The last hour, 20.4 KB
  • Nothing in a hurry, 19.9 KB
  • A letter from the studio, 19.2 KB
  • It has been a while, 14.4 KB
  • Account approach, 12.3 KB
  • Pointing me at the right person, 11.4 KB
  • Second email, 11.4 KB
  • 11.2 KB, Cold introduction

Inline style attributesCode only Outlook readsStyle blocksText between tagsTags, other attributes and spacing

Every template in bytes
TemplateBytesInline stylesOutlook onlyStyle blocksTextEverything else
Office hours invite53,88424,0975,9313,1952,89717,764
A day at the studio53,57622,8066,9613,1852,53018,094
SOC 2 trust update46,97220,2244,8603,2423,51515,131
Kickoff42,41418,2715,3772,8872,26413,615
Trial ending40,63017,2775,3722,8522,14112,988
Left in the basket39,55316,1124,8603,1392,39713,045
Price change38,57515,8484,3242,9482,55512,900
Six weeks of colour37,10015,1894,3462,9432,77711,845
Maintenance36,89414,5544,3382,8442,89612,262
Product launch36,31814,7274,4973,0351,94712,112
Lamp launch34,70813,3614,3303,0412,32911,647
Single product launch34,16713,3003,8023,0492,32811,688
Five for Friday32,97914,1962,7753,1452,8969,967
The Housewarming Set32,87913,5523,4723,1472,31310,395
Year in review32,29013,3943,8122,8522,19410,038
The Lunch Set31,98513,5213,2863,1392,4009,639
Headphone launch30,75713,4692,9342,8902,1689,296
Tomorrow30,58811,8813,3113,0351,87410,487
Reading churn properly30,24712,0732,7493,0462,17510,204
The Summer Reset28,72911,6542,7363,1362,0699,134
Still want these?28,41911,5112,7943,2372,2998,578
Membership28,36111,6993,2722,8872,1208,383
Three steps to set up27,85810,6922,2303,0462,4719,419
Invite-only beta27,68610,8402,7653,0472,3208,714
New hire27,55110,4422,7663,0912,2439,009
Autumn Return26,86510,6102,7583,1852,3457,967
New name26,83510,1363,2702,8442,2838,302
24 Hours25,59610,1382,7472,8522,2267,633
Two potters and a kiln25,4349,7381,6983,1392,3638,496
Release notes25,37910,6341,8752,8522,6107,408
August in four numbers25,30110,4451,7043,1442,4777,531
You are in the room22,2898,7641,1853,0382,4166,886
Come and eat with us21,7997,6591,1813,1472,3417,471
The long afternoon21,7288,1371,2163,1472,9646,264
The last hour20,9257,1731,1823,1393,1626,269
Nothing in a hurry20,3807,2701,1752,9512,3356,649
A letter from the studio19,6897,6456473,1392,7145,544
It has been a while14,7544,8841,1692,8441,8454,012
Account approach12,5874,1871552,8702,1413,234
Pointing me at the right person11,7173,8751552,8701,6523,165
Second email11,6963,8751552,8701,6133,183
Cold introduction11,4333,5631552,8701,7213,124
Each bar is one of the 42 templates in our template library, exported by the editor and measured in bytes when this page was built. Inline style attributes are 40% of all those bytes. A KB here is 1,024 bytes; a sending platform adds its own code on top.

What Google documents and what testers observed

Google has not published a threshold (Suped), and its Gmail CSS documentation does not mention clipping. 102 KB is an observed line.

SourceReportsDate
LitmusOver 102 KB, code only2024, flagged as possibly out of date
Klaviyo102 KB on desktop. Under 85 KB no risk, over 95 KB likely clippedUpdated 2026
Email on AcidAbout 102 KB, stay under 80 KB2021
email-bugsClipped at 99,507 to 100,217 bytes in three tests2018

Testers on the email-bugs thread also saw mail clipped well below the line, and some far above it that was not. Leave margin: treat 100,000 bytes as a ceiling and aim for 80 KB, since tools disagree on whether a kilobyte is 1,000 or 1,024 bytes.

What counts toward the limit

  • Source code, not images. Klaviyo counts text, styling, links and other markup. Image files do not count; the code that displays them does.
  • The HTML Gmail receives. Your platform's wrappers and rewritten tracking links add to your draft, and personalization scripting can leave blank lines behind.
  • Special characters. Email on Acid reports that non-ASCII characters can trigger clipping when a platform does not encode in UTF-8. A tester saw an unencoded copyright sign do it in 2019, and a 2026 retest found it no longer did. Declare UTF-8 and write symbols as entities anyway.

What clipping hides

Everything after the cut waits behind the link: the footer, the unsubscribe link and any call to action near the end. Mailchimp says its open tracking is clipped too. Google requires bulk marketing mail to carry a clearly visible unsubscribe link in the body, and Email on Acid warns that people who cannot find one are more likely to press the spam button.

How to cut the size

  • Host every image and drop inline SVG. Gmail supports neither base64 images nor embedded SVG, and base64 makes data about a third larger.
  • Repeat less inline CSS. A 120-character style on 200 cells is 24,000 characters. Repeated rules can move into a head style block, but Gmail caps that tag at 16 KB on desktop, and in one test the tag that crossed the limit was dropped whole. Keep layout-critical styles inline.
  • Strip what is dead. Comments, old client fixes, needless nested tables and markup your platform adds.
  • Minify with care. Use a minifier that keeps the MSO conditional comments Outlook needs, then diff and render-test the output. In html-minifier-terser, whitespace collapsing is off until you turn it on.
import { minify } from "html-minifier-terser";

const smaller = await minify(html, {
  collapseWhitespace: true,
  conservativeCollapse: true, // keep one space so inline elements do not fuse
});

How to measure it

Measure the HTML your platform sends. Paste it into the email size checker, which counts the bytes, warns at 80 KB and flags 102 KB, and send a test to a Gmail address to look for the clipped notice. For templates built to stay light, see email design and the template library.

Sources

  • mailchimp.com"View entire message" link
  • litmus.comOver 102 KB, code only. 2024, flagged as possibly out of date
  • help.klaviyo.com102 KB on desktop. Under 85 KB no risk, over 95 KB likely clipped. Updated 2026
  • github.comClipped at 99,507 to 100,217 bytes in three tests. 2018
  • suped.comGoogle has not published a threshold , and its
  • developers.google.comGoogle has not published a threshold (Suped), and its Gmail CSS documentation does not mention clipping
  • emailonacid.comAbout 102 KB, stay under 80 KB. 2021
  • en.wikipedia.orgkilobyte is 1,000 or 1,024 bytes
  • emailonacid.compersonalization scripting can leave blank lines behind
  • support.google.comclearly visible unsubscribe link in the body
  • caniemail.comGmail supports neither base64 images nor embedded SVG, and base64 makes data about a third larger
  • caniemail.comGmail supports neither base64 images nor embedded SVG, and base64 makes data about a third larger
  • developer.mozilla.orgabout a third larger
  • caniemail.comcaps that tag at 16 KB
  • github.comRepeated rules can move into a head style block, but Gmail caps that tag at 16 KB on desktop, and in one test the tag that crossed the limit was dropped whole
  • github.comIn html-minifier-terser, whitespace collapsing is off until you turn it on

Who do you want to hear back from?

Tell us who you sell to and what you have tried. We'll get back to you ASAP, and if it looks like a fit, we build it into your systems within days.

Or write to hello@draftship.io