Mailchimp
Mailchimp signup form not working
Embedded Mailchimp forms post to a specific audience URL. When that URL, the field names, or the script host is wrong, the page still looks like a form.
Symptoms
- Submit reloads your page and the person is not in the audience.
- Mailchimp shows a blank or “too many attempts” style error inside the embed.
- The classic embedded form works and the styled copy of it does not.
- New subscribers stay pending, and you are looking at subscribed contacts.
Common causes
The form action is an old list
The action URL contains the account and the audience id. Copying a form from another project, or from a tutorial, posts into an audience you cannot see, or into one that was deleted.
Field names were cleaned up
Mailchimp expects tags like EMAIL and FNAME. A redesign that renames the inputs to email and name submits an empty address and the audience rejects it.
reCAPTCHA or the script host is blocked
The embed loads scripts from Mailchimp hosts. A strict Content-Security-Policy or a consent tool blocks them. The form posts locally and Mailchimp never sees it.
Double opt-in
The audience requires confirmation. The person is on the pending list until they click. That is not a failed post.
The embed is inside a form
Nesting the Mailchimp form inside your own form, or binding a second submit handler, sends the wrong payload. One form, the Mailchimp action, no extra handler.
Fix it
Read the action URL
In view source, the form action should be a list-manage.com URL for the audience you intend. If it is empty, “#”, or your own /api route, you are not posting to Mailchimp.
Submit and read the response
The browser should navigate to Mailchimp or show the embed's own success message. A reload of your page with no request to list-manage.com means your JavaScript swallowed the submit.
Compare input names to the audience
Use the field tags from the embedded form code. Put EMAIL back if a generator renamed it.
Allow the embed hosts
If the console shows blocked requests to Mailchimp or chimpstatic, add those hosts to the CSP, and load the embed in the consent category that is allowed to run.
Check the pending audience
Look at unsubscribed and pending contacts before you debug a post that already succeeded.
Replace the snippet rather than restyling the old one
Generate a fresh embedded form for this audience and paste it. Then submit one address you control on the production URL.
Catch it automatically
A funnel replay can fill the email field and assert the success message. Combined with a free ping on the landing URL, you hear about a removed embed even when the rest of the page returns 200.
Watch the next break before a customer does.
Map the path once. The next publish does not get to fail in private.
Questions
Why does the form reload my site?
The action is not the Mailchimp URL, or a script called preventDefault and then did nothing. Read the action attribute and the network panel.
It works in the Mailchimp form builder.
Then the audience is fine. The embed on your site is a different piece of HTML, and that is the part to replace.
Does FunnelWatch log into Mailchimp?
No. The check uses the page a visitor uses. It does not need your Mailchimp password.