The Best WordPress Form Plugins

Sponsored by LeadSource. Our sponsor had no say in the ranking, the selection, or the criticism of any plugin below. The sponsored section is clearly marked and sits after the editorial content.

Every WordPress site needs a form. Contact, quote request, support ticket, newsletter signup — it is the one piece of interactive functionality almost nobody can skip.

The problem is that “form plugin” covers an enormous range. Some are a single contact form in 40KB. Others are full application platforms with payment processing, conditional logic, multi-page workflows and CRM sync. Choosing the heavyweight when you need a contact form means carrying overhead forever. Choosing the lightweight when you need conditional logic means rebuilding in six months.

This is our shortlist, organised by what each one is actually best at.

How we picked

  • Fit for a stated job. Ranked by best fit for a segment, not by overall quality.
  • Entry storage. A form that only emails submissions loses leads when email fails.
  • Performance cost. Form plugins load on every page they appear on. Weight matters.
  • Spam handling. Without workable spam control, a public form becomes unusable.
  • Exit path. Can you get your data out? Form data is business data.

1. WPForms — best for most small businesses

The drag-and-drop builder most people should start with. Templates for common cases, a genuinely beginner-friendly interface, and a free tier (WPForms Lite) that handles a standard contact form without complaint.

Strengths: the shortest path from install to working form. Conditional logic, multi-page forms and payment integrations are available as you grow.

Where it stops: the useful features are spread across licence tiers, and the upsell prompts in the admin are persistent. Costs climb once you need multiple integrations.

Best for: small business sites that want a form working in ten minutes and room to grow.

2. Gravity Forms — best for complex, data-heavy forms

The long-standing developer favourite. No free tier — it is a paid plugin — but it handles complexity that makes other builders buckle.

Strengths: conditional logic is genuinely powerful, the developer API is excellent, and the addon ecosystem covers almost every integration. If your form is really an application workflow, this is built for it.

Where it stops: no free version, the interface is functional rather than friendly, and it is overkill for a contact form.

Best for: complex forms, developer-managed sites, and anything approaching a workflow.

3. Fluent Forms — best performance-to-features ratio

The lightweight challenger that does not feel lightweight. Notably fast, with a feature set that competes directly with the established paid options.

Strengths: small footprint and quick load, with conditional logic and integrations included at a lower price point than comparable competitors.

Where it stops: a smaller community than WPForms or Gravity Forms, so there are fewer third-party tutorials when you get stuck.

Best for: performance-conscious sites that still want conditional logic and integrations.

4. Contact Form 7 — best free option for a simple form

The original, and still one of the most-installed plugins in WordPress. Free, no upsells, no account.

Strengths: completely free, extremely light, and endlessly extensible through third-party addons. Nothing is locked behind a tier because there are no tiers.

Where it stops: configuration is markup-based rather than visual, which is a genuine barrier for non-technical users. It does not store entries by default — submissions go to email only, so a mail failure means a lost lead. Spam protection needs to be added yourself.

Best for: technical users who want a free, light contact form and are comfortable with markup.

5. Formidable Forms — best for turning form data into something

Where most builders stop at collecting data, Formidable turns it into calculators, directories and front-end views.

Strengths: calculated fields are best-in-class — quote calculators, pricing estimators, scoring tools. It can display submitted entries as front-end content, which no other builder here does as well.

Where it stops: that power comes with a steeper learning curve, and the advanced features sit in higher tiers. Substantial overkill for a contact form.

Best for: calculators, quote tools and any site that needs to display submitted data.

6. Ninja Forms — best modular pricing

A visual builder that sells capability as individual addons rather than bundled tiers.

Strengths: you pay for exactly the pieces you need, and the core builder is free. Sensible if you need one specific integration and nothing else.

Where it stops: costs add up quickly once you need several addons, and bundles often work out better value.

Best for: sites needing one or two specific integrations without a full suite.

7. Forminator — best genuinely free feature set

From WPMU DEV, and unusually generous: polls, quizzes, calculators and payment fields are included free.

Strengths: the free tier includes things competitors charge for — calculations, quizzes, Stripe and PayPal fields. Excellent value if budget is the binding constraint.

Where it stops: heavier than the lightweight options, and the interface is less refined. Support is tied to the WPMU DEV ecosystem.

Best for: budget-constrained sites that need quizzes, polls or payment fields.

8. Elementor Pro Forms — best if you already run Elementor Pro

Not a standalone plugin — the form widget bundled with Elementor Pro.

Strengths: if you already hold an Elementor Pro licence, this costs nothing extra and you build the form in the same editor as the page.

Where it stops: it requires Elementor Pro, entry management is basic next to dedicated builders, and it ties your forms to your page builder. Migrating away from Elementor means rebuilding every form.

Best for: existing Elementor Pro sites with straightforward form needs.

9. Jetpack Forms — best zero-setup option

Bundled with Jetpack, and free. A block in the editor, no configuration.

