> ## Documentation Index
> Fetch the complete documentation index at: https://loops.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Reducing product email bounce rate

> How to reduce product email bounce rate: hard vs soft bounces, what Loops handles automatically, and the actions you can take when your rate is too high.

A high bounce rate degrades your [sender reputation](/deliverability/sending-reputation) quickly. Mailbox providers treat repeated bounces as a signal that you are sending to lists you should not have. This guide covers what Loops handles automatically and the actions you can take when your rate is too high.

## Hard vs soft bounces

| Type            | What it means                                                                     | What Loops does                                                                          |
| --------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| **Hard bounce** | Permanent failure. Address does not exist, domain does not exist, mailbox closed. | Adds the contact to [suppression](/contacts/suppression) so Loops stops sending to them. |
| **Soft bounce** | Temporary failure. Mailbox full, server down, message too large, graylisted.      | Retries transient failures and tracks soft bounces separately from hard bounces.         |
| **Complaint**   | Recipient marked it as spam.                                                      | Same as hard bounce. Contact goes into [suppression](/contacts/suppression).             |

## What Loops handles automatically

* Adds hard-bouncing and complaining addresses to [suppression](/contacts/suppression), per [contact suppression](/contacts/suppression)
* Retries transient/soft failures
* Rate-limits and batches campaign sends, see [Sending to a large audience](/deliverability/sending-to-large-audience)
* Applies [double opt-in](/contacts/double-opt-in) to form submissions when enabled, so pending contacts are excluded from marketing sends until they confirm

## Driving your bounce rate down

### Protect your signup forms

Most bounces trace back to the address getting into your list. Fix it at the source:

* Add a captcha to every public signup form
* Enable bot protection at the edge (Cloudflare or similar) to absorb scripted fake-signup traffic
* Validate email syntax client-side and server-side before submitting to Loops
* Turn on [double opt-in](/contacts/double-opt-in) for form submissions so unconfirmed contacts stay out of marketing sends
* Block disposable providers using the [email blocklist](#use-the-email-blocklist) (below)

If you are using [Loops forms](/forms/simple-form), rate limiting and basic abuse protection are already in place. For deeper background on list hygiene see [Maintaining a clean list](/deliverability/maintaining-a-clean-list).

### Verify your sending domain

DNS misconfiguration is a hidden contributor to bounce rate. Even soft bounces climb when DKIM or SPF fail, because mailbox providers hold your mail longer or drop it.

* Complete [sending domain setup](/sending-domain)
* Send from a subdomain, see [why](/deliverability/sending-from-subdomain)
* Review [Improving inbox placement](/deliverability/improving-inbox-placement) for the broader checklist

### Stop sending to disengaged users

If a contact has not opened anything in 60+ days, they are a bounce risk even if their address is technically valid. Stale addresses get abandoned and mailboxes fill up.

Campaign only to active users. If you sync product activity into Loops, create a custom Date contact property such as `lastActive` and update it when users log in or take a meaningful action. Then save a segment that filters `lastActive` to the last 30 days on the [Audience page](https://app.loops.so/audience), see [filters and segments](/contacts/filters-segments). For setup details, see [sending a campaign to active users](/guides/onboarding-emails#sending-a-campaign-to-active-users-in-loops). Keep the rest of the Audience intact, but only actively mail people who still engage.

<Warning>
  We do not recommend running re-engagement campaigns aimed at cold contacts. Sending more email to disengaged users tends to increase complaints and hurt deliverability further. It is almost always better to let them sit and focus on the engaged segment.
</Warning>

### Use the email blocklist

The [email blocklist](/contacts/email-blocklist) (under **Settings → Account**) blocks patterns before a contact is ever created, across every signup path: manual add, CSV upload, forms, the API, and integrations.

Three pattern styles are supported:

* Full address to block one specific user: `blockthisuser@domain.com`
* Wildcard domain to block a disposable-email provider: `*@mailinator.com`
* Wildcard TLD to block a class of addresses: `*@*.edu`

Common patterns worth adding early:

* Known disposable-email domains (tempmail, mailinator, guerrillamail, etc.)
* Role-based addresses that almost always bounce or route to shared inboxes you do not want (`admin@`, `postmaster@`, `abuse@`, `noreply@`)
* Specific domains that have blocked you or produced a cluster of complaints

### Warm up carefully on new domains

A brand-new sending domain with zero history will bounce more. If you are starting from scratch or migrating, follow the reputation-building flow in [Your first onboarding emails](/guides/onboarding-emails): start with transactional and welcome sends to engaged users, then grow volume gradually while monitoring open rates.

For migrations specifically, see [Migrating domains](/deliverability/migrating-domains). For broader context, our other deliverability guides cover the adjacent practices that keep bounces low:

* [Building your sender reputation](/deliverability/sending-reputation)
* [Improving inbox placement](/deliverability/improving-inbox-placement)
* [Maintaining a clean list](/deliverability/maintaining-a-clean-list)
* [Sending to a large audience](/deliverability/sending-to-large-audience)

### Don't use third-party list-cleaning tools

We do not recommend running your Audience through external email-verification or list-cleaning services. In practice these tools:

* Produce a lot of false positives (flagging valid mailboxes as invalid), which shrinks your reachable audience for no benefit
* Can themselves generate probe traffic that hurts your sender reputation
* Do not fix the upstream problem, which is usually signup-form hygiene or sending to disengaged contacts

Loops already suppresses hard bounces and complaints automatically. The right investment is cleaner signup inputs and tighter audience segments, not a verification pass after the fact.

### Don't use domain warmup tools

Third-party warmup services that send automated back-and-forth emails between seeded inboxes do not build real sender reputation. Inbox providers weight engagement from actual recipients, and synthetic warmup traffic is increasingly easy to detect and discount.

If you are sending to real, engaged users, a warmup tool should not be necessary. Follow the natural warmup path in [Your first onboarding emails](/guides/onboarding-emails): start with transactional and welcome sends, then grow volume gradually as engagement metrics stay healthy. That produces a reputation that actually holds up.

## Diagnosing high bounce rates

When a send has unexpectedly high bounces, the specific failure reasons tell you where to focus:

* **Domain not found**: typo-filled addresses, often from form spam. Fix with [signup-form protection](/deliverability/maintaining-a-clean-list).
* **Mailbox does not exist**: stale addresses, often from old imported lists. Segment out disengaged contacts before sending.
* **Blocked**: your [sender reputation](/deliverability/sending-reputation) is low at that provider. Focus on engaged-user sends and review [inbox placement fundamentals](/deliverability/improving-inbox-placement).

## Bounce rate guidance

General industry benchmarks, to interpret alongside your own trend:

| Bounce rate | Status                                     |
| ----------- | ------------------------------------------ |
| Under 2%    | Healthy                                    |
| 2% to 5%    | Worth investigating                        |
| Over 5%     | Deliverability at risk, pause and diagnose |

If you are consistently over 5% on campaigns, the fix is almost always a segmentation problem, not a content problem. Narrow your audience to engaged users first using [filters and segments](/contacts/filters-segments).

## Read more

<CardGroup>
  <Card title="Maintaining a clean list" icon="broom" href="/deliverability/maintaining-a-clean-list" />

  <Card title="Improving inbox placement" icon="inbox" href="/deliverability/improving-inbox-placement" />

  <Card title="Sender reputation" icon="shield" href="/deliverability/sending-reputation" />

  <Card title="Contact suppression" icon="circle-xmark" href="/contacts/suppression" />
</CardGroup>
