Free WordPress contact form plugin supporting multiple forms, AJAX submission, CAPTCHA integration, and Akismet spam filtering.

11718 detections
20 websites tracked
Updated 15 Jun 2026

Websites Using Contact Form 7

What Is Contact Form 7?

Contact Form 7 is the most popular contact-form plugin for WordPress, installed on many millions of sites worldwide. Created by Takayuki Miyoshi and first released in 2007, it has become a near-default way to add contact forms to a WordPress site. Its enduring popularity comes from a simple combination: it is completely free, it is highly flexible, and it gives developers fine-grained control over form markup and behavior, while still being approachable enough for non-technical site owners to use through shortcodes.

The problem Contact Form 7 solves is fundamental to almost every website: visitors need a way to get in touch. WordPress does not include a contact form out of the box, so site owners need a tool to build forms, contact forms, enquiry forms, feedback forms, simple application forms, and to handle the submissions by emailing them to the right people. Contact Form 7 provides exactly that, letting you define one or more forms, customize their fields, and configure where and how submissions are sent, all without writing server-side code.

It is important to be precise about what Contact Form 7 is. It is a WordPress plugin that runs on your own hosting inside a WordPress installation. It is not a hosted form service, not a browser extension, and not a drag-and-drop visual builder. Instead, it uses a markup-based approach: you define a form using a simple template syntax in the plugin's admin, and it generates a shortcode (like [contact-form-7 id="123" title="Contact form 1"]) that you place into any post, page, or widget to render the form. This text-driven approach is part of why developers favor it: the form markup is transparent and easy to customize with HTML and CSS.

Contact Form 7 is deliberately lean and modular. By itself it handles building forms and sending submission emails. Spam protection, file uploads, conditional logic, and other advanced needs are addressed through complementary plugins and integrations, Akismet for spam filtering, reCAPTCHA or a quiz field for bot protection, and various add-ons for extended functionality. This keep-the-core-simple philosophy keeps the plugin lightweight and lets site owners add only what they need.

Because Contact Form 7 renders a distinctive, well-documented form structure and loads recognizable scripts and styles, it is one of the most reliably detectable plugins on any WordPress site. Its markup, with its characteristic wpcf7 prefixes, is a clear fingerprint. The reason it matters when analyzing a WordPress site is that its presence confirms both the WordPress platform and that the site collects enquiries through a form, useful context for understanding how a site operates and how it captures leads.

How Contact Form 7 Works

Contact Form 7's central concept is the form template. In the plugin's admin, you create a form and define it using a simple tag-based markup syntax. Each field is expressed as a tag in square brackets, for example [text* your-name] for a required text field named "your-name", [email* your-email] for a required email field, [textarea your-message] for a message box, and [submit "Send"] for the submit button. The asterisk denotes a required field. This gives you precise control over exactly which fields appear and how the form's HTML is structured.

Alongside the form template, Contact Form 7 has a Mail configuration. Here you define what happens when the form is submitted: the recipient address, the subject line, the message body (which can pull in the submitted field values using mail tags like [your-name] and [your-message]), and any additional headers or attachments. You can configure a second email, for example an autoresponder confirmation sent back to the person who submitted the form. The plugin also has Messages settings to customize the success and error notices shown to users.

When you save a form, Contact Form 7 assigns it an ID and provides a shortcode. You paste that shortcode into a page, post, or text widget, and WordPress renders the form there. On the front end, the plugin enqueues its stylesheet and JavaScript, the script handles validation, Ajax submission (so the form submits without a full page reload), and the display of success or error messages. The submitted data is validated, processed, and emailed according to your Mail configuration, and the user sees a response message inline.

The rendered form markup is highly recognizable. Contact Form 7 wraps each form in a container and applies classes prefixed with wpcf7, the form element carries a class like wpcf7-form, fields carry classes such as wpcf7-text and wpcf7-email, and the validation and response areas use wpcf7-prefixed classes too. This consistent, documented markup is both what makes the plugin easy to style and what makes it easy to detect.

To picture the workflow end to end, imagine a freelancer adding a contact form to their portfolio site. They install Contact Form 7, open the default form (which already includes name, email, subject, and message fields), tweak the labels, and set the Mail tab to send submissions to their own email address with a clear subject line. They copy the generated shortcode and paste it onto their Contact page. A visitor fills in the form and clicks Send; Contact Form 7 validates the fields, submits via Ajax, emails the enquiry to the freelancer, and shows the visitor a "Thank you for your message" confirmation, all without a page reload. To stop spam, the freelancer also enables the plugin's Akismet or reCAPTCHA integration.

Contact Form 7 supports more advanced scenarios through its integrations and a large ecosystem of complementary plugins: file uploads, date pickers, multi-step forms, conditional fields, database storage of submissions (the core plugin emails but does not store entries by default), and CRM connections. This modular extensibility lets a simple core grow into a capable form solution.

How to Tell if a Website Uses Contact Form 7

