A high email bounce rate isn't just annoying; it actively damages your sender
reputation, which means even your good emails start landing in spam. Most bounces
trace back to bad addresses captured at signup. Fix the front door and the bounce
rate fixes itself.
Here's the playbook, roughly in order of impact-per-effort.
1. Understand why addresses go bad
Four culprits cover almost all of it:
-
Typos:
jane@gmial.com,bob@hotmial.com. The user meant a real address. -
Fakes:
asdf@asdf.com, entered to skip your form. -
Disposable:
x@mailinator.com, used once then abandoned. -
Role/dead:
info@, or addresses at domains with no mail server at all.
Each needs a slightly different defence.
2. Catch typos in the form (recover real users)
Typos are the highest-value fix because the person wants to sign up; you just need
to nudge them. Verify on blur and surface a suggestion:
emailInput.addEventListener("blur", async () => {
const res = await fetch("https://mailguard-api.atek.workers.dev/v1/verify", {
method: "POST",
headers: { "x-api-key": KEY, "Content-Type": "application/json" },
body: JSON.stringify({ email: emailInput.value }),
});
const { did_you_mean } = await res.json();
if (did_you_mean) showHint(`Did you mean ${localPart}@${did_you_mean}?`);
});
A single "did you mean gmail.com?" prompt recovers signups you'd otherwise lose to a
slipped finger.
3. Block clearly undeliverable addresses on submit
On submit, reject addresses with no mail server (no MX record) and flag disposable
ones. A verification API returns this in one call:
const { status, checks } = await verify(email);
if (status === "undeliverable") return showError("That email can't receive mail.");
if (checks.disposable) return showError("Please use a permanent email address.");
Don't be too aggressive: treat "risky" as a soft warning, not a hard block, so you
don't lose legitimate users on edge cases.
4. Use double opt-in for anything marketing-related
For newsletters and marketing lists, a confirmation email (double opt-in) guarantees
the address is real and that the person wants your mail. It's the single biggest
long-term protector of your sender reputation.
5. Monitor and prune
- Watch your bounce rate per send; investigate spikes.
- Periodically clean your existing list (a batch/CSV verification endpoint makes this easy) and suppress hard bounces.
- Never email purchased lists; it's the fastest way to get blocklisted.
Putting it together
The 80/20 is steps 2 and 3: a verification call on your email field that powers a
typo hint and blocks undeliverable addresses. That alone removes most of the bad
emails before they ever reach your database.
Top comments (0)