how do i add a contact form without it quietly going to spam
web · 2026-10-12 · 3 min
a contact form is a small html form that sends what the visitor typed to something that can deliver email: a plugin on wordpress, a form block in wix, or a service like formspree when the site is hand-coded. the part people get wrong is everything after the button.
pick the boring option
on wordpress, install one form plugin and use it everywhere: wpforms, contact form 7, or the block your theme already ships. wix and squarespace have forms built in, shopify needs an app. a plugin beats a mailto link because entries are stored where you can open them, not only sent to an inbox that may file them as spam.
if the site is hand-coded, netlify forms need one attribute on the form tag. elsewhere, formspree or basin give you an endpoint to paste into the action. the free tiers cover a few messages a week.
what to check before publishing
send a real test from your phone, on mobile data, not from the preview. then check three things: the email arrives and is not in spam, the reply-to header carries the visitor's address so hitting reply reaches them, and the sender sees a confirmation instead of the same empty form.
add a privacy checkbox linked to your privacy policy, and one anti-spam measure. a honeypot field is invisible to people and stops most bots. recaptcha works but loads a google script and asks visitors to prove they are human.
the failures are silent
two things break quietly. the form says sent and nothing arrives, usually because the sending domain is not verified with the mail provider. or it arrives in an inbox nobody opens, because the address was set once and never changed. test the first, assign the second to a person.
a form is not an inbox. it is a promise that someone will answer. if the answer takes three days, the form worked and the business did not.
faq
can i just use a mailto link instead?
you can, and on a desktop with a configured mail client it works. on a phone it opens whatever app exists, or nothing. it exposes your address to scrapers and leaves no record of the attempt. use it next to the form, not as the form.
why do my form emails end up in spam?
usually because the site sends through a generic server instead of a real mail service, so the message fails authentication checks. sending through the smtp service the plugin recommends, or through a form service with its own verified domain, fixes most of it.
how many fields should the form have?
name, email, message, and a privacy checkbox. every extra field costs completions: phone number and budget are questions for the reply, not gates before the first contact. say why if you need one.