Come ridurre il tasso di bounce delle tue email: guida tecnica
Un tasso di bounce del 2% sembra poco. Non lo è. Provider come Gmail e Microsoft sorvegliano il tasso di bounce a livello di dominio e di IP. Supera le soglie che applicano al proprio interno — di solito fra l'1% e il 2% per chi scrive a freddo — e le tue email successive cominciano a finire in spam, o smettono del tutto di essere consegnate. Google Postmaster Tools lo rende visibile; la maggior parte dei mittenti non lo guarda finché non è tardi.
Questa guida spiega che cosa causa i bounce, come misurarli e che cosa fare prima che si accumulino.
Hard bounce contro soft bounce
Non tutti i bounce sono uguali.
Un hard bounce è un errore permanente. Il server di destinazione ha risposto con un errore 5xx che significa «questo indirizzo non esiste e non esisterà». Codici SMTP comuni:
550 5.1.1— la casella non esiste550 5.1.2— indirizzo della casella di destinazione errato551 5.1.1— utente non locale, prova a inoltrare
Gli hard bounce vanno rimossi dalla lista in modo immediato e permanente. Riscrivere loro danneggia la tua reputazione senza alcuna possibilità di raggiungere qualcuno.
Un soft bounce è un errore temporaneo. L'indirizzo esiste, ma il messaggio non si è potuto consegnare adesso. Cause comuni:
- Casella piena (
452 4.2.2) - Server temporaneamente non disponibile (
421 4.3.2) - Dimensione del messaggio superata (
552 5.3.4)
Il tuo fornitore di posta di solito ritenta i soft bounce per 24-72 ore. Se un soft bounce diventa persistente lungo diversi invii, trattalo come un hard bounce.
Che cosa provoca un tasso di bounce alto
1. Liste vecchie o comprate
Le liste si degradano fra il 20% e il 30% l'anno. Qualcuno lascia l'azienda e la sua casella viene eliminata. Un'azienda cambia dominio di posta. Un account Gmail resta inattivo e Google lo recupera. Qualsiasi lista a cui non scrivi da più di 6 mesi si porta dietro un degrado notevole.
Le liste comprate sono peggio. Di solito contengono:
- Indirizzi raccolti da chi non ha mai dato il consenso
- Spam trap (indirizzi che le organizzazioni antispam mantengono proprio per intercettare chi usa liste cattive)
- Indirizzi che non esistono da anni
Scrivere a una lista comprata è uno dei modi più rapidi per far finire il tuo dominio di invio su una lista di blocco.
2. Nessuna validazione al momento della raccolta
Un modulo di registrazione senza verifica accetta:
- Refusi (
gmial.com,yahooo.com) - Indirizzi falsi scritti per accedere a contenuti riservati
- Email usa e getta che scadono prima del tuo primo invio
- Indirizzi di ruolo che rifiutano automaticamente il marketing (
noreply@,bounce@)
Ognuno di questi diventa un bounce, e il tuo tasso sale a ogni invio.
3. Iscritti inattivi
Gli utenti che si sono iscritti e non hanno mai interagito non generano sempre un hard bounce: la loro casella esiste ancora. Ma provider come Gmail misurano l'interazione. Se una percentuale alta dei tuoi invii a indirizzi Gmail non viene aperta o viene marcata come spam, Gmail comincerà a mandare la tua posta nella cartella spam per tutti.
4. Problemi di configurazione
Gli errori di autenticazione possono provocare bounce ancora prima che il messaggio arrivi in posta in arrivo:
- Record SPF assente o sbagliato
- Firma DKIM che non torna
- Politica DMARC su
rejectcon un errore di configurazione - Invii da un IP che non è nel tuo record SPF
Sono diversi dai bounce a livello di indirizzo, ma contribuiscono agli stessi problemi di recapitabilità.
Come misurare il tuo tasso di bounce
Dal tuo fornitore di posta
Tutti i fornitori importanti (Postmark, SendGrid, Mailgun, Amazon SES) riportano il tasso di bounce nei loro pannelli e nei loro webhook. Il numero che conta è il tasso di hard bounce per campagna, non l'aggregato.
Una sola campagna con il 5% di bounce è un segnale d'allarme più grave di un 2% aggregato su 12 mesi.
Con Google Postmaster Tools
Postmaster Tools mostra la tua reputazione sulla posta inviata a indirizzi Gmail: reputazione del dominio, reputazione dell'IP, tasso di spam ed errori di consegna. È gratuito e ti dice esattamente che cosa pensa Google del tuo dominio di invio.
Configuralo prima di avere un problema. Non serve a diagnosticare all'indietro.
Con i codici di bounce SMTP
Se elabori i bounce per conto tuo, analizza i codici di risposta SMTP:
// Esempio: elaborare i webhook di bounce di Postmark
app.post("/webhooks/bounce", (req, res) => {
const { Type, Email, Description } = req.body;
if (Type === "HardBounce") {
// rimozione permanente — codici 5xx
db.markEmailInvalid(Email, { reason: Description });
} else if (Type === "SoftBounce") {
// incrementa il contatore dei soft bounce
db.incrementSoftBounce(Email);
}
res.sendStatus(200);
});
// Sopprimere dopo 3 soft bounce
async function shouldSuppress(email: string): Promise<boolean> {
const count = await db.getSoftBounceCount(email);
return count >= 3;
}Come ridurre il tuo tasso di bounce
1. Verifica gli indirizzi al momento della raccolta
La verifica in tempo reale nel modulo di registrazione è l'intervento più efficace. Ferma gli indirizzi non validi, usa e getta e inesistenti prima che entrino nella tua lista.
// Endpoint di registrazione in Express.js
// Non ci sono ancora SDK: questo è il wrapper di 12 righe di /docs/quickstart.
import { verifyEmail } from "./lib/mailbeam";
app.post("/api/signup", async (req, res) => {
const { email } = req.body;
const result = await verifyEmail(email);
if (!result.valid) {
return res.status(422).json({
field: "email",
error: result.suggestion
? `Intendevi ${result.suggestion}?`
: "Questo indirizzo email non sembra valido.",
});
}
if (result.disposable) {
return res.status(422).json({
field: "email",
error: "Gli indirizzi email temporanei non sono ammessi.",
});
}
// adesso è sicuro creare l'account
await createUser({ email });
res.status(201).json({ ok: true });
});Questo da solo di solito tiene il tasso di bounce degli indirizzi nuovi sotto lo 0,1%.
2. Pulisci la tua lista attuale prima di un invio importante
Prima di scrivere a una lista rimasta ferma per più di 3 mesi, lancia un lavoro di verifica in blocco:
async function cleanList(emails) {
const auth = { Authorization: `Bearer ${process.env.MAILBEAM_KEY}` };
// Invia la lista; la risposta è un id di lavoro, non i risultati.
const job = await fetch("https://api.mailbeam.dev/v1/verify/batch", {
method: "POST",
headers: { ...auth, "Content-Type": "application/json" },
body: JSON.stringify({ emails }),
}).then((r) => r.json());
// Aspetta il webhook batch.completed, oppure interroga /v1/jobs/:id fino alla fine.
const { results } = await fetch(
`https://api.mailbeam.dev/v1/jobs/${job.job_id}/results?format=json`,
{ headers: auth }
).then((r) => r.json());
return {
deliverable: results.filter((r) => r.status === "deliverable" && r.score >= 70).map((r) => r.email),
risky: results.filter((r) => r.status === "risky").map((r) => r.email),
invalid: results.filter((r) => r.status === "undeliverable").map((r) => r.email),
unknown: results.filter((r) => r.status === "unknown").map((r) => r.email),
};
}Per il contatto a freddo, scrivi solo a deliverable. Con iscritti che già interagiscono puoi includere gli indirizzi risky: hanno un rapporto pregresso con il tuo marchio.
3. Costruisci una lista di soppressione
Non appena un indirizzo genera un hard bounce, sopprimilo in modo immediato e permanente. Non scrivergli mai più, nemmeno se ricompare in una nuova importazione.
// Controlla la soppressione prima di inviare
async function canSend(email: string): Promise<boolean> {
const suppressed = await db.isSuppressed(email);
return !suppressed;
}
// Aggiungi alla soppressione con il webhook di hard bounce
async function handleHardBounce(email: string) {
await db.addToSuppression(email, { suppressedAt: new Date() });
}La maggior parte dei fornitori di posta mantiene le liste di soppressione per te. L'errore è non propagarle fra i diversi canali di invio.
4. Campagne di riattivazione prima degli invii completi
Con liste i cui iscritti non aprono niente da più di 6 mesi, lancia prima una campagna di riattivazione. Scrivi solo a quel segmento con un oggetto chiaro («Vuoi ancora sentirci?»). Elimina chi non risponde.
Così riduci il volume che mandi a indirizzi dubbi senza perdere chi semplicemente non ha aperto di recente.
5. Sistema la tua autenticazione
Fai questi controlli:
# Controllare il record SPF
dig TXT yourdomain.com | grep spf
# Controllare DKIM (cambia il selettore con il tuo, per esempio 'google', 'mail', 's1')
dig TXT selector._domainkey.yourdomain.com
# Controllare DMARC
dig TXT _dmarc.yourdomain.comSe uno di questi non restituisce niente, hai un buco di autenticazione. Gmail e Yahoo già richiedono l'allineamento di SPF e DKIM ai mittenti massivi, e la politica DMARC è applicata con crescente rigore.
Tassi di bounce da tenere come obiettivo
| Contesto | Tasso di hard bounce accettabile |
|---|---|
| Transazionale (ricevute, avvisi) | < 0,5% |
| Marketing a lista con consenso | < 1% |
| Contatto a freddo | < 0,5% (sopra, i provider ti sospendono) |
| Campagna di riattivazione | < 2% (ma pulisci la lista dopo) |
Che cosa fare se il tuo tasso di bounce è già alto
- Smetti subito di inviare — continuare aggrava il danno
- Guarda Postmaster Tools — scopri che cosa pensa già Google del tuo dominio
- Verifica la tua lista attuale — individua ed elimina tutti gli indirizzi non validi
- Riscalda a poco a poco — parti dal tuo segmento più attivo e allarga
- Sorveglia ogni giorno — elabora i bounce via webhook per intercettare i nuovi hard bounce prima che si accumulino
In sintesi
Il tasso di bounce è un indicatore in ritardo: quando ti accorgi che è alto, il danno alla reputazione è già in corso. La prevenzione sta a monte:
- Verifica gli indirizzi nel momento in cui li raccogli
- Pulisci le liste prima di ogni invio importante
- Sopprimi subito gli hard bounce
- Sorveglia la configurazione dell'autenticazione
Ognuna di queste cose si imposta una volta e funziona a tempo indeterminato. L'alternativa è spegnere incendi a ripetizione mentre la tua recapitabilità si degrada.