How to Create a Contact Form in WordPress (Step-by-Step Guide)

Learn how to create a contact form in WordPress with this complete step-by-step tutorial. From choosing a plugin to customizing fields, notifications, and testing.

If you're wondering how to create a contact form in WordPress, you're not alone — it's one of the most searched WordPress questions every year. WordPress doesn't ship with a built-in contact form, so you need a plugin. This WordPress contact form tutorial walks you through the entire process from start to finish, with screenshots-level detail at every step.

Already familiar with the basics? Our quick setup guide covers the essentials in under 5 minutes. This tutorial goes deeper — covering customization, notifications, spam protection, CRM integration, and everything in between.

Why Every WordPress Site Needs a Contact Form

Before we get into the how, let's talk about the why. Some site owners still rely on publishing their email address in plain text. Here's why that's a bad idea:

  • Spam magnets. Bots scrape email addresses from websites constantly. Publishing yours in plain text is an open invitation.
  • No structure. When someone emails you directly, they might forget to include key details. A form lets you ask for exactly what you need.
  • No tracking. An email in your inbox doesn't tell you which page someone was on, when they visited, or what they're interested in. Forms capture that context.
  • No backup. If your email goes down or a message gets caught in spam, it's gone. Form plugins store submissions in your WordPress database.
  • Professionalism. A clean contact form signals that you're a real business, not a side project.

For most sites, a contact form is the single most important conversion element on the page. It's the bridge between a visitor and a customer.

Choosing the Right Form Plugin

There are dozens of WordPress form plugins. Here's how the major ones stack up for creating a simple contact form:

PluginFree VersionEntry StorageCRM Built InBuilder Type
SkunkForms✅ Full✅ Yes✅ YesBlock Editor
WPForms Lite✅ Limited❌ Paid only❌ NoDrag & Drop
Contact Form 7✅ Full❌ No❌ NoCode/Markup
Fluent Forms✅ Generous✅ Yes❌ SeparateDrag & Drop
Gravity Forms❌ Paid only✅ Yes❌ NoDrag & Drop

For this tutorial, we'll use SkunkForms because it stores entries, includes a CRM, and works natively with the block editor — all for free. But the principles apply to any plugin.

If you're evaluating plugins in more detail, our 2026 WordPress forms comparison breaks down every major option.

Step 1: Install SkunkForms

Time: 2 minutes

  1. Log in to your WordPress dashboard
  2. Navigate to Plugins → Add New
  3. In the search bar, type "SkunkForms"
  4. Click Install Now next to the SkunkForms plugin
  5. Once installed, click Activate

Alternatively, you can download the plugin directly and upload the .zip file via Plugins → Add New → Upload Plugin.

After activation, you'll see a new SkunkForms menu item in your WordPress sidebar. You don't need to configure anything yet — the plugin works out of the box.

What just happened?

SkunkForms registered its custom blocks in the WordPress block editor. You now have access to form blocks you can drop into any page or post. It also set up a database table to store form submissions and initialized the built-in CRM.

Step 2: Create a Contact Page

Time: 1 minute

If you don't already have a dedicated contact page:

  1. Go to Pages → Add New
  2. Title it "Contact" or "Contact Us" or "Get in Touch"
  3. This is where your form will live

Pro tip: URL structure

WordPress will automatically create the slug /contact/ from your title. Keep it short and clean. Avoid slugs like /contact-us-today-for-a-free-consultation/ — nobody's typing that, and search engines prefer simplicity.

Step 3: Add the Form Block

Time: 1 minute

  1. In your contact page, click the + button to add a new block
  2. Search for "SkunkForms"
  3. Click the SkunkForms Form block to insert it
  4. You'll see a template picker — select Contact Form

The default contact form template includes four fields:

  • Name (text field, required)
  • Email (email field, required)
  • Subject (text field, optional)
  • Message (textarea, required)
  • Submit button