Strengths: genuinely zero setup — add the block, publish. Spam filtering via Akismet is included, which alone puts it ahead of bare Contact Form 7.

Where it stops: basic feature set, no conditional logic, and it means running Jetpack with everything that entails.

Best for: simple sites already running Jetpack.

Comparison

PluginFree tierStores entries freeConditional logicWeightBest for
WPFormsYes (Lite)YesPaidMediumMost small businesses
Gravity FormsNoYesYesMediumComplex workflows
Fluent FormsYesYesFree tierLightPerformance + features
Contact Form 7YesNo — email onlyVia addonVery lightFree simple forms
Formidable FormsYesYesPaidMediumCalculators, data display
Ninja FormsYesYesPaid addonMediumModular needs
ForminatorYesYesYesHeavierBest free features
Elementor ProNoYesYesBundledExisting Elementor sites
Jetpack FormsYesYesNoBundledZero setup

Pricing and tier boundaries change often. Verify current terms on the vendor’s own pricing page before committing.

Which to choose

  • Just need a contact form, no budget: Contact Form 7 if you are technical, Jetpack Forms if not.
  • Small business, want it to just work: WPForms.
  • Speed matters and you still want features: Fluent Forms.
  • Complex logic, payments, workflows: Gravity Forms.
  • Calculators or quote tools: Formidable Forms.
  • Already on Elementor Pro: use what you have.

Sponsor: what LeadSource does

The section below is from our sponsor, LeadSource.

Every form plugin above answers the same question — who contacted you. None of them answers the one that decides your ad budget: where did that person come from?

A submission arrives from Sarah. Your form plugin records her name, email and message. It does not record that she clicked a Google Ad for “commercial roof repair” eleven days ago, read three pages, came back via a retargeting ad, and then filled in the form. So when you review ad spend at month end, every lead looks the same, and the campaign that actually produced revenue is indistinguishable from the one that produced nothing.

LeadSource fills that gap.

What it captures

  • UTM parameters — utm_source, utm_medium, utm_campaign, utm_term, utm_content
  • Ad platform click IDs — Google (gclid), Meta (fbclid), Microsoft (msclkid), LinkedIn (li_fat_id) and TikTok (ttclid)
  • Landing page — the first page the visitor arrived on
  • Referrer — where they came from, with a server-side fallback
  • An auto-detected source label — Google Ads, Meta Ads, LinkedIn Ads, Microsoft Ads, TikTok Ads, Organic Search, Direct or Referral

That last point matters more than it sounds. Plenty of real ad traffic arrives with a click ID and no UTM tags at all, and plenty arrives with neither. LeadSource still categorises those visitors instead of dropping them.

How it works

  • A visitor arrives from an ad or tagged link.
  • LeadSource reads the parameters in the browser and stores them for the session.
  • The visitor browses — possibly for days, depending on your conversion window.
  • They submit a form. LeadSource attaches the stored source data to that submission.
  • You see the traffic source next to the lead in a WordPress dashboard, exportable to CSV.

The conversion window is configurable: same session (clears on browser close), 1 day, or 7 days.

On caching: capture happens in the browser as vanilla JavaScript. Server-side page caching does not interfere — which is precisely the failure mode that silently breaks tracking that runs only in PHP.

How it works with the form plugins above

This is the part that matters: LeadSource does not touch your forms. There are no hidden fields to add, no shortcodes to insert, no form templates to edit.

Instead it hooks each form plugin’s own submission event on the server, reads the stored source data, and writes it to the entry. Because it attaches at the submission hook rather than the form markup, redesigning or rebuilding a form does not break tracking.

Form pluginWhere LeadSource attaches
Contact Form 7wpcf7_before_send_mail
WPFormswpforms_process_complete
Gravity Formsgform_after_submission
Ninja Formsninja_forms_after_submission
Formidable Formsfrm_after_create_entry
Fluent Formsfluentform/submission_inserted
Elementor Pro Formselementor_pro/forms/new_record
Forminatorforminator_custom_form_submit_before_set_fields
Jetpack Formsgrunion_pre_message_sent

That is every form plugin in this article — nine integrations, each guarded by its own detection check so only the code for plugins you actually run ever loads. Anything not on the list is covered by the [utm_tracker_fields] shortcode fallback.

If you switch form plugins later — WPForms to Fluent Forms, say — attribution keeps working. You are not locked in by your tracking.

Privacy

  • IP addresses are anonymised (last octet removed)
  • Nothing is sent to an external service — data stays in your own WordPress database
  • The setup wizard includes suggested privacy policy wording

What it costs

The free version is fully functional and does not expire: all UTM and click ID tracking, all nine form integrations, the dashboard, and CSV export. It stores a rolling window of the latest 10 entries — enough to verify it works on your own site, not enough to run campaigns on. LeadSource Pro removes the entry cap and adds per-submission email notifications and scheduled summary emails.

Download LeadSource free from the WordPress plugin directory

Sitemap