The design question that matters
A cold email's job is to look like a message from a person, not a campaign. HTML design decisions that make sense for a newsletter — multi-column layout, a header image, a branded footer — work against that goal on a first-touch message. Filters and recipients both read structure as a signal of intent before they read a single word of copy.
Image-to-text ratio
An email that is mostly one large image with a line or two of text is a long-standing spam pattern, because it lets a sender hide the actual message from text-based content filters. Cold sends with a banner image, a logo, and a CTA button image stack several of those images into a message that should be three sentences. Keep the ratio inverted: mostly text, images only if the message cannot work without one, and almost never a full-width banner.
Nested tables and tracking pixels
Multi-column HTML templates are usually built from nested <table> structures to survive old Outlook rendering engines. That is reasonable for a marketing send with design review behind it. For cold email it adds two problems: the raw HTML balloons in size relative to the visible content, and it is a structural fingerprint that a sequencing tool's default template leaves behind, which filters have seen millions of times from accounts that behaved badly. A single open-tracking pixel does the same thing from a different angle — it is often the first external resource a filter sees and it tells the filter this is bulk mail before the body loads.
Clipping at Gmail's size limit
Gmail clips a message's visible HTML at roughly 102KB. A template built with inline CSS, nested tables, a signature banner, and a tracking pixel can cross that threshold on a message whose actual sentence content is 60 words. Everything past the clip point — including your List-Unsubscribe link if it's only in the footer HTML and not in headers, and any postal address required for compliance — disappears behind a "View entire message" link that most recipients never click. Check raw source size before you ship a template, not just how it renders.
What a safe structure looks like
<html>
<body style="font-family: Arial, sans-serif; font-size: 14px;">
<p>Hi Priya,</p>
<p>Saw your team is hiring three support engineers this quarter.
We cut onboarding time for a similar team from six weeks to ten days —
worth a 15-minute look?</p>
<p>Sam<br>MailPilot team<br>mailpilots.in</p>
</body>
</html>No tables, no remote images, no tracking pixel, one plain link in the signature. It renders the same with images blocked, in dark mode, and on a watch, and it is small enough that clipping is not a concern.
Dark mode is not optional testing
Most major mail clients now apply automatic dark mode to messages that don't declare their own color scheme, inverting light backgrounds and dark text. A white logo on a transparent background, or dark text with no explicit background color, can render invisibly. Test every template with the client's dark mode on before sending to a single real prospect — not after a complaint.
Pre-send checklist
| Check | Target |
|---|---|
| Visible text vs. image area | Text-dominant |
| Raw HTML size | Well under 102KB |
| Remote images (excluding none) | Zero, ideally |
| Nested tables | None |
| Renders correctly with images off | Yes |
| Renders correctly in dark mode | Yes |
| List-Unsubscribe header present on bulk mail | Yes |
What not to do
Do not reuse a marketing template for cold outreach because it already exists. Do not add a tracking pixel to a first-touch message just because your tool defaults to it — turn it off if you can. Do not assume a template "looks fine" because it looks fine in your own inbox; test with images blocked and in dark mode specifically.
Test the rendered email, not the template editor
A template editor's preview pane is not a reliable stand-in for how the message actually renders once it leaves your sending tool. Send a real test to a mailbox you control on each major client you care about, then open the raw source there, not just the rendered view. Inline CSS that depended on a style block your editor auto-injected, for instance, can silently drop once the message passes through an ESP that strips <style> tags for security reasons — something you'd never see in the editor itself. Check the raw HTML size figure directly, not an estimate; most mail clients let you view the original message source, and that is the number that matters for the clipping threshold, not whatever the editor reports.
A quick manual audit before any send
Open the finished HTML in a plain text editor and search for <img, <table, and style= tags. Count them. A three-sentence cold email with more than one or two of each is almost always carrying structure left over from a template that wasn't built for this use case. Strip anything that isn't doing visible, necessary work — a background color on a <table> that's invisible once rendered, a tracking pixel nobody asked for, a nested wrapper table with a single cell inside it.
Where MailPilot fits
MailPilot checks SPF, DKIM, and DMARC on every sending domain and measures real per-provider inbox placement through a seed-inbox network, so a template change shows up as a placement number — Gmail, Outlook, and the rest — rather than a guess about what the HTML "probably" does.
Ready to reach the inbox every time?
Automated email warmup across real peer mailboxes. Live inbox placement monitoring. Free 7-day trial - no credit card required.
Start free trial