Contact Form 7 is one of the most reliably detectable plugins because its rendered markup, scripts, and styles all carry the distinctive wpcf7 signature. StackOptic inspects these server-side, and you can verify them manually with ease.

The wpcf7 markup prefix. The single strongest signal is the pervasive wpcf7 prefix in the form's HTML. The form is wrapped in a <div class="wpcf7"> and the <form> element carries the class wpcf7-form, with fields using classes like wpcf7-text, wpcf7-email, and wpcf7-textarea. Seeing wpcf7-prefixed classes around a form is close to definitive proof of Contact Form 7.

Plugin asset paths. Contact Form 7 loads its stylesheet and JavaScript from the plugin directory /wp-content/plugins/contact-form-7/. Asset URLs containing that path, for example a script handle referencing contact-form-7/includes/js/, are a clear, direct indicator.

Hidden form fields. Contact Form 7 forms include characteristic hidden inputs, such as _wpcf7, _wpcf7_version, _wpcf7_locale, and _wpcf7_unit_tag. Spotting these hidden field names in the form markup is a recognizable tell, and _wpcf7_version can even reveal the plugin version.

The form action and Ajax endpoint. Submissions are handled through the WordPress REST API at a path under /wp-json/contact-form-7/. A request to that endpoint on submission, or its presence in the page's scripts, confirms the plugin.

WordPress confirmation first. Contact Form 7 runs only on WordPress, so the usual WordPress signals apply, a <meta name="generator" content="WordPress ..."> tag, /wp-content/ and /wp-includes/ paths, and /wp-json/. Confirm WordPress, then look for the wpcf7 markers on any page containing a form.

Here is how to check each signal yourself:

MethodWhat to doWhat Contact Form 7 reveals
View SourceOpen a page with a form, "View Page Source"wpcf7-prefixed classes, _wpcf7 hidden fields
Browser DevToolsInspect the form and the Network tabRequests to /plugins/contact-form-7/, the /wp-json/contact-form-7/ endpoint
curl -sRun curl -s URL on the contact pagewpcf7 markup and asset paths in the raw HTML
WappalyzerRun the extension on the live pageIdentifies "Contact Form 7" under widgets/forms
BuiltWithLook up the domainCurrent and historical Contact Form 7 detection

A fast command-line check is curl -s https://example.com/contact/ | grep -o 'wpcf7[a-z-]*' | sort -u. If that returns a list of wpcf7 classes, the page is using Contact Form 7. For broader methodology, see our guides on how to identify a WordPress theme and plugins, how to tell if a website is built with WordPress, and how to find out what technology a website uses.

It is worth noting how these signals behave on production sites. The wpcf7 class names are baked into the rendered structure of every Contact Form 7 form and are extremely difficult to remove without breaking the plugin's styling and JavaScript, so they remain the most dependable tell. Aggressive HTML or CSS minification might rename or strip some asset handles, and a site might load the form only on a dedicated contact page rather than site-wide, so checking the actual contact or enquiry page is important. Even then, the hidden _wpcf7 fields and the REST endpoint persist because the form genuinely depends on them. Combining several signals, the wpcf7 markup, a /plugins/contact-form-7/ asset request, and the hidden fields, on top of confirmed WordPress, makes the conclusion very reliable. Server-side analysis helps because it fetches the unmodified HTML directly, preserving the form markup a browser might reshape after running scripts.

Key Features

  • Markup-based form building. Define forms with a transparent tag syntax for precise control over fields and HTML structure.
  • Flexible mail configuration. Set recipients, subjects, dynamic message bodies, and a second autoresponder email per form.
  • Ajax submission. Forms submit without a full page reload, with inline validation and success/error messages.
  • Shortcode placement. Drop any form into a post, page, or widget with a simple shortcode.
  • Spam-protection integrations. Native hooks for Akismet and reCAPTCHA, plus a quiz field to deter bots.
  • Multiple forms. Create and manage as many distinct forms as a site needs from one plugin.
  • Extensible ecosystem. A large set of complementary plugins adds file uploads, storage, conditional logic, and CRM connections.

Pros and Cons

Pros

  • Completely free with no paid tier required for core contact-form functionality.
  • Highly flexible and developer-friendly, with transparent, easily styled markup.
  • Lightweight core that loads only what is needed and integrates cleanly with WordPress.
  • A huge user base and ecosystem, so documentation, tutorials, and add-ons are plentiful.

Cons

  • No drag-and-drop visual builder; the tag syntax has a small learning curve for beginners.
  • Does not store submissions in the database by default, only emails them, unless an add-on is used.
  • Spam protection and advanced features require additional plugins or integrations.
  • The default styling is minimal, so forms usually need custom CSS to match a site's design.

Contact Form 7 vs Alternatives

Contact Form 7 competes with other WordPress form plugins, several of which offer visual builders or built-in features it leaves to add-ons. The table below compares it with common alternatives.