This is a solid starting point. For most sites, these four fields are all you need. Research consistently shows that fewer fields mean higher conversion rates.

Step 4: Customize Your Fields

Time: 3-5 minutes

Click on any field in the form to select it. The block sidebar on the right shows all configuration options:

Editing existing fields

For each field, you can customize:

  • Label — What the user sees (e.g., "Your Name", "Email Address")
  • Placeholder — Ghost text inside the field (e.g., "John Smith")
  • Required — Toggle whether the field must be filled out
  • Width — Full width, half width, or third width
  • Help text — Small text below the field for additional instructions

Adding new fields

Click the + button inside the form block to add new field types:

  • Text — Single line of text
  • Email — Validates email format
  • Textarea — Multi-line text for longer messages
  • Phone — Phone number with optional formatting
  • Select — Dropdown menu
  • Radio — Single-choice options
  • Checkbox — Multiple-choice options
  • Number — Numeric input
  • URL — Website address
  • Date — Date picker
  • File Upload — Accepts file attachments (Pro)

Removing fields

Don't need the Subject field? Click it, then press Delete or Backspace. Or click the three-dot menu on the block toolbar and select Remove Block.

Reordering fields

Drag fields up or down using the grip handle on the left side of each block. Or use the up/down arrows in the block toolbar.

Field layout example

For a professional-looking form, try this layout:

  • Row 1: Name (half width) + Email (half width)
  • Row 2: Phone (half width) + Company (half width)
  • Row 3: Message (full width)
  • Row 4: Submit button

This looks clean on desktop and stacks properly on mobile.

Step 5: Configure the Submit Button

Click the submit button block to customize:

  • Button text — "Send Message", "Get in Touch", "Submit" — whatever fits your brand
  • Loading text — What shows while the form submits (e.g., "Sending...")
  • Success message — What the user sees after submitting (e.g., "Thanks! We'll get back to you within 24 hours.")
  • Button style — Color, padding, border radius

What NOT to put on your submit button

Avoid vague text like "Submit" or "Click Here." Use action-oriented labels:

  • ✅ "Send Message"
  • ✅ "Get in Touch"
  • ✅ "Request a Quote"
  • ❌ "Submit"
  • ❌ "Click Here"
  • ❌ "Go"

Step 6: Set Up Email Notifications

Time: 2 minutes

By default, SkunkForms sends submission notifications to your WordPress admin email. To change this:

  1. Click the main SkunkForms Form block (the outer container, not a field)
  2. In the sidebar, find the Notifications section
  3. Configure:

Admin notification

  • To: Your email address (or multiple, separated by commas)
  • Subject: "New contact form submission from {name}"
  • Reply-To: {email} (so you can hit Reply to respond directly to the lead)
  • Body: Uses all submitted fields by default

Auto-responder (optional but recommended)

