Moduli di contatto in WordPress: plugin, antispam, GDPR ed email che arrivano

Questo articolo è stato pubblicato per la prima volta nel 2006 e completamente riscritto a ottobre 2026: i commenti più vecchi si riferiscono alla versione originale.

Nel gennaio del 2006 questo articolo raccontava, con l’entusiasmo un po’ ingenuo di quegli anni, un paio di segnalazioni arrivate tramite il modulo di contatto del blog: un web desktop in ASP.NET e AJAX e una libreria italiana che prometteva di fare concorrenza ad AJAX, il tutto condito dalla parola magica web 2.0. Il modulo di contatto, all’epoca, era un dettaglio tecnico che si installava in cinque minuti e di cui nessuno si preoccupava più di tanto, a parte lo spam che cominciava a far capolino.

Vent’anni dopo il modulo di contatto è ancora lì, ma intorno a lui è cambiato tutto: i bot sono diventati bravissimi, le regole sulla privacy sono molto più precise e i grandi provider di posta rifiutano senza troppi complimenti le email che non dimostrano da dove arrivano. In questo articolo, riscritto da capo, ti racconto come scegliere il plugin, come difenderti dallo spam senza tormentare chi ti scrive, che cosa chiede il GDPR e come fare in modo che i messaggi arrivino davvero nella tua casella, con un’alternativa che per molti siti funziona persino meglio.



Quale plugin per i moduli di contatto

Per un semplice modulo di contatto in WordPress serve ancora un plugin, perché nel core non esiste un blocco modulo nativo: l’esperimento dei blocchi Form avviato nel plugin Gutenberg nel 2023 è stato rimosso con la versione 24.0 di settembre 2026, senza mai arrivare nel core. La buona notizia è che le alternative sono mature, gratuite nella versione base e aggiornate con regolarità; quelle che vedo più spesso nei progetti sono queste:

  • Contact Form 7, il veterano con milioni di installazioni attive, essenziale e configurabile con un linguaggio di tag; di suo non salva i messaggi nel database, e se vuoi conservarli serve il plugin Flamingo dello stesso autore;
  • WPForms Lite, Fluent Forms, Forminator e Formidable Forms, che offrono un costruttore visuale a trascinamento e versioni a pagamento per logiche condizionali, pagamenti e integrazioni;
  • Jetpack Forms, un blocco gratuito per chi usa già Jetpack, con le risposte consultabili in bacheca e l’antispam affidato ad Akismet;
  • Gravity Forms, soluzione esclusivamente commerciale, non presente nella directory ufficiale, apprezzata per i moduli complessi e i flussi di approvazione.

Il criterio che uso per scegliere è semplice: il plugin più leggero che copre davvero le tue esigenze, perché un modulo con nome, email e messaggio non ha bisogno di un framework capace di gestire sondaggi, preventivi e pagamenti. Se invece le richieste devono finire in un CRM, in un foglio condiviso o in un flusso di automazione, verifica prima che il plugin offra webhook o integrazioni native, perché è lì che la scelta fa la differenza.

Antispam senza tormentare chi ti scrive

Il modo migliore per fermare lo spam nei moduli è combinare difese invisibili, come un campo honeypot nascosto ai visitatori ma compilato dai bot, con un controllo come Cloudflare Turnstile, che nella maggior parte dei casi non chiede all’utente di fare nulla; i vecchi captcha con le immagini sfocate dei semafori vanno lasciati al passato, insieme alla pazienza di chi doveva risolverli.

Su questo blog uso Antispam Bee, che lavora senza captcha e senza inviare dati personali a servizi esterni, ma con una precisazione che molti ignorano: le sue FAQ ufficiali dicono chiaramente che protegge commenti e trackback e non i plugin dei moduli. Per i moduli servono quindi strumenti specifici, e qui la situazione è migliorata parecchio:

  • Contact Form 7 integra nativamente Cloudflare Turnstile dalla versione 6.1 e lo raccomanda ai propri utenti, oltre a supportare reCAPTCHA v3 e Akismet;
  • per gli altri plugin esistono integrazioni native o plugin dedicati a Turnstile, ben mantenuti nella directory ufficiale;
  • ogni servizio esterno, che sia reCAPTCHA, Turnstile o Akismet, riceve comunque alcuni dati del visitatore, a partire dall’indirizzo IP, e va quindi citato nell’informativa privacy.

Un buon antispam è come un buon buttafuori: i molesti restano fuori e gli ospiti non si accorgono nemmeno che esiste.

Privacy e GDPR: informativa e consenso

Un modulo di contatto raccoglie dati personali, e il GDPR chiede prima di tutto che l’informativa sia disponibile nel momento stesso in cui li raccogli, che tu chieda solo i dati necessari e che la base giuridica del trattamento sia quella corretta. Il Garante, in un provvedimento del 2025, ha ribadito che nei moduli online l’informativa deve essere immediatamente disponibile prima dell’invio, e un link chiaro vicino al pulsante è il minimo sindacale.

