
After the homepage and about page, the contact page is the most important page on a blog. It is how readers ask questions, brands propose sponsorships, and other bloggers suggest collaborations, and Google’s quality guidelines treat clear contact information as a trust signal. This guide shows how to build a contact page in WordPress with a free form plugin in about 15 minutes, plus the two steps most tutorials skip: making sure messages actually reach your inbox, and keeping spam out. Updated October 2026 for the block editor.
Why Use a Contact Form Instead of an Email Address?
- Less spam: bots scrape email addresses from web pages. A form hides your address.
- Better messages: you can ask for exactly what you need (name, website, reason for contact) so you can reply in one go.
- Filtering: a “reason for contact” dropdown lets you route sponsorship, support, and general messages into different Gmail labels.
Choose a Form Plugin
All of these are free and work with the block editor:
- Contact Form 7: 5 million+ installs, lightweight, completely free. Forms are edited as simple text with tags rather than drag and drop. Used in the tutorial below.
- WPForms Lite: drag and drop builder with templates; the easiest for beginners. Paid plans add advanced fields and integrations.
- Fluent Forms: drag and drop with a generous free version, conditional logic, and good performance.
- Jetpack: if you already use it, its Form block adds a simple contact form with no extra plugin.
Step 1: Install Contact Form 7
Go to Plugins > Add New Plugin, search for “Contact Form 7”, click Install Now, then Activate. A new Contact menu appears in the dashboard.

Step 2: Create the Form
Go to Contact > Add New and give the form a name (only you see it). The plugin starts you with a working form: name, email, subject, and message fields. Each field is a “tag” in square brackets wrapped in a label. For a simple blog contact page, this default is enough.

Optional: add a “reason for contact” dropdown
Place the cursor above the message field, click the drop-down menu button in the toolbar, tick Required field, give it a name such as reason, and type one option per line (General question, Sponsorship or advertising, Guest post, Support). Click Insert Tag and wrap it in a label. The result looks like this:
<label> Reason for contact
[select* reason "General question" "Sponsorship or advertising" "Guest post" "Support"] </label>
If you accept guest posts or sponsorships, this one field saves hours of back-and-forth.
Step 3: Set Where Messages Go
Open the Mail tab. The important fields:

- To: the address that receives messages.
- From: leave it as an address on your own domain (for example wordpress@yourdomain.com). Using the visitor’s address here makes your email provider treat the message as spoofed and it often lands in spam.
- Additional headers: keep
Reply-To: [your-email]so clicking Reply answers the visitor directly. - Subject: include the reason tag, for example
[reason] from [your-name], so you can filter in Gmail. - Mail (2): optional auto-reply to the visitor (“Thanks, I reply within two working days”).
The Messages tab holds the success and error text visitors see; the defaults are fine. Click Save.
Step 4: Make Sure Emails Arrive (SMTP)
This is the step most people skip, and the reason many contact forms silently lose messages. By default WordPress sends mail through your web server, which Gmail and Outlook often treat as spam or reject. Install a free SMTP plugin such as FluentSMTP or WP Mail SMTP and connect it to a proper sending service: your Google Workspace or Microsoft 365 account, or a free tier of Brevo, SendGrid, or Amazon SES. Then use the plugin’s Send test email button and submit your own form once to confirm a message arrives.
Step 5: Block Spam
A public form will attract bots. Contact Form 7 integrates with Cloudflare Turnstile and reCAPTCHA v3 under Contact > Integration; Turnstile is free and invisible to most visitors. Add Akismet as well if you already use it for comments; Contact Form 7 checks submissions against it automatically. Those two together stop almost all form spam.
Step 6: Create the Contact Page
Copy the form’s shortcode from the top of the form editor or the Contact Forms list:

- Go to Pages > Add New Page and title it “Contact”.
- Write a short intro: what people can contact you about, what you do not respond to (“I do not accept link insertion requests”), and how long you usually take to reply.
- Add a Shortcode block (or use the Contact Form 7 block) and paste the shortcode.
- Optionally add your social profiles or a business address below the form.
- Publish, then add the page to your header or footer menu under Appearance > Menus or the Site Editor’s navigation block.
To show the form in a sidebar or footer instead, add a Shortcode block to that widget area in Appearance > Widgets (or the template part in the Site Editor).
What to Put on a Good Contact Page
- A one-line welcome and what you are happy to hear about.
- Clear rules for sponsorships, guest posts, and PR pitches, or a link to a separate “Advertise” page.
- Your typical response time.
- Links to your FAQ or support docs if you sell products, so common questions never reach the form.
- A privacy note: what you do with the information and a link to your privacy policy (required in the EU).
Frequently Asked Questions
Why am I not receiving contact form emails?
Almost always the server mail problem in step 4. Install an SMTP plugin, connect a real sending service, send a test, and check your spam folder. Also make sure the From address is on your own domain.
Do I need a contact page if I have an email address?
A form is better: it hides your address from spam bots and collects the details you need. Many sites show both, with the email as an image or for business inquiries only.
Which is better, Contact Form 7 or WPForms?
Contact Form 7 is lighter and fully free; WPForms is easier with drag and drop and templates. For a simple blog contact form, either works well.
Can I store messages in WordPress as well as email?
Yes. WPForms Pro and Fluent Forms store entries in the dashboard; for Contact Form 7, the free Flamingo plugin from the same developer saves every message.
Leave a Reply