How to Create a Contact Form in WordPress

Most WordPress sites have a contact page, but a surprising number of them don’t actually work properly. The form looks fine on the front end, but messages vanish — either due to misconfigured email settings or a plugin that was never fully set up. Getting this right from the start saves a lot of troubleshooting later.

A working contact form does more than route messages. It controls how visitors reach you, filters out spam before it hits your inbox, and makes your site feel legitimate and professional. A broken or missing form quietly costs you enquiries you’ll never know about.

When I set this up on WordPress sites, I use WPForms Lite — it’s free, beginner-friendly, and has a drag-and-drop builder that makes the whole process straightforward. This guide walks through installation, configuration, spam protection, and how to confirm your form is actually delivering messages.

Quick Answer

Install WPForms Lite from the plugin directory, use the built-in contact form template, configure the notification email to an address you check, add the form to a page using the WPForms block, and test it before publishing. The whole process takes around 15 minutes.

Why a Plugin Is the Right Approach

WordPress doesn’t include a built-in contact form, so you need a plugin. The free tier of WPForms handles everything most sites need: name, email, message fields, basic spam protection, and email notifications. It’s also the most widely used form plugin in the WordPress ecosystem, which means it’s well-maintained and well-documented.

Other options like Contact Form 7 are popular too, but WPForms Lite’s visual builder makes it easier to set up without editing any shortcode or template files. For a contact form, where you just want it to work reliably without spending time on configuration, that’s worth something.

How to Create a Contact Form in WordPress

1. Install WPForms Lite

  1. Go to Plugins → Add New Plugin in your WordPress dashboard.
  2. Search for WPForms.
  3. Click Install Now next to WPForms – Easy Form Builder, then click Activate.
  4. WPForms will prompt you through a brief setup wizard. You can skip this and go directly to creating your first form.

2. Create a New Form

  1. Go to WPForms → Add New.
  2. Give the form a name — something like “Contact Form”.
  3. Select the Simple Contact Form template. This creates a form with Name, Email, and Message fields already in place.
  4. You can add, remove, or rearrange fields using the drag-and-drop builder. For most contact forms, the default three fields are sufficient.

3. Configure Spam Protection

WPForms Lite includes anti-spam features under Settings → Spam Protection and Security within the form builder. Enable the WPForms anti-spam token — this is a hidden field that blocks most automated bot submissions without adding a CAPTCHA that visitors have to interact with. It works silently and is effective against the majority of spam bots.

If you’re getting significant spam through the form even with this enabled, you can also activate hCaptcha or reCAPTCHA integration, though this requires setting up API keys separately. For most new sites, the anti-spam token is enough. This is a different challenge from comment spam — if you’re also managing comments on your site, there’s a separate guide on setting up WordPress comment spam protection.

4. Set Up Email Notifications

Go to Settings → Notifications in the form builder. This controls where form submissions are sent.

  • Send To Email Address — change this from the default {admin_email} to a specific address you check regularly. The admin email in WordPress settings isn’t always the one you want form submissions going to.
  • Email Subject — leave as default or customise. Something like “New message from {field_id=”1″}” includes the sender’s name, which is useful.
  • From Email — keep this as {admin_email}. Changing it to the visitor’s email address as the sender can cause emails to land in spam.

One important note: WPForms uses WordPress’s built-in wp_mail() function to send emails, which relies on your server’s mail configuration. Many shared hosting environments don’t deliver these reliably. If you find form emails going missing or landing in spam, setting up SMTP in WordPress fixes this by routing emails through an authenticated mail server instead.

5. Add the Form to a Page

  1. Save the form and go to your Contact page (or create one via Pages → Add New Page).
  2. In the block editor, add a new block and search for WPForms.
  3. Select your contact form from the dropdown in the block.
  4. Publish or update the page.

6. Test the Form

Visit the contact page as a regular visitor and submit a test message using a different email address — not the one the notifications are sent to. Confirm the email arrives in your inbox within a few minutes. If it doesn’t show up in your main inbox, check your spam folder first before assuming the configuration is wrong.

Practical Tips

  • Keep forms short. Name, email, and message is usually enough for a contact form. Adding too many required fields increases abandonment. Only add fields you’ll actually use when responding.
  • Enable confirmation messages. Under Settings → Confirmations in the form builder, set a thank-you message that appears after submission. Something simple like “Thanks — I’ll get back to you within 1–2 business days” sets clear expectations.
  • Store entries in WordPress. WPForms Lite saves form submissions in WPForms → Entries. This is useful as a backup if email delivery fails — you can check submissions directly in the dashboard without relying solely on email.
  • Check the form periodically. Submit a test message every few months to confirm the form is still delivering. Plugin updates or hosting changes can occasionally break email delivery without any obvious error message.

Common Mistakes

  • Not testing email delivery before launch. The form may appear to work on the front end while silently failing to deliver messages. Always send a test submission and confirm it arrives.
  • Using the visitor’s email as the From address. This causes most email servers to flag your notification emails as spoofed, sending them straight to spam. Keep the From address as your own admin email.
  • Skipping spam protection. Even small, low-traffic sites attract bot traffic. Enabling the anti-spam token takes ten seconds and saves you from clearing out junk submissions later.
  • Pointing submissions to an unmonitored inbox. If the default admin email is an old address you rarely check, form submissions will pile up unread. Set the notification address to something you check daily.

When to Use a Different Plugin

WPForms Lite covers most contact form needs without requiring an upgrade. If you need multi-step forms, conditional logic, file uploads, or payment collection, you’ll either need WPForms Pro or a different plugin like Gravity Forms. For a simple contact form on a standard WordPress site, the free version is more than adequate.

Contact Form 7 is a long-standing alternative with similar functionality. It uses shortcodes rather than a visual builder, which some developers prefer for its simplicity and smaller footprint. The configuration is less visual but the functionality is comparable for basic use.

Once your SMTP is working reliably, the next step is making sure the email address itself looks professional. Setting up a professional email address for your website using your own domain name makes a real difference to how clients and visitors perceive your site.

Conclusion

Install WPForms Lite, use the contact form template, set the notification address to one you check regularly, enable spam protection, and test before publishing. The form will handle the rest in the background without needing ongoing attention — unless email delivery stops working, in which case setting up SMTP is the fix.