Email Deliverability12 min read

Hard Bounce Prevention: Stop Bad Addresses Before Send

Use hard bounce prevention tactics to catch invalid, disposable, and risky emails before campaigns so you protect reputation and keep lists clean.

B
The Bounceable Team
Email signup form filtering invalid addresses before send

Hard bounce prevention means catching an invalid email address before you send, not after your ESP reports a failure. That shift matters because every hard bounce can hurt sender reputation, waste send volume, and pollute your CRM data.

What Hard Bounce Prevention Means

Hard bounce prevention is the process of stopping permanently undeliverable addresses from entering or receiving mail from your system.

A hard bounce happens when a message cannot be delivered for a permanent reason. Common examples include:

  • The mailbox does not exist.
  • The domain does not exist.
  • The address has invalid syntax.
  • The receiving server rejects the recipient as invalid.

That differs from a soft bounce, which usually points to a temporary issue. A mailbox may be full. A server may time out. A message may be too large. Soft bounces can recover. Hard bounces usually do not.

Prevention beats cleanup because mailbox providers judge your sending behavior as it happens. If you send a campaign to 100,000 contacts and 5,000 hard bounce, you cannot undo that signal. You can suppress those addresses afterward, but the receiving networks already saw the failed delivery attempts.

Keep your hard bounce rate as low as you can, and investigate quickly when it rises above your normal baseline. Many teams use 2% total bounce rate as a practical warning line, but your safe range depends on list source, cadence, and sending history.

Hard bounce prevention is narrower than general bounce rate reduction.

General bounce rate reduction includes anything that lowers total bounces, including temporary failures, throttling issues, authentication problems, and content-related blocking. Hard bounce prevention focuses on one specific question:

Is this recipient address likely to exist and accept mail before we send?

That question belongs early in your data flow. Do not wait until campaign reporting tells you the answer.

Common Causes of Hard Bounces

Most hard bounces come from bad data, stale data, or low-quality acquisition sources.

You can usually trace them back to one of these inputs.

Mistyped addresses on signup forms

People make mistakes. They type fast. They use mobile keyboards. They enter gmial.com instead of gmail.com, hotnail.com instead of hotmail.com, or miss a character in the local part.

Common signup problems include:

  • Domain typos: gmai.com, yaho.com, outlok.com
  • Missing characters: jane@company.co instead of jane@company.com
  • Invalid syntax: jane@@example.com
  • Accidental spaces or copied punctuation
  • Fake addresses entered to access gated content

A basic syntax check catches only the worst cases. It can tell you jane@@example.com is malformed. It cannot tell you whether jane@example.com exists.

Old CRM records and stale lists

Email data decays. People leave companies. Companies change domains. Mailboxes get deleted. Systems merge records without validating them.

Risk increases when you send to:

  • Leads collected more than 6–12 months ago
  • Old trial users with no recent activity
  • Event lists imported after a long delay
  • Former customers from an archived CRM segment
  • Contacts enriched from third-party sources

The address may have been valid when you captured it. That does not mean it is valid now.

Scraped, purchased, and poorly sourced data

Scraped and purchased lists cause preventable hard bounces because you do not control how the data was collected. You also lack clear consent signals, which increases complaint risk.

These lists often contain:

  • Guessed corporate patterns
  • Dead mailboxes
  • Role accounts
  • Spam traps or recycled addresses
  • Domains that no longer accept mail
  • Addresses copied from old webpages

Even if some addresses pass verification, the source itself may still be risky for sender reputation.

Deleted mailboxes, bad domains, disposables, and syntax errors

Hard bounces often come from straightforward address quality issues:

CauseExampleWhy it hard bouncesPrevention step
Invalid syntaxalex@@example.comAddress cannot be parsedClient and server-side validation
Non-existent domainalex@exampel-not-real.comDomain has no valid mail setupDomain and MX checks
Deleted mailboxold.employee@company.comRecipient no longer existsSMTP-level verification
Disposable domainuser@tempmail.exampleTemporary inbox may expire quicklyDisposable domain detection
Typo domainsam@gmial.comWrong destination or no mailboxTypo suggestion
Stale CRM recordFormer employee addressMailbox removed after captureRe-verify before sending

You do not need one control for all of these. You need layered checks at the points where bad data enters and before it leaves.

Prevent Hard Bounces at Signup

The best time to stop a hard bounce is before the address enters your database.

Signup is the cleanest control point because the user is still present. You can ask for a correction immediately. You can avoid creating bad leads, failed automations, and noisy attribution.

Validate syntax and domain format before submission

Start with basic validation. It should run on the client for fast feedback and on the server for enforcement.

