Why the subject line matters more than the email body
Every cold email you write gets judged twice. The first judgment happens in under two seconds, before a single word of the body copy is read, and it decides everything. Open, delete, or report as spam. The subject line is the only part of the email every recipient actually sees before making that call.
This is why a beautifully written email with a weak subject line performs worse than a mediocre email with a strong one. It doesn't matter how sharp your pitch is, how relevant your offer is, or how much research you did on the company. None of it gets read if the subject line doesn't earn the open first. A brilliant case study, a generous offer, a perfectly timed message, all of it sits unread in an inbox because the two-second decision already went against you.
Most teams spend hours polishing the body and minutes on the subject line. That ratio is backwards for cold outreach specifically, where you have no existing relationship or trust to lean on. A colleague opens your email because they know you. A cold prospect has no such reason, and the subject line is the only signal they get before deciding whether you're worth 30 seconds of their day.
Think about your own inbox for a moment. You almost certainly delete far more cold emails than you open, and you make that decision from the subject line and sender name alone. Your prospects do the same thing to you. Writing a subject line is not a formality before the real email starts. It's the actual first sentence of the pitch, and often the only one that gets read.
Length: the practical sweet spot
Somewhere around 30 to 50 characters is the safest range for a cold email subject line. That's not an arbitrary number. Most inboxes, especially on mobile, truncate subject lines past a certain width, and a growing majority of business email is first opened on a phone, often glanced at between meetings rather than read carefully at a desk.
There's a second reason short works better than long: length itself signals intent. A long, carefully worded subject line reads like marketing copy, the kind that gets batch-sent to a purchased list. A short one reads like something a person typed quickly to another person, which is exactly the impression a cold email needs to create if it wants to be read as a message rather than a campaign.
- Under 30 characters can feel abrupt or vague if it's not specific enough. "Quick question" at 15 characters says almost nothing on its own.
- 30 to 50 characters is long enough to say something specific, short enough to survive truncation on nearly every inbox and device.
- Over 60 characters risks getting cut off mid-sentence on mobile, which can make the visible fragment confusing or worse, spammy, since half a sentence often reads oddly out of context.
There's no single perfect number, and a slightly longer subject line with a genuinely compelling hook can still outperform a shorter, vaguer one. But when in doubt, cut words rather than add them. It's rare to regret a subject line for being too short.
Personalization that doesn't feel fake
Personalization can genuinely lift open rates, but only when it's real. A first name or company name dropped into a subject line signals that the email wasn't blasted to ten thousand people at once, and that small signal does real work in a crowded inbox.
The problem is what happens when personalization breaks. A subject line that reads "Hi {{firstName}}, quick question" because a merge field failed to render is worse than no personalization at all. It doesn't just fail to build trust, it actively proves the email was automated and sloppy about it, which is the exact opposite of the impression you wanted. A recipient who sees a broken merge tag doesn't think "close, but a minor glitch." They think "mass email tool, poorly checked," and that's the last thought you want in their head before they decide whether to open it.
Specific, researched detail beats a generic merge tag every time. "Noticed [Company] just opened a Berlin office" says more, and is safer, than "Hi [FirstName]" ever will be, because there's nothing to break at send time and it proves you actually looked at the company before writing. It also can't misfire the way a first-name field can when the data source has a typo, a title instead of a name, or a blank field.
If you're sending at any real volume, always test your personalization fields on a sample list before a full send, and have a sensible fallback for any contact where the field might be missing. A subject line with no personalization at all is a safer default than one that's broken for even a small percentage of your list.
Words and patterns that trigger spam filters
Before a human ever sees your subject line, a spam filter usually does. Certain patterns are well-known triggers that hurt deliverability regardless of how good the rest of the email is, and unlike open rate, a deliverability problem is invisible until you go looking for it.
- ALL CAPS. Reads as shouting to both filters and humans, and is one of the oldest, most reliable spam signals there is.
- Excessive exclamation marks. One is borderline. Two or more is a strong spam signal, especially stacked together like "!!!"
- Classic trigger words. "Free", "guarantee", "act now", "limited time", "risk-free", "no obligation", and similar phrases are heavily flagged by spam-scoring systems built into most modern email providers.
- Dollar signs and percentage discounts in the subject. Common in promotional spam, so filters weight them heavily, even in a legitimate B2B context.
- Vague, clickbait-style phrasing. "You won't believe this" or "Don't miss out" borrows patterns from consumer spam and phishing, and filters have learned to notice.
None of this means your email will always get caught. It means every one of these patterns adds risk, and cold email already has less trust built in than email from an existing contact. Don't add avoidable risk on top of that, especially since a single flagged send can hurt the sending reputation of your whole domain, affecting every email you send afterward, not just that one campaign.
Curiosity vs clarity
There are two broad schools of subject line writing, and both can work depending on the audience and context.
Curiosity-driven subject lines, like "quick question" or "following up", withhold information on purpose to earn the open. They can perform well precisely because they're short and low-pressure, and they've historically worked well because they don't sound like a pitch. But they're also heavily overused, and a recipient who has seen "quick question" a hundred times this year may open it purely out of spam-check reflex, or skip it entirely because they've learned it usually means a sales pitch in disguise.
Clarity-driven subject lines state the value up front. "Cut [Company]'s ad spend by 20%?" tells the recipient exactly why this email might be worth 30 seconds, before they even open it. It sets accurate expectations, and it filters itself: the people who aren't interested in that specific outcome are less likely to open it, which can look like a lower open rate but actually means less wasted time for both sides.
For cold B2B outreach specifically, clarity tends to outperform curiosity, because it signals relevance immediately instead of asking for trust it hasn't earned yet.
Curiosity isn't wrong. It's a tool that works best sparingly, mixed with specific and clear subject lines rather than used as the default for every send. If every email in a sequence uses the same curiosity trick, the pattern becomes obvious by the second or third message, and it starts working against you instead of for you.
Checking your subject line before you send
Most of the mistakes above are easy to miss when you're staring at your own draft. You know what the merge tag is supposed to say, so a broken one doesn't jump out at you the way it would to a stranger. A second look, or better, a second set of rules checking length, spam-trigger words, and broken personalization, catches problems before they cost you opens.
Our free Cold Email Subject Line Checker does exactly that. Paste in a subject line and it scores it for character length, flags common spam-trigger words, and checks for personalization that looks broken or unrendered, all before you hit send. No sign-up, and it runs instantly, right in your browser.
Running every subject line through a quick check before a send takes seconds and can meaningfully change your open rate over hundreds or thousands of emails. It's a small habit, but at cold email volume, small percentage-point differences compound into a lot of extra replies over a quarter.