Your campaign went out, a few days passed, and the open rate is sitting far below where you expected. The usual reaction is to rewrite the subject line. Sometimes that helps. Often the real problem sits earlier: your emails are landing in spam, going to dead addresses, or arriving from a sender nobody recognises.
This guide walks through the causes in the order worth checking them, cheapest and most likely first. Do them in order and you will usually find the problem within an hour.
Step 1: Accept what the open rate can and cannot tell you
Opens are measured with a tiny tracking image. Some email apps load images automatically, some block them, and some privacy features open them on the reader's behalf. So the number is a rough signal, not an exact count. Our open rate explainer covers this in more detail.
What this means in practice:
- Compare campaigns against each other, not against a number you read somewhere.
- A sudden drop between two of your own campaigns is meaningful. A low number on your first ever campaign may just be your baseline.
- If opens are low but replies are coming in, your emails are being read. Do not panic.
If opens are near zero, or dropped sharply, keep going. That pattern almost always points to deliverability.
Step 2: Check that your domain is authenticated
Mail providers check three DNS records to decide whether an email really comes from you: SPF, DKIM and DMARC. Missing or broken records are one of the most common reasons cold email lands in spam.
Do this today:
- Send an email from your sending account to a personal Gmail address.
- Open it, click the three dots, and choose Show original.
- Look for SPF, DKIM and DMARC. Each should say PASS.
If any say FAIL or are missing, fix that before touching anything else. The setup is explained step by step in our SPF, DKIM and DMARC guide. It usually means adding a few records at your domain registrar.
While you are in that test email, check which folder it landed in. Spam or Promotions tells you a lot.
Step 3: Clean the list you are sending to
Sending to addresses that do not exist produces bounces, and a high bounce rate tells providers you are not careful about who you email. That can push the rest of your messages toward spam, which drags opens down for everyone on the list.
Check these:
- Bounce count. If a noticeable share of your last send bounced, the list is the problem.
- Generic inboxes. info@ and contact@ addresses are often shared or rarely checked. They are fine to use, but expect fewer opens than from a named person.
- Old lists. Businesses close, staff leave. A list built a year ago will have more dead addresses than one built this week.
The fix is to verify emails before every send and remove anything that fails. In GetClient you can run email verification on a list right before a campaign, and because the leads and the campaign live in the same place, there is no exporting to a separate verifier and back.
Step 4: Slow down your sending
Sending a large batch from a new or quiet account looks like spam behaviour, even if every email is personal. Providers watch volume, especially sudden jumps.
Practical rules of thumb:
- Start a new account with a small daily volume and raise it gradually over a few weeks.
- Spread sends across several accounts instead of pushing one account hard.
- Stay well under the provider's hard caps. Our post on Gmail daily sending limits lists them.
- Avoid sending everything in one burst. Space messages out through the day.
GetClient lets you set send-day limits by weekday and schedule campaigns, so you can keep volume steady without watching it by hand.
Step 5: Make the sender look like a person
Once your email reaches the inbox, the reader sees three things before deciding to open: your name, the subject line, and the preview text. The name often matters most.
- Use a real first and last name, not your company name or "Sales Team".
- Use a matching photo on the Google account if you send from Gmail.
- Check the first line of your email. It shows as preview text. "Hi, I hope you are well" wastes it. Start with something specific to them.
Step 6: Rewrite the subject line, now that the rest is fixed
Only now does subject line testing make sense. If emails were going to spam, a better subject line would not have changed anything.
What tends to work for cold email to small businesses:
- Short and plain. A few words, written the way a colleague would write.
- Specific to them. Use merge tags such as {{params.name}} or {{params.city}}: "Quick question about {{params.name}}" or "{{params.category}} in {{params.city}}".
- No sales signals. Skip capitals, exclamation marks, "free", and fake "Re:" prefixes. Fake replies can win an open and lose trust in the same second.
If you email businesses in another country, write the subject in their language. Our guide to cold email in different languages covers what to watch for.
Test one change at a time across two similar batches, so you know what actually moved the number.
Step 7: Send a different follow-up to people who did not open
A person who never opened your first email has not rejected it. They may simply have missed it. Sending them the same subject again rarely helps.
Instead, branch your follow-ups. In GetClient's flow builder, an If NOT Opened step lets you send non-openers a fresh subject line and a shorter message after a delay of a few days, while openers get a different follow-up. The branch is yes or no, so keep the logic simple. Our not-opened follow-up strategy walks through how to word that second attempt.
A quick order of checks
| Symptom | Most likely cause | First fix |
|---|---|---|
| Opens near zero | Spam folder | Check SPF, DKIM, DMARC |
| Many bounces | Old or unverified list | Verify before sending |
| Opens dropped after scaling up | Volume too fast | Lower daily sends |
| Inbox placement fine, opens low | Sender name or subject | Rewrite, test one change |
Work top to bottom. Most low open rates are fixed by the first three rows.