Check for:

  • One @ symbol
  • Valid local part and domain format
  • No leading or trailing spaces
  • No obvious invalid characters
  • A domain with a valid structure
  • Length limits that match email standards

Do not overbuild regex rules. Email syntax has edge cases, and aggressive regex checks can reject valid addresses. Use basic format validation first, then rely on email verification for deliverability checks.

A good signup flow trims whitespace, lowercases the domain, and blocks clearly malformed input before submission.

Suggest typo corrections

Typo correction prevents a large class of avoidable hard bounces.

If someone enters maria@gmial.com, do not silently accept it. Show a clear prompt:

Did you mean maria@gmail.com?

Good typo correction should cover common consumer domains and common business-domain mistakes. It should not auto-change the address without user confirmation. You want the user to approve the correction.

This matters for lifecycle email too. A typo at signup can break:

  • Account confirmation
  • Password reset
  • Product onboarding
  • Billing notices
  • Sales follow-up
  • Trial conversion campaigns

A single typo can make the rest of your email program look broken.

Run real-time email verification

Real-time email verification checks whether an address appears deliverable before you accept it into your system or trigger email.

A verification service may check:

  • Syntax validity
  • Domain existence
  • Mail server records
  • Mailbox-level response
  • Disposable or burner domains
  • Catch-all behavior
  • Role account patterns
  • Known free providers
  • Typo suggestions
  • Overall bounce risk

For example, your app might receive a result like this:

{
  "email": "alex@gmial.com",
  "verdict": "undeliverable",
  "reason": "domain_typo",
  "suggestion": "alex@gmail.com",
  "disposable": false,
  "role": false,
  "catch_all": false,
  "risk": "high"
}

You can then block the submission, show the suggestion, and keep the bad address out of your CRM.

Bounceable supports this kind of real-time email verification through an API, so developers can validate addresses at signup, lead capture, and import points without waiting for a campaign bounce report.

Prevent Hard Bounces Before Campaign Sends

Pre-send verification catches stale addresses that were valid when collected but risky now.

This is especially important before large sends. A list can look clean because it has not been mailed recently. That is not the same as being clean.

Verify old segments before reactivation

Reactivation campaigns carry higher bounce risk because inactivity often correlates with stale addresses.

Verify before sending to:

  • Contacts with no opens, clicks, logins, or purchases in many months
  • Dormant trial users
  • Old newsletter subscribers
  • Legacy CRM segments
  • Event leads from past quarters
  • Contacts migrated from another ESP or CRM

Do not assume previous engagement protects you. A person can engage today and leave a company tomorrow. A mailbox can disappear between campaigns.

A practical approach:

  1. Export or select the inactive segment.
  2. Run email verification.
  3. Suppress undeliverable addresses.
  4. Segment risky and unknown addresses.
  5. Send reactivation in smaller batches.
  6. Monitor hard bounce rate, spam complaints, and engagement.

Suppress known bad and risky sources

Your suppression list is a deliverability control, not just a compliance artifact.

Always suppress:

  • Previous hard bounces
  • Unsubscribes
  • Spam complaints
  • Manually blocked contacts
  • Known invalid imports
  • Sources with repeated quality problems

Do not re-add a hard-bounced address just because it appears in a new import. Your newest system should respect your historical suppression data.

This requires clean data plumbing. If your CRM, ESP, enrichment tool, and warehouse all push contacts into campaigns, suppression needs to apply across all of them.

Segment risky, catch-all, role-based, and unknown addresses

Not every non-deliverable verdict deserves the same action.

Some addresses are clearly bad. Others are uncertain. For example, catch-all domains accept mail for any local part, so a server may not reveal whether jane@company.com exists. Role accounts like info@ or support@ may receive mail, but they often have lower engagement and higher complaint risk in cold outreach.

Segment these categories instead of sending blindly:

  • Catch-all: Treat as uncertain. Send cautiously if source quality is strong.
  • Role-based: Avoid for lifecycle messages tied to a person. Use carefully for B2B outreach when appropriate.
  • Unknown: Retry verification later or send in small batches only when value justifies risk.
  • Risky: Suppress from high-volume marketing sends unless you have a strong reason to include them.

This is where hard bounce prevention supports broader email list hygiene. You are not just deleting contacts. You are deciding which addresses deserve which type of send.

Use Verification Results to Decide What to Send

Verification results should drive clear routing rules, not sit unused in a field.

A simple decision matrix helps your team act consistently.

Verification resultWhat it meansRecommended action
DeliverableAddress appears valid and reachableAccept and send normally
RiskyAddress may deliver, but has warning signsSegment, throttle, or require stronger consent
UndeliverableAddress is invalid or likely to hard bounceBlock, suppress, or request correction
UnknownVerification could not confirm deliverabilityRetry later or send cautiously in low-risk flows
DisposableTemporary or burner domain detectedBlock for accounts where identity matters
Catch-allDomain accepts many or all recipientsSegment and monitor closely
Role accountShared inbox like info@ or sales@Use only when the use case fits

