Mailerflow Start free
Blog › Email List Growth & Segmentation › Newsletter Signup Forms

How to Add a Newsletter Signup Form to WordPress

Published November 7, 2026 · 9 min read

Illustration for How to Add a Newsletter Signup Form to WordPress

You add a newsletter signup form to WordPress in one of three ways: paste an embed code into a Custom HTML block, use your email provider's block or shortcode, or install a dedicated form plugin that connects WordPress to your email service. The form itself is rendered by WordPress, but the contact record, consent log, and confirmation email live in your email platform — so the provider you choose matters more than the placement method.

What you'll set up and what you need

There are three routes, and they differ mainly in who maintains what.

Embed code is the most portable. You build the form in your email platform, copy a snippet, and paste it into a page. It works with any theme and any page builder, and it keeps working if you change themes. The trade-off is that the form's markup lives outside WordPress, so you edit it in your email platform, not in the block editor.

A block or shortcode is the middle path. Your email provider ships a WordPress plugin that registers a Gutenberg block or a shortcode. Non-technical editors can move the form around like any other block, and you avoid pasting raw code.

A dedicated form plugin puts form building inside WordPress. You get more control over layout, conditional fields, and multi-step forms, but you now maintain two systems and have to keep the plugin updated alongside everything else.

Before you start, you need:

  • Admin access to your WordPress site (Editor role is not enough to install plugins).
  • An account with an email platform that provides signup forms.
  • A sending domain if you want confirmation and welcome emails to come from your own address rather than a shared one.
  • A decision on double opt-in. If you collect addresses in the EU, UK, or anywhere with consent rules, plan for it from the start rather than retrofitting later.

One clarification that saves confusion later: WordPress does not store your subscribers. It renders a form and posts the data somewhere. Storage, consent records, unsubscribe handling, and sending all belong to your email platform. Mailerflow, for example, provides embeddable signup forms with double opt-in and consent records, which is the part WordPress cannot do on its own.

Option 1: Paste an embed code into a page or post

This is the route most people end up using, and it takes about five minutes.

  1. In your email platform, create a new signup form. Add the fields you want — email is required; first name is optional but useful.
  2. Enable double opt-in if you need it, and set the confirmation email's sender name and subject.
  3. Save the form, then find the embed option. Copy the snippet. It will usually be a <script> tag, sometimes with a <div> placeholder.
  4. In WordPress, go to Pages → Add New (or open an existing page).
  5. Click the + block inserter, search for Custom HTML, and insert that block.
  6. Paste the snippet into the Custom HTML block. Do not switch to the Visual tab afterward.
  7. Click Preview to check the form renders, then Publish.

Two things trip people up here. First, script-based embeds must go in a Custom HTML block, not a Paragraph block — a Paragraph block will escape the code and you will see the raw snippet on the page. Second, if you are using the Classic editor, paste into the Text tab, never the Visual tab, or WordPress will strip the script tags.

If your provider gives you a plain HTML form with an action attribute rather than a script, the same Custom HTML block works, but the form will navigate away from your page on submit unless the provider handles it with JavaScript.

Option 2: Use a form block or shortcode

If your email platform publishes a WordPress plugin, this is the cleanest option for sites with multiple editors.

Shortcode route:

  1. Go to Plugins → Add New, search for your email provider's plugin, install, and activate it.
  2. Open the plugin's settings page and connect your account. Most providers ask for an API key, which you generate in your email platform's account settings.
  3. In your email platform, copy the shortcode for the form you want (it usually looks like [provider_form id="1234"]).
  4. In WordPress, edit the page and insert a Shortcode block.
  5. Paste the shortcode and publish.

Block route:

  1. Follow steps 1 and 2 above to install and connect the plugin.
  2. Insert the provider's block from the block inserter — it appears under its own category, usually named after the provider.
  3. Pick your form from the dropdown in the block toolbar.
  4. Adjust padding, alignment, and button color in the block sidebar under the block's settings panel.
  5. Publish and preview.

The advantage of the block route is that anyone who can edit a page can move the form, change its width, or duplicate it into a new template without touching code. That matters if your site has more than one person publishing.

Option 3: Install a dedicated WordPress form plugin

Choose this when you need form logic that lives in WordPress — conditional fields, multi-step layouts, file uploads alongside the email field, or a form that also feeds a CRM.

  1. Go to Plugins → Add New and search for a form plugin.
  2. Install and activate it, then run the setup wizard.
  3. Connect your email service. Most plugins have a dedicated integration for major platforms; if yours is not listed, you can often connect via a webhook or the platform's API.
  4. Build the form in the plugin's builder. Add an email field, a name field, and a consent checkbox.
  5. Map each form field to the corresponding field in your email platform so the data lands in the right place.
  6. Embed the form on a page using the plugin's block or shortcode.

Be aware of the trade-off: you are now running two systems that both need updates, and a plugin conflict can take your form down without warning. Check each plugin's official page for current features, limits, and update history before committing — plugin capabilities change often, and a comparison written six months ago may already be wrong.

Say you run a small site selling a monthly template pack. You want a signup form in the footer asking for first name and email, with a consent checkbox, and you want to greet people by name in the welcome email.