Enable the auto-responder to send the user a confirmation email:

  • To: {email} (the submitter's email)
  • Subject: "Thanks for getting in touch!"
  • Body: "Hi {name}, we received your message and will respond within 24 hours."

This small touch makes a big difference. People want to know their submission went through. It also sets expectations for response time — which directly impacts lead conversion.

Step 7: Set Up Spam Protection

Time: 1 minute

Nobody wants an inbox full of spam submissions. SkunkForms includes three layers of spam protection out of the box:

  1. Honeypot field — An invisible field that bots fill out but humans don't. Enabled by default.
  2. Token validation — Server-side check that the form was submitted from your site. Enabled by default.
  3. Google reCAPTCHA v3 — Optional. To enable:
    • Go to SkunkForms → Settings → Spam Protection
    • Enter your reCAPTCHA v3 site key and secret key (get them free at Google's reCAPTCHA admin)
    • Toggle on reCAPTCHA for your form

For most sites, the honeypot + token validation is sufficient. Add reCAPTCHA if you're getting hit with sophisticated bot traffic. Check the spam protection docs for advanced configuration.

Step 8: Connect to Your CRM

Time: 0 minutes (it's automatic)

If you're using SkunkForms, every form submission automatically creates a contact in SkunkCRM. No configuration needed. No Zapier. No webhooks. No middleware.

When someone submits your contact form:

  • A contact record is created with their name and email
  • The submission is logged in the contact's activity timeline
  • A deal can optionally be created in your pipeline
  • Tags are applied based on which form they filled out

This means you can immediately see all your leads in one place, track follow-ups, and never let a submission fall through the cracks.

If you're using a different form plugin and want CRM functionality, check our guide on connecting WordPress forms to a CRM. But honestly, having it built in saves you a headache.

Step 9: Test Everything

Time: 3 minutes

Before you announce your contact page to the world, test it thoroughly:

Desktop testing

  1. Open your contact page in a browser (logged out of WordPress)
  2. Fill out every field and submit the form
  3. Verify the success message appears
  4. Check your email for the admin notification
  5. Check the submitter email for the auto-responder (if enabled)
  6. Go to SkunkForms → Entries and verify the submission is stored
  7. Go to SkunkCRM → Contacts and verify the contact was created

Mobile testing

  1. Open the same page on your phone (or use browser dev tools)
  2. Verify the form is readable and usable on a small screen
  3. Submit a test entry from mobile
  4. Verify everything works the same as desktop

Edge case testing

  1. Try submitting with empty required fields — do you get clear error messages?
  2. Try submitting with an invalid email — does validation catch it?
  3. Try submitting twice rapidly — does it handle duplicate prevention?

Common issues

  • Emails not arriving? Check your spam folder first. Then consider installing an SMTP plugin like WP Mail SMTP to improve email deliverability.
  • Form not showing? Make sure the page is published (not draft) and you're viewing it logged out.
  • Styling looks off? Check for theme CSS conflicts. SkunkForms uses minimal styling to work with most themes.

Step 10: Publish and Link Your Contact Page

Time: 2 minutes

Your form works. Now make sure people can find it:

  1. Add to main navigation — Go to Appearance → Menus (or the Customizer) and add your Contact page to the primary menu
  2. Add to footer — Many themes include a footer menu. Add the contact page there too.
  3. Link from key pages — Your About page, Services page, and homepage should all link to your contact form
  4. Add to blog posts — Consider adding a CTA at the end of posts: "Have questions? Get in touch."

Beyond the Basics: What's Next?

Once your basic contact form is working, here are logical next steps:

Create specialized forms

A single contact form works, but dedicated forms convert better:

  • Quote request form — Add budget range, timeline, and project type fields
  • Support form — Add order number and issue category fields
  • Consultation booking — Add preferred date/time and service interest
  • Client intake form — Collect detailed project information upfront (see our intake form guide)

Each form can have its own notification rules, CRM tags, and pipeline stages. See our docs for advanced form configuration.

Track conversions

Once you have forms collecting data, measure their performance:

  • Which forms get the most submissions?
  • What's your form-view-to-submission conversion rate?
  • Which pages drive the most form fills?

Nurture your leads

A form submission is the start of a relationship, not the end. Use your CRM to:

How to Create a Contact Form in WordPress: Quick Recap

Here's the entire process at a glance:

  1. Install a form plugin (SkunkForms is free)
  2. Create a contact page
  3. Add the form block and choose a template
  4. Customize your fields (keep it to 3-5)
  5. Configure notifications and auto-responders
  6. Enable spam protection
  7. Connect to your CRM (automatic with SkunkForms)
  8. Test on desktop and mobile
  9. Publish and link from your navigation

Total time: about 15 minutes. Total cost: $0.

The hardest part isn't building the form — it's what comes after. Having a system to track and follow up with every lead is what separates sites that generate revenue from sites that just collect dust.

Ready to get started? Download SkunkForms free and have your first form live in under 10 minutes.

Ready to build forms that don't stink?

Get started with SkunkForms — free forever, no credit card required.

Start Free →