---
title: "Email Preheader Optimization: Fix Your Preview Text"
description: "Email preheader optimization guide: preview text formulas, testing methods, and the mistakes that waste your 90 best characters."
date: "2026-07-20"
tags: "email deliverability, cold email, preview text, email copywriting, open rates"
readTime: "19 min read"
slug: "email-preheader-optimization"
canonical: "https://firstsales.io/blog/email-preheader-optimization/"
---

# Email preheader optimization: the 90 unoptimized characters

**TL;DR:** Preheader text is the second line of copy every inbox shows next to your subject line, and most senders leave it blank or let the client auto-pull the first sentence of the email body. GetResponse found custom preheaders lift open rates from 39.28% to 44.67% (a 13.72% relative gain), yet only 37.53% of senders bother writing one. This guide covers the formulas, character limits, testing process, and mistakes that separate a preheader that earns the open from one that gets ignored.

---


## Table of contents

1. [What a preheader actually is](#what-a-preheader-actually-is)
2. [Why 90 characters carry more weight in 2026](#why-90-characters-carry-more-weight-in-2026)
3. [What happens when you skip it](#what-happens-when-you-skip-it)
4. [Preheader length trade-offs: short vs long](#preheader-length-trade-offs-short-vs-long)
5. [Character limits by client](#character-limits-by-client)
6. [Preview text formulas that work](#preview-text-formulas-that-work)
7. [The subject line and preheader relationship](#the-subject-line-and-preheader-relationship)
8. [Common preheader mistakes](#common-preheader-mistakes)
9. [Preheader copy by sequence stage](#preheader-copy-by-sequence-stage)
10. [How to test preheaders properly](#how-to-test-preheaders-properly)
11. [Preheaders in cold email specifically](#preheaders-in-cold-email-specifically)
12. [Preheaders and inbox pre-open scoring](#preheaders-and-inbox-pre-open-scoring)
13. [A QA checklist before you send](#a-qa-checklist-before-you-send)
14. [How FirstSales handles preview text](#how-firstsales-handles-preview-text)
15. [Where preheader fits in your broader deliverability stack](#where-preheader-fits-in-your-broader-deliverability-stack)
16. [FAQ](#faq)
17. [Conclusion](#conclusion)

---

## What a preheader actually is

A preheader is the line of text that appears next to or below your subject line in the inbox list view.

Gmail, Outlook, and Apple Mail all show it before the recipient opens anything.

Most email clients grab roughly the first 40 to 130 characters of visible body text if you do not set one deliberately.

That default behavior is why so many cold emails show "View this email in your browser" or a string of alt text as the preview.

Hidden preheader text is a small snippet, usually white-on-white or set to zero font size, placed right after the opening `<body>` tag so the client reads it first without displaying it in the message itself.

For plain text sends (which most cold email should be, and which we cover in depth in our [plain text vs HTML cold email](/blog/plain-text-vs-html-cold-email) comparison), the preheader is just your first visible line. There is no hidden trick available, so that first sentence has to do double duty.

---

## Why 90 characters carry more weight in 2026

Subject lines get the attention. Preheaders get ignored by the person writing the email and read closely by the person deciding whether to open it.

24% of subscribers say they read preview text before deciding to open, according to research summarized by DailyStory and Mailjet. That is nearly one in four opens decided by a line most senders never touch.

Inboxes in 2026 already score a message before a human ever opens it.

Since Gmail, Yahoo, and Microsoft locked in their bulk sender requirements (the SPF, DKIM, and DMARC floor, sub 0.3% complaint rates, sub 2% bounce rates), the remaining lever senders control at the moment of decision is what the recipient physically sees before clicking. That is the subject line and the preheader, full stop.

Open rate itself is a shaky metric now, thanks to Apple Mail Privacy Protection and bot prefetching (we break down why in [email metrics after open rates died](/blog/email-open-rates-dead-metrics)). The preheader still shapes the human decision that produces an actual reply, and that decision is what moves pipeline.

AI-generated cold email volume flooded most inboxes over the past two years. Recipients skim faster and forgive less.

A generic or missing preheader now reads as a signal of low effort, the same way a form-letter subject line does. Precision in those 90 characters beats another point of send volume.

---

## What happens when you skip it

GetResponse's analysis of custom preheader usage found a real, measurable gap.

Campaigns with a custom preheader averaged a 44.67% open rate. Campaigns without one averaged 39.28%.

That is a 13.72% relative lift from writing one line of text, and it costs nothing to implement once a sender's tooling supports it.

The catch: GetResponse also found only 37.53% of the campaigns in its dataset used a custom preheader at all. Roughly six out of ten senders are leaving that lift on the table, which means the senders who do write one stand out by default.

A separate study cited by Rejoiner found a 7.96% open rate lift at over 95% statistical confidence when comparing improved preheader creative against a control. Different dataset, same direction: a deliberate preheader consistently beats a default or blank one.

None of this requires new infrastructure. It requires someone to stop letting the email client decide what shows up next to the subject line.

The gap between senders who write one and senders who do not is a real competitive edge, and it costs a single extra line of copy per send.

---

## Preheader length trade-offs: short vs long

A short preheader (under 50 characters) reads clean on every client but sacrifices detail, since there is only room for one idea.

A longer preheader (70 to 100 characters) can carry a full thought, but only on clients that show that much text, which excludes Outlook desktop entirely.

The safe compromise most senders land on: write a full sentence of roughly 80 to 90 characters, but structure it so the first 40 characters stand alone as a complete, meaningful fragment.

That way a Gmail mobile reader gets a usable fragment, and an Apple Mail reader gets the full sentence.

Testing both extremes on the same list is worth doing once. Some B2B audiences respond better to a terse, almost clipped preview line because it reads as busy and human, while others respond to the fuller sentence because it signals research was done.

There is no universal winner here. The only wrong answer is leaving the decision to the email client's default truncation behavior.

---

## Character limits by client

![Character limits by client](/images/blog/email-preheader-optimization/inline-1.webp)


Every inbox truncates differently, and that truncation point decides where your sentence needs to land its point.

| Client | Preview length shown | Behavior on truncation |
|---|---|---|
| ✓ Gmail desktop | ~100 characters | Cuts mid-word, no ellipsis warning |
| ✓ Gmail mobile | ~40 to 65 characters | Aggressive cut, front-loaded copy required |
| ✓ Apple Mail (iOS) | ~90 characters | Shows 1 to 2 lines depending on settings |
| ✓ Outlook desktop | ~50 to 60 characters | Single line only |
| ✓ Outlook mobile | ~60 to 90 characters | Varies by screen size and font setting |
| ✗ Legacy Outlook (2016/2019 desktop) | Often 0 (some builds ignore preheader tags) | Falls back to raw body text |
| ✗ Some webmail clients (Yahoo, GMX) | Inconsistent, sometimes strips whitespace hacks | Renders leftover characters as visible junk |

The safe target across every major client: front-load the value in the first 40 characters, then let the sentence run to 90 for the clients that show more.

Anything past character 100 is functionally invisible for cold outbound, where most recipients read on mobile first.

---

## Preview text formulas that work

A preheader is not a summary of the subject line. It is the second reason to open, not a restatement of the first.

**The specificity formula.** State one concrete detail the subject line did not. If the subject is "Quick question about your renewal process," the preheader might read "Saw you're still on manual CSV exports for this."

**The named-context formula.** Reference something time-bound or company-specific: "Noticed the Series B announcement last week."

**The direct-continuation formula.** Write the preheader as the sentence that would logically follow the subject line if someone read them aloud together.

**The curiosity-with-substance formula.** Raise a real question the email answers, without a clickbait gap: "Wondering if this is even the right team to ask."

**The proof-first formula.** Lead with a number or outcome relevant to the recipient's role: "3 teams like yours cut this by half last quarter."

Avoid vague filler like "This will only take a minute" or "Thought you'd find this useful." Both add zero information and read as templated the moment a recipient has seen them twice.

---

## The subject line and preheader relationship

Treat the subject line and preheader as one sentence split across two lines, not two separate pitches competing for attention.

If the subject line asks a question, the preheader should not restate that question in different words. It should answer part of it or add a new detail.

If the subject line is short and blunt, for example "Renewal question," the preheader carries more of the actual context: "Your contract renews in 6 weeks and the pricing tier changed."

Test the pairing by covering the body of the email and reading only those two lines out loud.

If a recipient could not guess what the email is actually about from that combination, the preheader is not doing its job yet.

For subject line mechanics specifically, our guide on [cold email subject lines](/blog/cold-email-subject-line) covers the framing side of this same pairing.

---

## Common preheader mistakes

**Letting it default to boilerplate.** "View this email in your browser" or "Unsubscribe here" as the first visible text is the single most common and most wasteful mistake in cold outbound.

**Repeating the subject line word for word.** This burns the second line of real estate on information the recipient already has.

**Writing it after the email is finished, as an afterthought.** A preheader written last usually just grabs whatever sentence happened to be first in the body, which was written for flow, not for cold-open impact.

**Stuffing it with spam trigger phrases.** "Free," "act now," "limited time," and excessive punctuation do double damage: they read as spam to the recipient and get flagged by content filters before the message ever lands. This connects directly to broader spam avoidance covered in [why cold emails land in spam](/blog/why-cold-emails-land-in-spam).

**Ignoring dark mode rendering.** A hidden white-on-white preheader trick can flip into black-on-black in dark mode clients and disappear entirely, or worse, show up as a garbled character string. We go deeper on this failure mode in [dark mode email rendering](/blog/dark-mode-email-rendering).

**Using the same preheader across an entire sequence.** Recipients who receive multiple touches from the same sender notice repetition fast, and a copy-pasted preheader across five follow-ups reads as automation, not effort.

**Skipping mobile testing entirely.** A preheader that reads perfectly on Gmail desktop can truncate to a half-finished thought on Gmail mobile, where most cold email actually gets opened first.

**Writing it in a different voice than the email body.** A punchy, casual preheader followed by a stiff, formal opening line creates a jarring mismatch the moment the recipient actually opens the message.

**Forgetting to check for leftover whitespace hack artifacts.** Old preheader tricks pad the hidden text with repeated non-breaking spaces or special characters to push boilerplate out of the preview window. Some clients now render those characters visibly instead of hiding them, leaving a string of garbage symbols in the preview pane.

Every one of these is fixable in under five minutes once someone actually looks at the preview pane instead of just the email body in the editor.

---

## Preheader copy by sequence stage

A cold email sequence usually runs three to six touches, and the preheader should shift with the stage, not stay static.

**First touch.** The preheader needs to earn trust from zero context. Lead with the most specific, most verifiable detail available: a role, a recent company event, a real number relevant to their situation.

**Middle follow-ups.** By touch two or three, the recipient has seen the sender's name once already. The preheader can reference the earlier email directly ("Following up on the export workflow question") without repeating the full pitch.

**Breakup or final touch.** The preheader on a closing email carries a different job entirely: signal finality without sounding like a threat. Something like "Closing this out on my end" tends to outperform a generic "Last chance" line, since it reads as a real update rather than a manufactured deadline. Our deeper breakdown of that last-touch mechanic lives in [the breakup email guide](/blog/breakup-email), where the preview line matters as much as the subject.

Treating every touch in a sequence with the same preheader formula is a missed opportunity, since the recipient's context with the sender changes at every stage and the preview text should acknowledge that.

---

## How to test preheaders properly

![How to test preheaders properly](/images/blog/email-preheader-optimization/inline-2.webp)


Testing a preheader is not the same as testing a subject line, because the two variables interact and most A/B testing tools only isolate one at a time.

```mermaid
flowchart TD
    A[Draft subject line + preheader pair] --> B[Read both aloud as one sentence]
    B --> C{Does it convey a distinct reason to open?}
    C -->|No| D[Rewrite preheader, keep subject fixed]
    D --> B
    C -->|Yes| E[Check truncation at 40, 65, and 90 characters]
    E --> F{Front-loaded value survives every cutoff?}
    F -->|No| G[Move key detail earlier in the sentence]
    G --> E
    F -->|Yes| H[Render test: Gmail, Apple Mail, Outlook desktop and mobile]
    H --> I{Renders correctly in light and dark mode?}
    I -->|No| J[Fix hidden-text CSS or switch to plain text]
    J --> H
    I -->|Yes| K[Send small test batch, hold subject line constant]
    K --> L[Compare open and reply rate against prior sequence]
    L --> M{Statistically meaningful lift?}
    M -->|Yes| N[Roll into full sequence]
    M -->|No| D
```

Hold the subject line constant while testing preheader variants. Changing both at once means you cannot attribute the lift to either one.

Run the test on a real batch, not a single send. Cold email sample sizes need at least a few hundred sends per variant before the open and reply delta means anything statistically.

Track reply rate alongside open rate, not instead of it. A preheader can lift opens without lifting replies if it overpromises relative to the email body, which just moves the drop-off point later in the funnel.

For the deliverability side of test sending, cross-reference against your existing [cold email deliverability checklist](/blog/cold-email-deliverability-checklist) so a preheader test does not accidentally trip a spam filter threshold.

Document every test in a shared log, including the exact subject line, preheader, send window, and sample size. Cold email teams often rerun the same failed test six months later because nobody wrote down what was already tried.

Set a minimum threshold for what counts as a real result before the test starts, not after. Deciding in advance that a lift needs to clear, say, two percentage points on open rate and hold on reply rate too, prevents the common trap of declaring victory on noise.

Retire a test the moment the sample size is met, whether the result is positive or flat. Running variants indefinitely just adds risk without adding information once the numbers have stabilized.

---

## Preheaders in cold email specifically

Cold email preheaders carry a different job than newsletter preheaders. A newsletter preheader sells curiosity. A cold email preheader has to sell legitimacy first, curiosity second.

The recipient does not know you yet, so the preview text is doing identity work as much as content work.

A preheader that names the recipient's company, role, or a recent public event reads as researched. A generic one reads as a mail merge, and recipients have gotten fast at spotting the difference, a pattern covered in [how prospects spot AI-written emails](/blog/how-prospects-spot-ai-written-emails).

Because most cold email is plain text, the preheader is usually just the literal first sentence a human would read after the subject line.

That means the opening line of the email body does two jobs now. It works as preview-pane copy before the recipient opens the message, and it works as the actual opening line once they do, so write it with both audiences in mind.

Personalization at scale matters here too, since a preheader that feels hand-written but is not backed by real research tends to underperform once recipients notice the pattern across a sequence. Our guide on [cold email personalization mistakes](/blog/cold-email-personalization-mistakes) covers where that breaks down.

---

## Preheaders and inbox pre-open scoring

Inboxes display the preheader, and increasingly they also read it as one more signal in the pre-open scoring pass, alongside authentication records and sender reputation.

Gmail and Outlook both run lightweight content classification before a message ever reaches the inbox list, and spam-adjacent phrasing in a preheader contributes to that classification the same way it does in a subject line.

This is separate from, but related to, the BIMI and verified sender trust signals we cover elsewhere in this series. A clean preheader will not fix a domain with a bad sending reputation, but a spammy one can tip an otherwise clean domain toward the promotions or spam folder on a marginal send.

If you are still building authentication fundamentals, that groundwork (SPF, DKIM, DMARC) belongs in place before preheader copy testing becomes the highest-impact fix, something we detail in [spf dkim dmarc setup for 2026](/blog/spf-dkim-dmarc-setup-2026) and [the Google bulk sender rules](/blog/google-bulk-sender-rules-2026).

Think of the ordering as a stack. Authentication and sender reputation decide whether a message reaches the inbox at all. Subject line and preheader decide whether a human opens it once it lands there.

Fixing preheader copy on a domain that fails the authentication floor is polishing a message that was never going to arrive. Get the infrastructure right first, then optimize the 90 characters.

---

## A QA checklist before you send

Run this list against every sequence before it goes live, not just the first send.

| Check | Pass condition |
|---|---|
| ✓ Preheader is set explicitly | Not left to client default |
| ✓ First 40 characters carry the core value | Survives Gmail mobile truncation |
| ✓ Distinct from the subject line | No word-for-word repeat |
| ✓ Free of spam trigger phrases | No "free," "act now," excess punctuation |
| ✓ Tested in dark mode | No white-on-white or invisible text failure |
| ✓ Varies across sequence steps | Not copy-pasted touch to touch |
| ✗ Contains "View in browser" or unsubscribe boilerplate | Fails if present |
| ✗ Longer than 100 characters with the key point buried past 90 | Fails if buried |

---

## How FirstSales handles preview text

FirstSales treats the preheader as part of the same AI-drafted, human-approved workflow used for the rest of a cold email sequence.

Because every draft still passes through human review before sending, a generic or repeated preview line gets caught the same way a weak subject line would, rather than shipping unnoticed across a thousand-contact sequence.

The platform also ties preview text quality into its broader signal-based prospecting approach: a preheader referencing a real trigger event (a funding round, a job change, a hiring signal) only works if the underlying research behind it is accurate, which is the harder problem most tools skip.

That research layer matters because a preheader is only as strong as the fact it is built on. A line that references a funding round that closed eighteen months ago, or a job title the recipient left last quarter, does more damage than a generic one, since it signals stale data rather than research. Pairing accurate [buying signals](/blog/buying-signals-for-cold-email) with the preview text formulas above is what turns a preheader from a copywriting exercise into a trust signal.

---

## Where preheader fits in your broader deliverability stack

Preview text optimization is a real lever, but it sits low on the list of things that determine whether a cold email sequence performs.

Domain reputation, warmup history, sending volume, and list quality all outrank preheader copy in terms of raw impact on inbox placement, a hierarchy worth internalizing before spending a week rewriting preview lines.

Where preheader optimization earns its place is at the margin: once the fundamentals are solid, it is one of the few remaining levers that costs nothing to test and compounds across every send in a sequence.

Treat it as a standing item in a sequence review, not a one-time fix. Revisit preheader copy every time a sequence gets refreshed, the same way subject lines get refreshed, since audience fatigue applies to preview text too.

---

## FAQ

### What is an email preheader?

An email preheader is the short line of text, typically 40 to 130 characters, that appears next to or below the subject line in an inbox's list view before the recipient opens the message.

### How long should a preheader be?

Front-load the key point in the first 40 characters and keep the full line under 90 characters, since that covers the truncation point on most major clients including Gmail mobile and Apple Mail.

### Does preheader text affect open rates?

Yes. GetResponse's analysis found custom preheaders lift open rates from 39.28% to 44.67%, a 13.72% relative increase, compared to campaigns with no custom preheader.

### What happens if I do not set a preheader?

Most email clients default to pulling the first visible text in the email body, which is often boilerplate like "View this email in your browser," an image alt tag, or an unsubscribe link.

### Should the preheader repeat the subject line?

No. A repeated preheader wastes the second line of visible copy. It should add a new detail, answer part of the subject line's question, or continue the thought.

### Is the preheader different for plain text cold email?

Yes. In plain text sends there is no hidden preheader tag, so the literal first sentence of the email body functions as the preview text and needs to work in both roles.

### How does dark mode affect preheader text?

Hidden preheader tricks using white-on-white text can invert to black-on-black in dark mode and become invisible, or render as a visible character string if the CSS is not built for both modes.

### Can I use emojis in a preheader for cold email?

Generally no. Emojis in B2B cold outreach preview text tend to read as unprofessional or promotional, which increases the odds of a spam classification rather than an open.

### What preheader length does Outlook show?

Outlook desktop typically shows only 50 to 60 characters before truncating, the shortest window among major clients, so the core message needs to land early.

### How often should I change the preheader in a follow-up sequence?

Every touch in a sequence should have a distinct preheader tied to that specific message, since reusing the same line across follow-ups signals automation to an attentive recipient.

### Does a good preheader help deliverability, not just opens?

Indirectly. A preheader free of spam trigger language avoids tripping content filters, and Gmail and Outlook both weigh content signals in their pre-open classification alongside sender reputation.

### What is the biggest preheader mistake in cold email?

Leaving it blank and letting the client pull default boilerplate text, which is the single most common failure and the easiest one to fix.

### Should I A/B test subject lines and preheaders together?

No. Hold the subject line constant while testing preheader variants, and vice versa, so any lift or drop can be attributed to a single variable.

### How many sends do I need before trusting a preheader test result?

Aim for at least a few hundred sends per variant. Cold email volumes are usually too small for a meaningful statistical read below that threshold.

### Do preheaders matter more or less now that Apple Mail Privacy Protection inflates open rates?

More. With open rate partly corrupted by bot prefetching, the preheader's real job shifts toward driving the human decision that leads to a reply, which is a cleaner signal than a raw open count.

### What is a good formula for a cold email preheader?

Lead with one specific, verifiable detail about the recipient (a role, a recent event, a metric) rather than a generic curiosity hook, since specificity reads as researched rather than templated.

### Can preheader text be personalized dynamically at scale?

Yes, through merge fields tied to real prospect data, but only if the underlying data is accurate. A dynamic preheader referencing a wrong detail damages trust faster than a generic one.

### Should the preheader ever include a call to action?

Rarely. The preheader's job is to earn the open, not to close the ask. Save the direct call to action for the body of the email.

### What tools show how a preheader will render across clients?

Most email service providers include an inbox preview feature, and manual checks across Gmail, Outlook, and Apple Mail (in both light and dark mode) remain the most reliable method for cold outbound specifically.

### Is a missing preheader worse for cold email than for newsletters?

Arguably yes, because cold email already starts with a trust deficit. A blank or boilerplate preheader adds a second signal of low effort on top of an unfamiliar sender.

---

## Conclusion

Ninety characters is not much room, and most senders treat it like an afterthought instead of the second half of their opening pitch.

The evidence is not close: a custom preheader adds a real, measurable lift to open rates, and fewer than four in ten senders bother writing one, which means the ones who do stand out by default.

Fix the character limits per client, write the preheader as a continuation of the subject line rather than a repeat of it, test it the same way you would test subject line copy, and check it in dark mode before it ships to a full sequence.

Run the QA checklist above against your next sequence, hold the subject line constant, and measure the reply rate delta, not just the open rate, over your next batch of sends.

Sources: [The impact preheaders have on open rates, EmailOctopus](https://blog.emailoctopus.com/the-impact-preheaders-have-on-open-rates/), [Make the most of your email preheader, Mailjet](https://www.mailjet.com/email-playbook/open-rates/email-preheader/), [The quickest win for increasing open rates, Rejoiner](https://www.rejoiner.com/resources/email-preheader), [Use email preview text to improve open rates, DailyStory](https://www.dailystory.com/blog/email-preheader-improve-open-rates/)