Build the form in your email platform. Create a form with three elements: a text field labeled "First name," an email field, and a required checkbox with wording like "I agree to receive the monthly template pack and accept the privacy policy." Turn on double opt-in. Set the confirmation email's from-name to your brand.

Copy the embed. Grab the snippet from the form's share or embed panel.

Add it to the footer. In WordPress, go to Appearance → Widgets if your theme uses widget areas, or Appearance → Editor → Templates → Footer if it uses the site editor. Insert a Custom HTML block (widgets) or the provider's block (site editor) and paste the snippet. Save.

What you should see. In the editor, the Custom HTML block shows the code; the preview shows the rendered form. On the live site, the footer shows two inputs, a checkbox, and a submit button, stacked vertically on mobile and inline on desktop.

Why the first-name field is worth the extra step. It becomes a merge tag you can drop into the welcome email, and it becomes a segmentation signal. Mailerflow's dynamic segments can key off fields, tags, engagement, events, and website behavior, and you can describe a segment in plain language and let AI build it — so "people who gave a first name but never opened an email" is a segment you can act on rather than a guess.

If you are still deciding between placement options, the broader walkthrough in How to Add an Email Signup Form to Your Website covers the same decisions outside the WordPress context.

How to check it works

Do not trust the preview alone. Run this checklist with an address you control.

  1. Submit a real test. Use a personal address, not an internal alias, so you see exactly what a subscriber sees.
  2. Confirm the confirmation email arrives. Open it, click the link, and confirm you land on a thank-you page or a confirmation message.
  3. Check the contact in your email platform. The record should show the correct first name, the correct tags or list, and a consent record with a timestamp.
  4. Check mobile width. Resize your browser to roughly 375px wide. The inputs should be full-width and the button should be large enough to tap without zooming.
  5. Check for console errors if you used a script embed. Open your browser's developer tools, reload the page, and look for failed requests in the Console and Network tabs.
  6. Check the spam folder. Double opt-in confirmation emails land in Gmail's Promotions tab or spam more often than people expect, especially before your sending domain has any reputation.

If nothing arrives, the cause is almost always one of three things: the form ID in the embed does not match the form you built, a caching or script-optimization plugin is deferring or stripping the embed script, or you copied the embed before saving the form in your email platform.

Common mistakes and fixes

  • Pasting a script embed into a Paragraph block. The code renders as visible text. Fix: delete the block and re-add it as Custom HTML.
  • Using one generic form everywhere. A footer form and a mid-article form convert differently because the reader's intent differs. Fix: write context-specific copy for each placement, even if the underlying form is the same.
  • Skipping the consent checkbox where GDPR applies. You need a record of what the person agreed to and when. If you are collecting consent, the details of wording and record-keeping are worth getting right — see GDPR-compliant signup forms.
  • Not setting up a sending domain. Confirmation emails sent from a shared address get filtered more aggressively. Mailerflow supports own-domain sending with guided DKIM, SPF, and DMARC setup and automatic verification, plus GDPR tools including consent logs, data export and erasure, and data hosted in Europe — which is exactly why these two mistakes matter more than they look.
  • Leaving the default button text. "Submit" tells the reader nothing. "Get the template pack" tells them what happens next.
  • Footer-only placement. Footers are easy to miss. Add a second form where readers finish an article.

Next steps after the form is live

A form collects contacts; a welcome sequence turns them into readers. The first email should arrive within a minute of confirmation and do one thing: deliver what the signup promised. After that, a short automation — a follow-up two days later, a check-in after a week of inactivity — does more for list health than any form tweak.

If you would rather not build that from scratch, Mailerflow's AI automation builder drafts a workflow from a one-sentence description, including the trigger, waits, conditions, and emails, and you review it before activating. The AI email builder works the same way for the welcome message: describe it, get a responsive design with subject lines and preview text, then edit it in the visual block editor.

FAQ

Do I need a plugin, or can I just paste code? Pasting an embed code into a Custom HTML block is enough for most sites. You only need a plugin if you want the form managed inside WordPress or need conditional logic the embed does not support.

Will the form slow down my site? A single script embed adds a small amount of JavaScript. Problems usually come from stacking multiple marketing scripts, not from one form. If you see a slowdown, check whether a caching plugin is loading the script on every page rather than only where the form appears.

Where should the form go for the most signups? Place it where the reader has just received value — the end of an article, below a resource, or in a dedicated landing page. Footers are convenient but rarely the highest-performing spot.

Do I need double opt-in? It depends on where your subscribers live and what you promised them. Double opt-in produces a smaller but cleaner list and gives you a defensible consent record. If you collect addresses in the EU or UK, treat it as the default.

Can I use the same form on multiple pages? Yes, and the embed or shortcode can be reused anywhere. Just change the surrounding copy so it matches the page context.

What if the confirmation email never arrives? Check the spam and Promotions folders first, then verify the form ID and that your sending domain is authenticated. If the contact appears in your platform but no email was sent, the confirmation email may be disabled in the form settings.


Add an embeddable signup form with double opt-in and build dynamic segments in Mailerflow — start free.