Sul consenso c’è parecchia confusione, ed è qui che si annidano gli errori più comuni. Per rispondere a una richiesta che è l’utente stesso a inviarti la base giuridica è in genere la necessità di dare seguito a quella richiesta, cioè le misure precontrattuali previste dall’articolo 6 del GDPR, e non il consenso; il consenso diventa indispensabile, invece, se vuoi usare quei dati per altre finalità come la newsletter o il marketing. In quel caso deve essere libero, specifico e separato: il Garante ha sanzionato nel 2023 un sito il cui modulo rendeva obbligatorio il consenso al marketing per poter inviare la richiesta.

  • chiedi solo i campi che ti servono davvero per rispondere, e rendi facoltativo tutto il resto;
  • metti il link all’informativa accanto al pulsante di invio e, se aggiungi una casella per il marketing, lasciala non spuntata e non obbligatoria;
  • se salvi i messaggi nel database, con Flamingo o con lo storico del tuo plugin, indica nell’informativa per quanto tempo li conservi e cancellali quando non servono più.

Quella che ti ho dato è una sintesi pratica e non una consulenza legale: per un’attività strutturata vale la pena far rivedere informativa e moduli a chi si occupa di privacy di mestiere.

Email che arrivano davvero: SMTP, SPF, DKIM e DMARC

Perché le email del modulo arrivino nella tua casella, e non nello spam, devi inviarle tramite un server SMTP autenticato del tuo dominio e configurare correttamente i record SPF, DKIM e DMARC nel DNS. Per impostazione predefinita wp_mail() usa la funzione mail() di PHP e, se non indichi un mittente, si presenta come wordpress@ seguito dal dominio del sito, una combinazione che per i provider di posta ha spesso l’aria di un messaggio poco affidabile.

Dal febbraio 2024 Google chiede a chiunque invii posta verso Gmail almeno SPF o DKIM, oltre a record DNS validi e connessioni cifrate, e a chi invia più di cinquemila messaggi al giorno anche DMARC e l’allineamento del dominio del mittente; Yahoo applica requisiti analoghi. Un modulo di contatto non ti trasforma in un mittente massivo, ma configurare tutti e tre i record è la strada più sicura, e i plugin che lo rendono semplice sono ben mantenuti: WP Mail SMTP, FluentSMTP e Post SMTP collegano WordPress al server della tua casella o a un servizio transazionale.

C’è poi un dettaglio che sistema da solo metà dei problemi: il campo From deve usare un indirizzo del dominio del sito, mentre l’indirizzo di chi ti ha scritto va messo nel Reply-To, così puoi rispondere con un clic senza che il messaggio sembri inviato a nome di qualcun altro. È la stessa indicazione che trovi nelle buone pratiche di Contact Form 7, ed è il primo controllo che faccio quando un cliente mi dice che «il modulo non funziona più».

L’alternativa: prenotare una call

Per chi offre servizi professionali, spesso il modulo migliore è quello che non c’è: invece di avviare un rimpallo di email per trovare un orario, puoi lasciare che chi è interessato scelga direttamente uno spazio libero nel tuo calendario. Strumenti come le pagine di prenotazione di Google Calendar, disponibili anche con un account gratuito, o servizi come Calendly rendono la cosa semplicissima, e lo stesso principio si può integrare in WordPress con un plugin dedicato.

È esattamente la scelta che ho fatto su questo blog: nella pagina contatti trovi i miei recapiti diretti, e al posto del classico modulo c’è la possibilità di prenotare una call conoscitiva di trenta minuti scegliendo giorno e orario dal calendario. Meno spam da filtrare, meno email da smistare e conversazioni che partono già con un appuntamento fissato.

Tirando le somme

Un buon modulo di contatto nel 2026 è fatto di quattro ingredienti: un plugin leggero e mantenuto, un antispam che non tormenta gli utenti, un’informativa chiara con dati ridotti al minimo e un invio delle email autenticato con SMTP, SPF, DKIM e DMARC; e se il tuo obiettivo è parlare con potenziali clienti, una pagina di prenotazione può valere più di qualsiasi modulo. Per approfondire, la documentazione di Contact Form 7 sulle buone pratiche di invio, le linee guida di Google per i mittenti e i provvedimenti del Garante citati sopra sono un ottimo punto di partenza, mentre per altri temi tecnici trovi spunti nella categoria WordPress e nella guida su come scegliere un tema WordPress.

Se hai una storia di moduli invasi dallo spam o di email misteriosamente sparite nel nulla, raccontala nei commenti, e se l’articolo ti è stato utile condividilo con chi ha ancora un modulo che spedisce come wordpress@. E se vuoi una mano a sistemare moduli, email o il sito intero, puoi prenotare una call conoscitiva gratuita o scrivermi dalla pagina dei contatti.

Maurizio Pelizzone

Maurizio Pelizzone

Sono Maurizio Pelizzone, sviluppatore WordPress da oltre vent'anni e consulente di intelligenza artificiale a Torino, co-fondatore di Mavida. Realizzo plugin e integrazioni su misura per WordPress e WooCommerce, automazioni dei processi con n8n e agenti AI, e tengo corsi e workshop su Claude Code, prompt engineering e vibe coding, in presenza a Torino o da remoto. Sono speaker ai WordCamp e autore della guida gratuita in italiano a Claude Code; se vuoi parlarmi di un progetto puoi prenotare una call conoscitiva.

7 commenti

  1. Effettivamente sembra che abbiano fatto solo una traduzione anche se la mail che mi hanno mandato sembra abbastanza chiara:

    >Andrea Paiola wrote:
    >Ciao Maurizio.
    >Ho visto che sei interessato ad AJAX.
    >Daniele Florio ed io abbiamo sviluppato AHAH
    >http://www.gizax.it/articles/2005/ahah/
    >ciao,
    >Andrea.

    Penso che manderò una mail ad Andrea chiedendo maggiori informazioni.

    Grazie per dritta 🙂

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *