Looking for a no-fuss, ultra-lightweight contact form that just works? Essential Form gives you exactly what you need — no more, no less. Use the shortcode [essential_form] wherever you want a simple contact form with the following fields: Name Email Message Agreement checkbox That’s it. No extra fl
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 4.6 and PHP 7.2.
SourceWordPress plugins · Oct 18, 2026
01 / Source details
About this tool.
Looking for a no-fuss, ultra-lightweight contact form that just works? Essential Form gives you exactly what you need — no more, no less.
Use the shortcode [essential_form] wherever you want a simple contact form with the following fields:
Name
Email
Message
Agreement checkbox
That’s it. No extra fluff, no performance hit.
⚡ Zero Bloat. Zero Requests. Zero Spam.
Essential Form adds no HTTP requests , loads no external libraries , and runs on pure Vanilla JavaScript — only 1 kB of inline script , injected only on pages with a form . When we say it’s the lightest contact form ever made, we mean it. The entire plugin zip is just 14 kB .
🛡️ Anti-Spam, Reinvented (No Captchas, Ever)
Our invisible anti-spam system blocks all automated bots — no annoying captchas, no puzzles, no headaches. Here’s how it works:
Each form submission uses a unique, random token
20 random security keys are generated per site
AJAX actions have unpredictable names like essential_form_fbe52b696
Robots can’t guess or simulate a valid submission
The result? Only real humans get through. Bots don’t stand a chance.
🧘♀️ Keep It Simple
Most of the time, all you need is a name, email, message, and a simple checkbox. That’s exactly what Essential Form gives you. If you need complex forms with extra fields or logic, this plugin isn’t for you — try Contact Form 7 instead.
But if you want something fast, clean, and incredibly secure, Essential Form is for you.
Try Essential Form today — and enjoy a faster, cleaner contact form experience.
How to add a contact form on the page
Add the shortcode [essential_form]
Done!
Features of the Contact Form
Extremely lightweight – The plugin inlines about 1 kB of pure Vanilla JavaScript (even smaller when compressed) only on the page where you use the shortcode — and never above the fold . On all other pages, it doesn’t exist at all. You could say it only “exists” on a page because the form is visible — otherwise, you’d never know the plugin is there. No tool will be able to measure any meaningful resource usage caused by this plugin.
The contact form includes only four fields: name, email, message, and an agreement checkbox. Nothing else. If you need more fields, this plugin isn’t for you. But if that’s all you need — you’ll love how simple and fast it is.
It inherits your theme’s styles automatically. If you want custom styling, you can add your own CSS — or use a different plugin if you need more built-in design options.
It includes a powerful, invisible anti-spam system . Bots won’t be able to send messages through your form. Only real humans can submit it — and if you ever get spam, it will be from a human doing it manually.
No captchas, no puzzles, no user frustration. The anti-spam system works entirely behind the scenes — quietly and effectively.
Shortcode Parameters
You can customize the form labels and messages using these shortcode parameters:
label_email
label_message
button_text
agreement_text
success_message
Example usage:
[essential_form label_email="Your email" label_message="Your message" button_text="Send" agreement_text="You agree with our privacy policy" success_message="Thank you for your message!"]
If you don’t provide these parameters, the plugin will use the default values.
How to customize the contact forms
You can also customize the contact forms throught the filter hook ‘essential_form_settings’.
Here an example.
add_filter( 'essential_form_settings',function( $options ){ return array_merge( $options, array( 'email_from' => 'youremail@mail.com', 'email_to' => 'youremail@mail.com', 'email_subject' => sprintf( esc_html__( 'Message from %s','your-domain' ),get_bloginfo( 'name' ) ), 'label_name' => __( 'Name','your-domain' ), 'label_email' => __( 'Email','your-domain' ), 'label_message' => __( 'Message','your-domain' ), 'button_text' => __( 'Send','your-domain' ), 'agreement_text' => __( 'By submitting this form I agree with the privacy policy','your-domain' ), 'success_message' => __( 'Form submitted successfully! Thank you for your message!','your-domain' ), 'name_missing_error' => __( 'Name is a required field!','your-domain' ), 'email_missing_error' => __( 'Email is a required field!','your-domain' ), 'email_not_valid_error' => __( 'Email not valid!','your-domain' ), 'message_missing_error' => __( 'Message is a required field!','your-domain' ), 'message_too_long_error' => __( 'This message is too long! Please, write not more than 50000 characters.','your-domain' ), 'missing_agreement_error' => __( 'You have to agree with our privacy policy to submit the form.','your-domain' ) ) ); } );
If you need to do a custom action after the sending of the email, you can use the action hook ‘essential_form_after_sending’.
Here an example.
add_action( 'essential_form_after_sending',function( $name,$email,$message,$post_id ){ //$name is the name of the user who submitted the contant form //$message is the message which is sent through the contact form //$post_id is the ID of the page where is included the contact form //Your code here },10,4 );
If you need to customize the message that is included in the email, use the filter hook ‘essential_form_message’.
If you need to customize the agreement text, use the filter hook ‘essential_form_agreement_text’.
Here you have an example.
add_filter( 'essential_form_agreement_text',function( $text ){ return 'By submitting this form I agree with the <a href="https://yourdomain.com/privacy-policy/">Privacy Policy</a>'; } );
Limitations
The limits of Essential Form are many, but they are what make this plugin the best if you need a ultra-lightweight contact form with just name, email, comment, and privacy agreement. If you need more, you can always install more complete but also heavier contact forms like:
Contact Form 7 WPForms Forminator Formidable Forms Ninja Forms
and many other amazing plugins for contact forms.
How to speed up the form submission and avoid conflicts with other plugins
Install and activate Freesoul Deactivate Plugins
Go to Freesoul Deactivate Plugins => Plugin Manger => Actions => Essential Form
Deactivate all the plugins for the actions “Getting secret key during submission” and “Form submission”
By using Freesoul Deactivate Plugins to clean up all the other plugins, the form submission will be faster and without any conflict with third plugins.
Demo
You can see Essential Form in action on my blog post The Lightest Contact Form Plugin Ever You don’t need any demo for the backend, because there are no settings for this plugin. Just use the shortcode [essential_form] where you want to add the form, and customized as mentioned in the description.
I need this plugin to do something custom
If you want to integrate this plugin with other tools or workflows, I offer a custom development service for WordPress plugin integrations and feature extensions. Learn more about advanced custom functionality for WordPress .
02 / Source details
Getting started.
01Upload the plugin files to the /wp-content/plugins/essential-form directory, or install the plugin through the WordPress plugins screen directly.
02Activate the plugin through the ‘Plugins’ screen in WordPress.
03Add the shortcode [essential_form] to any post, page, or widget where you want the contact form to appear.
03 / Source details
Frequently asked questions.
Can I add more fields?
No. Essential Form is intentionally minimal. It includes only name, email, message, and agreement checkbox.
Does it work with caching plugins?
Yes, it’s compatible with most caching setups because the form token is dynamically handled.
Does it support AJAX submissions?
Yes, form submissions use AJAX to send messages without reloading the page.
Is it GDPR-compliant?
Yes. No data is stored on your server. Everything is handled via email, and the agreement checkbox helps you get user consent.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati