How to Add a Contact Form to Your WordPress Site

Every business website needs a way for visitors to get in touch. Without a contact form, potential customers have to copy your email address, open their email client, and send a message manually — friction that costs you leads.

A contact form on your WordPress site makes it effortless: fill in a name, email, and message, click Send. Submission arrives directly in your inbox.

WordPress doesn't include a contact form natively — you add one through a plugin. This guide shows you how to add a contact form using the three most popular options, including a completely free method that requires no plugins at all.

Before You Start: Ensure Email is Working

A contact form submission is useless if the notification email never arrives. Before setting up your form, make sure WordPress can reliably send emails.

The problem: WordPress's default email uses PHP's mail() function, which is frequently blocked or spam-filtered by email providers like Gmail, Yahoo, and Outlook.

The fix: Install WP Mail SMTP and configure it to send through a proper SMTP server (Gmail, SendGrid, Brevo). This ensures your contact form notifications actually arrive in your inbox.

Option 2: Contact Form 7
Most Popular Free Plugin — Tag-Based

Contact Form 7 has been the most-installed WordPress contact form plugin for over a decade. It's free, flexible, and widely supported — though its interface is less visual than WPForms.

Step 1: Install Contact Form 7

Go to Plugins → Add New → search Contact Form 7 → install and activate

Step 2: Review the Default Form

After activation, Contact Form 7 creates a default form. Go to Contact → Contact Forms — you'll see "Contact form 1" already created.

Step 3: Customize the Form

Click Edit next to "Contact form 1." The Form tab shows form markup in shortcode syntax:

Contact Form 7 Shortcode
[text* your-name]
[email* your-email]
[textarea your-message]
[submit "Send"]

How to read this:

  • [text* your-name] — required text field named "your-name"
  • [email* your-email] — required email field
  • [textarea your-message] — message text area
  • [submit "Send"] — submit button

To add fields, add tags like: [tel your-phone] for phone, [select your-subject "General Inquiry" "Support" "Sales"] for dropdown.

Important: Add labels above each field for accessibility:

With Labels
<label>Your Name</label>
[text* your-name]

<label>Your Email</label>
[email* your-email]

<label>Your Message</label>
[textarea your-message]

[submit "Send"]

Step 4: Configure Mail Settings

Click the Mail tab:

  • To: Your email address (where notifications are sent)
  • From: [your-name] <[email protected]>
  • Subject: Contact Form from [your-name]
  • Reply-To: [your-email] — lets you reply directly to the sender

Step 5: Save and Embed

Click Save
Copy the shortcode: [contact-form-7 id="123" title="Contact form 1"]
Add a Shortcode block to your Contact page
Paste the shortcode → Save/Update the page
Option 3: Block Editor / Google Forms
No Plugin Required

For the absolute simplest case — a minimal contact form without any plugin — WordPress's native block editor approach works well for very basic needs.

Critical limitation: Native WordPress blocks don't have a form submission handler. You need to embed a third-party form service like Google Forms.

Using Google Forms (Free, no-plugin method):

Create a form at forms.google.com
Click Share → Embed → copy the iframe code
In WordPress: add a Custom HTML block to your Contact page
Paste the iframe embed code
Set up email notifications in Google Forms settings
Tip: The Google Form is hosted by Google, submissions go to a Google Sheet, and you can set up email notifications in Google Forms settings. Not as polished as WPForms, but requires zero plugins.

Which Contact Form Plugin Should You Choose?

Factor WPForms Lite Contact Form 7
Ease of use ⭐⭐⭐⭐⭐⭐ ⭐⭐⭐
Visual builder ✅ Drag-and-drop ❌ Code-based
Free features Basic forms Basic forms
Premium upgrades Yes Via add-ons
Best for Beginners Experienced users

Essential Contact Form Best Practices

  • Add spam protection. Both WPForms and Contact Form 7 support reCAPTCHA integration — add it to prevent spam submissions. For WPForms: WPForms → Settings → CAPTCHA. For CF7: add [cf7-recaptcha] to your form.
  • Include your email address on the page as well. Some visitors prefer to send email directly. Having both a form and a visible email address serves everyone.
  • Test your form after every WordPress update. Plugin updates occasionally break form functionality. After any major update to WPForms, CF7, or WordPress core, submit a test form.
  • Set up a thank you page. Redirect users to a dedicated thank you page after submission — provides better experience and allows you to track form conversions in Google Analytics.

Frequently Asked Questions

Q: Why am I not receiving contact form notification emails?
A: Almost always an email deliverability issue. Install WP Mail SMTP and configure it to use a proper SMTP provider (Gmail, SendGrid, Brevo). This fixes the vast majority of missing contact form notification problems.
Q: Can I add a contact form to the WordPress sidebar?
A: Yes. WPForms has a Widget that you can add to any sidebar widget area. Contact Form 7 can be added to any text widget by pasting the shortcode.
Q: How do I view contact form submissions I may have missed?
A: WPForms Lite stores submitted entries (premium required). Contact Form 7 free doesn't store entries — notifications are the only record. Install the CF7 Database Addon (free) to store CF7 submissions in WordPress.
Q: Can I add file upload to a contact form?
A: Both plugins support file uploads — in WPForms, drag the "File Upload" field into your form. In Contact Form 7, add [file your-file] to the form. Note: allowing file uploads requires careful spam and security considerations.

Final Thoughts

Adding a contact form to WordPress takes under 10 minutes with WPForms. Install the plugin, use the Simple Contact Form template, add it to your Contact page with the WPForms block, and test it.

The one step most people forget: configure SMTP email delivery first. Do that, and your contact form notifications will arrive reliably every time.

Contact us to discuss professional WordPress setup and development
Views: 92