Block, suppress, request correction, or send cautiously

Good prevention rules are specific.

Use this pattern:

  • Block when the address is malformed, disposable, or undeliverable at signup.
  • Request a correction when you detect a likely typo.
  • Suppress when an existing contact verifies as undeliverable before a campaign.
  • Send cautiously when the result is catch-all, unknown, or risky and the source has strong consent.
  • Exclude risky records from reactivation, cold outreach, and high-volume promotional sends unless you have a controlled test plan.

For user-facing forms, keep messages plain:

  • “This email address does not look valid.”
  • “Did you mean name@gmail.com?”
  • “Please use a non-temporary email address.”
  • “We could not verify this email. Please check for typos.”

Do not expose low-level SMTP reasons to users. They are confusing and can create security concerns.

Use disposable and catch-all detection

Disposable and catch-all detection reduce preventable bounces in different ways.

Disposable detection helps you stop short-lived inboxes. These addresses may work for minutes or hours, then fail later. They also weaken account quality if you rely on email for identity, trial abuse controls, or lifecycle messaging.

Catch-all detection helps you avoid false confidence. A catch-all domain may accept every recipient during verification, but that does not prove the mailbox exists. Some catch-all domains later drop mail silently. Others accept first and bounce later. Treat them as a separate risk tier.

Hard bounce prevention works best when your rules match your use case:

  • For product signup, you may block disposable and undeliverable addresses.
  • For newsletter signup, you may allow catch-all but require confirmation.
  • For cold outbound, you may send only to deliverable addresses and throttle catch-all.
  • For customer billing, you may request a corrected address through an in-app prompt.

The goal is not to maximize list size. The goal is to send to addresses that can receive your mail.

Hard Bounce Prevention Checklist

A good hard bounce prevention program has controls at every point where email data enters, changes, or gets mailed.

Use this checklist to audit your setup.

Capture points

Add validation anywhere someone can create or update an email address:

  • Website signup forms
  • Newsletter forms
  • Demo request forms
  • Checkout flows
  • In-app profile settings
  • Sales-created CRM records
  • CSV imports
  • Webinar and event imports
  • Partner lead feeds
  • Enrichment workflows
  • Zapier, Pipedream, or other automation paths
  • API-created users or leads

For each capture point, ask:

  1. Do we validate syntax?
  2. Do we suggest typo fixes?
  3. Do we detect disposable domains?
  4. Do we verify deliverability before the record becomes mailable?
  5. Do we store the verification result and timestamp?
  6. Do we prevent bad records from bypassing the main form?

That last question catches many issues. Teams often secure the public signup form but forget CRM imports or automation workflows.

Pre-send checks

Verify before high-risk sends:

  • Large campaign launches
  • Reactivation campaigns
  • First send after ESP migration
  • First send after CRM cleanup
  • Cold outreach sequences
  • Old segment re-use
  • Seasonal sends to dormant contacts
  • Winback campaigns
  • Any list with unknown source quality

After verification, split the send plan:

  • Send normal campaigns to deliverable contacts.
  • Exclude undeliverable contacts.
  • Review risky contacts by source.
  • Send catch-all and unknown contacts in smaller batches if you include them.
  • Watch bounce and complaint results separately for each segment.

Metrics to track

A bounce rate audit should tell you where bad addresses come from, not just how many bounced.

Track hard bounce rate by:

  • Acquisition source
  • Signup form
  • Campaign
  • Segment age
  • Import batch
  • Sales team or owner
  • Lead vendor
  • Country or region, if relevant
  • Email domain or provider
  • Verification verdict before send

Then look for patterns.

If one webinar source produces a high hard bounce rate, fix that import process. If one form produces many typo corrections, improve the input experience. If one sales workflow creates many invalid records, validate before CRM creation.

Hard bounce prevention is operational. You need rules, owners, and feedback loops.

A strong baseline looks like this:

  • Real-time validation on all primary forms
  • Email verification before records enter marketing automation
  • Suppression applied across systems
  • Re-verification for stale segments
  • Separate handling for risky, unknown, role-based, disposable, and catch-all addresses
  • Hard bounce rate reporting by source
  • Regular review after major campaigns

If you use Bounceable, you can apply these controls through the API or integrations and store the verdict in your CRM or marketing system. Start with the highest-risk entry point first. For most teams, that is either signup or old-list reactivation.

Catch bad addresses before they bounce.
Verify your list free

Frequently asked questions

Keep reading