ProductApproachBuilt-in featuresBest for
Contact Form 7Markup-based, free, lightweightForms and email; extras via add-onsDevelopers and owners wanting a free, flexible form
WPFormsDrag-and-drop visual builderTemplates, storage, add-ons (freemium)Beginners wanting easy visual form building
Gravity FormsAdvanced visual builder (premium)Conditional logic, storage, integrationsComplex forms and data-driven workflows
Ninja FormsDrag-and-drop with modular add-onsVisual building, paid extensionsSites wanting visual building with modularity
ForminatorVisual builder, freeForms, quizzes, polls, paymentsSites wanting varied form types for free

If a site turns out to use a different form plugin, the same detection techniques apply; when profiling a WordPress site's broader toolset you might also check whether it runs an anti-spam plugin like Akismet, since Contact Form 7 is very commonly paired with it to filter spam submissions.

Use Cases

Contact Form 7 is most at home on any WordPress site that needs a contact or enquiry form without paying for a premium tool. Small businesses use it for their contact pages, routing enquiries straight to the right inbox. Freelancers and consultants use it to capture project enquiries. Because it is free and flexible, it is the default starting point for an enormous range of WordPress sites.

It also fits agencies building client sites who want full control over form markup and styling, developers who prefer a transparent, code-friendly approach over a visual builder, and content sites that need feedback or submission forms. Sites with more demanding needs often extend it: adding file uploads for job-application forms, autoresponders for confirmation emails, or CRM connections to push leads into a sales pipeline. Multilingual sites appreciate that the markup approach makes it straightforward to manage forms across languages.

Consider a few concrete scenarios. A local restaurant's WordPress site might use Contact Form 7 for a reservation-enquiry form that emails the front desk. A B2B service company might build a multi-field lead-capture form, pair it with Akismet for spam and reCAPTCHA for bots, and connect it to their CRM. A nonprofit might run several distinct forms, contact, volunteer sign-up, and feedback, all from the single free plugin. In each case the common thread is straightforward, reliable form-based communication managed entirely within WordPress.

From a sales-intelligence perspective, detecting Contact Form 7 on a prospect's site is a useful signal. It confirms a WordPress site that actively captures enquiries through a form, which tells you something about how the organization generates leads and communicates with visitors. Combined with other detections, an SEO plugin, an anti-spam tool, a page builder, it helps build a complete picture of a site's technology and operations. Mapping these footprints to buyer characteristics is the essence of using tech-stack data to qualify leads, and a near-ubiquitous, high-signal plugin like Contact Form 7 is a dependable confirmation point.

Frequently Asked Questions

Is Contact Form 7 free?

Yes, Contact Form 7 is completely free and open source, distributed through the WordPress.org plugin directory with no paid tier for its core functionality. You can build unlimited forms, configure email delivery, and use its Ajax submission and validation without paying anything. Some complementary plugins and add-ons that extend it, for advanced features like database storage, conditional logic, or specialized integrations, may be premium, but the core contact-form plugin itself is free.

How can I tell if a site uses Contact Form 7?

The quickest check is to open a page that has a form and view the source, looking for wpcf7-prefixed classes such as wpcf7-form, wpcf7-text, and wpcf7-email, along with hidden fields named _wpcf7, _wpcf7_version, and _wpcf7_unit_tag. You can also look for asset paths containing /wp-content/plugins/contact-form-7/ or run Wappalyzer. A single curl -s URL/contact/ | grep -o 'wpcf7[a-z-]*' lists the plugin's classes from any terminal.

Does Contact Form 7 store form submissions?

Not by default. The core plugin's job is to validate a submission and email it to the configured recipient; it does not save entries to the WordPress database on its own. If you need to store and review submissions within WordPress, you add a complementary plugin (such as Flamingo, made by the same author, or another submissions-storage add-on) that captures each entry. This keeps the core lightweight while letting sites that need a record of submissions opt into storage.

How does Contact Form 7 handle spam?

The core plugin does not block spam by itself, but it provides built-in integrations to add protection. You can connect it to Akismet to filter spam submissions using the same service that protects WordPress comments, integrate Google reCAPTCHA to challenge bots invisibly, or use the plugin's quiz field to require a simple answer. Because spam protection is modular rather than built in, site owners choose the approach that fits their needs, and many enable both Akismet and reCAPTCHA together.

What is the wpcf7 prefix in the page source?

wpcf7 stands for "WordPress Contact Form 7" and is the prefix the plugin uses throughout its markup, scripts, and styles. The form wrapper, the form element, individual fields, and the validation and response areas all carry wpcf7-prefixed classes, and hidden fields use names like _wpcf7. This consistent prefix is what makes the plugin easy to style with CSS and, from a detection standpoint, makes it one of the most recognizable form plugins to identify in a site's HTML.

Want to identify Contact Form 7 and the rest of a site's stack automatically? Run any URL through StackOptic at https://stackoptic.com.