WordPress form plugins: features, spam protection and privacy

By: Irina Shvaya | October 1, 2026
This guide is part of our WordPress resource hub: costs and hosting, the block editor, plugins, SEO and speed, security, maintenance, WooCommerce, development, comparisons and migrations.

WordPress core has no form builder. Comments aside, if you want a contact form, a quote request, a booking request or a payment form, you need a plugin (or a third-party embed). Form plugins range from free, minimal tools such as Contact Form 7 to full builders with conditional logic, payments, file uploads and CRM integrations.

For most businesses the form is the conversion point of the whole site, so the plugin decision matters more than it first appears. A form that drops submissions, lets spam through or sends personal data somewhere you did not intend is a real business problem.

This guide explains what to look for (entry storage, spam protection, privacy, email delivery, integrations and accessibility), how to evaluate form plugins, and how well-known options differ. It is a neutral guide, not a ranking.

Key Takeaways

  • WordPress core does not include a form builder; every contact form comes from a plugin or an external embed.
  • Check whether a plugin stores entries in your database: Contact Form 7, for example, does not by default, while most builders do.
  • Spam protection options include honeypots, Cloudflare Turnstile, reCAPTCHA, hCaptcha and Akismet; most builders support several.
  • Stored entries are personal data; plan retention, access and how you will answer export or erasure requests.
  • Many "missing" form emails are delivery problems, fixed by sending through SMTP or an email API rather than by changing form plugins.
  • Free tiers differ: some charge a transaction fee on payments, and many reserve conditional logic, file uploads or integrations for paid plans.

What a form plugin needs to do

Collect and deliver submissions

At minimum, a form must validate input, send a notification email and show a confirmation. Most builders also store each submission as an entry in the WordPress database, so you can find it later even if the email never arrives. Contact Form 7 takes the opposite approach: its WordPress.org listing says it does not write user personal data to the database in its default configuration, so submissions exist only in the email unless you add a storage plugin.

Stop spam

Public forms attract bots within days. Common defenses:

  • Honeypot fields: hidden fields that bots fill and people do not. Invisible to users.
  • Cloudflare Turnstile, Google reCAPTCHA or hCaptcha: challenge services, often invisible unless traffic looks suspicious.
  • Akismet: Automattic's filtering service; free for personal blogs, paid for commercial sites, according to its WordPress.org listing.
  • Rate limiting and blocklists: limits on submissions per visitor, or rules for known spam phrases.

Contact Form 7 supports reCAPTCHA, Akismet and Turnstile integrations; WPForms Lite lists built-in spam protection plus hCaptcha, reCAPTCHA and Turnstile; Fluent Forms lists reCAPTCHA, hCaptcha, Akismet and a honeypot.

Integrate with your other tools

Forms often need to push data to an email platform, a CRM, a spreadsheet, a payment processor or Zapier. This is where free and paid tiers differ most. For more on connecting forms to sales systems, see integrating CRMs and marketing automation with WordPress.

Be accessible

Forms need visible labels, clear error messages, keyboard support and sensible focus order. Test with a keyboard and a screen reader, and check that CAPTCHA steps have accessible alternatives. Our WCAG accessibility guide for WordPress covers forms in detail.

Privacy and data handling

Every stored entry is personal data, so treat forms as part of your privacy setup:

  • Collect only what you need. Every extra field is extra data to protect.
  • Know where data goes. Contact Form 7's own listing notes that when third-party services are enabled, the submitter's personal data, "including their IP address, may be sent to the service provider". The same is true of any form plugin using CAPTCHA, spam filtering or integrations.
  • Set retention. Delete old entries on a schedule, or disable entry storage if email copies are enough.
  • Use core privacy tools. Since WordPress 4.9.6, Tools > Export Personal Data and Erase Personal Data handle requests, but only for core and "participating plugins". Check whether your form plugin registers its entries with these tools.
  • Update your privacy policy to name the services that receive form data.
  • Do not use general form plugins for regulated data (such as health information) without checking the vendor's compliance terms and your hosting setup.

Make sure the emails arrive

By default WordPress sends mail through the server's PHP mail function, which many inboxes treat as suspicious. When form notifications go missing, the fix is usually to send through an authenticated SMTP or email API service, for example with WP Mail SMTP (4+ million installs), and to set up SPF, DKIM and DMARC on your domain. Storing entries in the database gives you a fallback while you fix delivery.

How to evaluate a form plugin

  1. Feature fit. List what you need now and in a year: conditional logic, multi-step forms, file uploads, payments, calculations, user registration.
  2. Which tier includes it. WPForms Lite, for example, reserves file uploads, multi-page forms and conditional logic for Pro. Fluent Forms includes conditional logic free but charges a 1.9% fee on Stripe payments in the free version, which Pro removes.
  3. Entry storage and export. Check that entries are stored, searchable and exportable (CSV at minimum).
  4. Spam tools. Confirm it supports the CAPTCHA or filtering service you prefer.
  5. Performance. Check whether scripts and styles load only on pages with a form.
  6. Maintenance and security history. Forms handle untrusted input and sometimes file uploads, a common source of vulnerabilities. Check "last updated", "tested up to" and past security fixes.
  7. Lock-in. Forms and entries are stored in plugin-specific formats. Check whether you can export entries and whether a migration path exists before you build dozens of forms.

