Skip to main content

Tutorial

A fast Mailchimp signup form for WordPress

Mailchimp's official embed code is 90 KB on a fresh page. Here's how to wire a Mailchimp signup form that's 4 KB and still does double opt-in.

Mailchimp’s official “embed this signup form” code drops 90 KB on your page. jQuery, a validation library, an iframe in some templates, and Mailchimp’s own bundled CSS. To collect an email address.

You can replace it with a 4 KB Core Forms wire-up that does the same job, including double opt-in, in under five minutes.

Here’s the whole thing.

Step 1: Install Mailchimp for WordPress

The free plugin from ibericode handles the API authentication. Install it, paste your Mailchimp API key, and Core Forms will see your audiences from there.

This is the only dependency. It’s free. It’s been around forever. It’s solid.

To get the API key: in Mailchimp, Account → Extras → API keys → Create a key. Paste it into the Mailchimp for WordPress plugin’s settings.

Step 2: Build the signup form

In Core Forms, Add new form. The HTML is just an email input and a submit button:

<p>
  <label for="email">Your email</label>
  <input type="email" name="email" id="email"
         placeholder="you@yourdomain.com" required />
</p>

<p>
  <button type="submit">Subscribe</button>
</p>

That’s the whole form. No first name field — most signups die on extra fields. Get the email first, ask for the name in a welcome email.

Step 3: Wire the Mailchimp action

In the form’s Actions tab:

  • Add actionMailchimp.
  • Pick the audience (your list).
  • Map: form’s email field to Mailchimp’s EMAIL merge field.
  • Optional: assign a tag like “newsletter” or “homepage-signup” so you can segment later.
  • Optional: leave double opt-in on (recommended) or off (if your audience has consent already).

Save.

Step 4: The success message

In the form’s Messages tab, set the success message to something specific:

Check your email for a confirmation link. We’ll only send the newsletter once it’s confirmed.

Generic “Thanks for subscribing!” leaves users wondering why they didn’t get the newsletter. Telling them about the double opt-in step prevents the support emails.

Step 5: Drop it in your site

[cf_form slug="newsletter"] works in posts, widgets, the Gutenberg block, the footer, anywhere shortcodes go.

The whole form, JavaScript and CSS, lands at about 5 KB. Versus 90 KB for Mailchimp’s official embed. On a 3G connection, that’s the difference between a form that loads instantly and a form that loads after the rest of the page.

What this gets right

Double opt-in works. Mailchimp’s confirmation email fires the same as it would from their native form. The user clicks confirm, they’re subscribed.

Tags and merge fields work. Map any form field to any Mailchimp merge field. Tag based on which form they came from.

No iframes. Some Mailchimp embed templates use an iframe. Iframes break ad blockers and screen readers. Native HTML doesn’t.

No Mailchimp branding. Their official forms include “powered by Mailchimp” footers. Yours won’t.

Where this falls short

No native captcha on the Mailchimp side. You’re not using their built-in spam filtering. Layer reCAPTCHA v3 or Cloudflare Turnstile on the form (one click in Core Forms settings) and you’ll catch more spam than Mailchimp’s default would.

No GDPR field auto-rendering. Mailchimp’s native forms can render GDPR consent checkboxes from your audience settings automatically. Core Forms doesn’t pull those. Add the consent checkbox manually as a form field.

Audience subscription only. This pattern subscribes users to one Mailchimp audience. If you need to subscribe to multiple audiences (rare) or split between audiences based on a field value, you’ll write that as a conditional action.

The MailerPress alternative

If you don’t have Mailchimp opinions yet, look at MailerPress. It’s a self-hosted WordPress-native ESP, no API key, no third-party plugin. The setup is shorter and you keep your subscriber data on your own database.

Mailchimp’s strength is deliverability and well-known templates. MailerPress’s strength is “no rate limits, no quotas, no third-party privacy policy.”

Pick on those terms, not on what’s “popular.”

The next step

Replace one Mailchimp embed on your site with a Core Forms signup. Test the double opt-in. Check the bundle size in DevTools.

The reduction is real. So is the conversion bump on slow connections, where the page actually loads before the user gives up.

Both Mailchimp and MailerPress are bundled at every plan level. Pricing.

Build the form. Stop reading.

Every note here came out of a real Core Forms setup. Use CFLAUNCH for 20% off either plan.