Well-known form plugins

Listed in no particular order. Install bands are from WordPress.org and pricing from each vendor's site, as of October 2026. Regular prices are shown; first-year discounts are common.

PluginSummaryActive installs (WordPress.org)Pricing model (vendor site)
Contact Form 7Free, markup-based forms; no entry storage by default10+ millionFree
WPFormsDrag-and-drop builder with templates and payment forms5+ million (Lite)Free Lite; Basic $99, Plus $199, Pro $399, Elite $599 per year
Gravity FormsPremium builder with a large add-on libraryNot on WordPress.orgPaid only: Basic $59/yr (1 site), Pro $159/yr (3 sites), Elite $259/yr (unlimited)
Fluent FormsBuilder with conditional logic, entries and conversational forms in the free version700,000+Free; Pro annual plans from $79/yr; lifetime licenses available
Ninja FormsBuilder with add-ons for calculations, payments and more600,000+Free on WordPress.org
ForminatorForms, polls, quizzes and payment forms600,000+Free on WordPress.org
Formidable FormsBuilder aimed at calculators and data-driven forms300,000+Free on WordPress.org

Sources: WPForms pricing, Gravity Forms pricing and Fluent Forms pricing. For Ninja Forms, Forminator and Formidable, check each vendor's site for paid add-ons and plans.

Matching the plugin to the job

  • One simple contact form: a free plugin with a honeypot or Turnstile, plus SMTP for delivery, is usually enough.
  • Lead generation with CRM handoff: look for native integrations with your CRM or email platform on the tier you will pay for.
  • Quotes, calculators and multi-step applications: you need conditional logic, calculations and partial-entry saving.
  • Payments and donations: compare transaction fees on free tiers, supported gateways and recurring payment support. Large or complex checkouts belong in WooCommerce rather than a form.
  • Workflows with approvals and custom logic: a builder with add-ons may stretch far; past a point, custom code is cleaner. See custom forms and workflow plugins.

Test forms after every change

Forms break quietly. A plugin update, a caching change, a new security rule or an email setting can stop submissions without any visible error on the page. Build a short test routine:

  1. After updates, submit every important form yourself from a logged-out browser.
  2. Confirm the notification email arrives in the right inbox and is not in spam.
  3. Check that the entry is stored, if your plugin stores entries.
  4. Confirm the integration fired: the contact appears in your CRM or email list, the payment shows in your processor.
  5. Check the confirmation message or thank-you page, and that conversion tracking still records the submission.
  6. Test on a phone, since most visitors will submit from one.

Caching deserves special attention. If a page with a form is cached, security tokens embedded in the form can expire and cause failed submissions. Most form and caching plugins handle this, but test after enabling any new caching or optimization feature. Our caching plugins guide covers exclusions.

Conclusion

Choose a form plugin for the forms you will need, not just the first contact form. Check entry storage, spam options, privacy handling and integrations on the tier you will actually buy, fix email delivery with SMTP, and test every form after updates. If off-the-shelf builders stop fitting, eSEOspace builds custom form and workflow features through its WordPress plugin development services. More guides are in our WordPress hub, including the essential plugins overview.

Frequently asked questions

Does WordPress have a built-in contact form?

No. Core has comments but no form builder. You need a plugin or an embedded form from another service.

Why are my WordPress form emails not arriving?

Usually because the server's default mail is rejected or filtered. Send through an authenticated SMTP or email API service and configure SPF, DKIM and DMARC. Storing entries in the database means nothing is lost while you fix it.

Which spam protection should I use?

Start with a honeypot plus an invisible challenge such as Cloudflare Turnstile or reCAPTCHA. Add a filtering service such as Akismet if spam still gets through. Check accessibility of any challenge you add.

Does Contact Form 7 save submissions?

Not by default. Its WordPress.org listing says it does not write user personal data to the database in its default configuration. Add-on plugins can store submissions if you need them.

Are form entries covered by WordPress privacy tools?

Only if the form plugin registers with them. WordPress's export and erase tools cover core data and participating plugins, so check your form plugin's documentation.

Put this into action with eSEOspace

We help businesses grow with website design that actually performs. Explore the services behind this guide:

Book a free strategy call →

Get a FREE Audit

We'll perform a comprehensive SEO, AEO, GEO & CRO audit of your website — completely free — and show you exactly how to outrank your competitors.

Don't have a site yet? Get in touch →

Get a FREE GEO/AEO/SEO Audit

We'll analyze your site's SEO, GEO, AEO & CRO — completely free — and show you exactly how to get found across Google and AI answers.

Don't have a site yet? Get in touch →

You Might Also like to Read