Measuring Mailchimp signup conversions

Written by Philipp Steinweber

Measuring Mailchimp signup conversions

Do you know the important numbers in your business? Let’s hope so. If you want to grow it, one condition is that you’re able to perceive the growth. Numbers are incredibly helpful for that.

So there’s a high chance that you have some kind of email collecting happening, most likely via a mailing list. And as you’re reading this, it might even be Mailchimp.

In what follows I’ll be showing you some principles of how you pull out the numbers that matter. Some aspects are specific for measuring Mailchimp signup conversions, others can be adapted for other mailing list tools, or even things like ecommerce goals. For the sake of simplicity I’ll continue with the lingo that fits with Mailchimp.

Where do people sign up from?

Let’s start with the source of signups, even though that’s technically not a conversion number, which typically can be measured in %. It’s important for optimizing your site to know which signup fields are performing best, and where you can still optimize.

Unfortunately Mailchimp is a bit clunky when it comes to tracking this down. While others like Aweber automatically save at least the URL, Mailchimp doesn’t provide us with such details automatically. But it’s easy enough to implement them manually.

We usually track two things:

  1. The signup location – where the opt-in is placed. This has values like ‘sidebar’, ‘footer’, ‘home’ or can also be assigned to special campaigns.
  2. The signup URL – the specific URL where the signup comes from. There are several footers after all.

General principle of tracking additional information with Mailchimp

Signup location and signup source use the same principle: for both we utilize hidden Mailchimp fields, and give them values depending on where they are placed.

1. Create fields

So first of all you have to create those two fields in the Mailchimp signup forms. Complete instructions on where to click can be found here. What we want to achieve looks like the following:



2. Utilizing fields

So next is using those fields. Depending on your skills this might be something for your developer. Send him this link.
First we’ll do this in a simple, static manner. So we have to get the naked embed code. Make sure to uncheck everything you don’t need, e.g. form title, and non-required fields. Simple wins.
This will look something like this:

<!-- Begin MailChimp Signup Form -->
<div id="mc_embed_signup">
<form action=";id=7654321" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div class="indicates-required"><span class="asterisk">*</span> indicates required</div>
<div class="mc-field-group">
 <label for="mce-FNAME">First Name <span class="asterisk">*</span>
 <input type="text" value="" name="FNAME" class="required" id="mce-FNAME">
<div class="mc-field-group">
 <label for="mce-EMAIL">Email Address <span class="asterisk">*</span>
 <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL">
 <div id="mce-responses" class="clear">
 <div class="response" id="mce-error-response" style="display:none"></div>
 <div class="response" id="mce-success-response" style="display:none"></div>
 </div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 <div style="position: absolute; left: -5000px;"><input type="text" name="b_1234567" tabindex="-1" value=""></div>
 <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
<!--End mc_embed_signup-->

The hidden fields are not in there yet – only first name and email address in this case. We’ll add them manually by placing the following lines below the <input type=”email” … > line:

<input type="hidden" name="SLOC" value="sidebar">
<input type="hidden" name="SURL" value="">

You’ll notice that I already filled out the “value” properties (“sidebar” and “”) – those determine what you will see in the subscriber information in Mailchimp.
For the location we at Metamonks usually use things like “sidebar”, “footer”, “special-campaign-01”, and the URL is a plain URL as the name suggests.

So for embedding the form statically, that will do the job. But what if we want them to do that tracking automatically, or at least semi-automatically – e.g. having it under every post?

3. Utilizing fields better

This is getting a bit geeky. Feel free to send this paragraph to your web developer if you have already struggled with the previous one.

“As many monks, as many paths” is one of my favorite proverbs, and it kind of fits here: as many web developers as many solutions. There are more ways of achieving similar solutions than this simple one we’re gonna depict here. There are even more elegant ways, but they require an in-depth knowledge of WordPress incl. custom fields etc. – and therefore would go too far for this post.

Let’s build the example around having an opt-in below each blog post, and tracking the fields we talked about in the previous paragraph.

First we need to adjust the snipped from above to auto-fill out the hidden fields. It’s as simple as that:

<input type="hidden" name="SLOC" value="post-footer">
<input type="hidden" name="SURL" value="<?php echo get_permalink(); ?>">

The signup location is set to “post-footer” because that’s where we’re gonna place the snipped in the template code. No need to change this dynamically at this point.
The signup URL is being loaded dynamically via WordPress’ get_permalink function. It will be the full URL in this case, which will suffice for this simple example.

Now we’ll place this code in the template file, so that it is being executed automatically after each post. Note: we only have to do this once at one place, and do not have to copy it into the WordPress editor dozens of times!

It requires administrator access in WordPress and we’ll be editing the file system. Make sure to have a backup system in place before going there, or ask your developer if you feel insecure about it.

In the WordPress backend (/wp-admin), go to Appearance > Editor and select the single.php from the file list on the right. (Note: this could be a different file if you’re using a theme which doesn’t use WordPress’ default file structure)

For inserting the code at the right place you have to understand the content of that file a bit. What it does is load the elements that are being used to display a single post from the database, e.g. the meta information, the content, the comments etc…
You can insert the code almost anywhere and it’ll work, but we probably want it somewhere below. 

Best try directly below this line for the first attempt, as this will usually make sure that it’s still in the main container element of the content. But again: these things vary a lot from theme to theme.

Make sure to not accidentally delete a line. There is no undo!

Save the file and load a blog post on the frontend to verify the positioning. Play a bit with the positioning of the code until you’re satisfied.

Monitoring the results

You are now collecting basic information about where people sign up from. That’s essential for getting an idea about which posts are responsible for filling your mailing list. Note: with some creativity you can even use this to split your mailing list into different segments, communicating better with your prospects.

You’ll find the collected information inside Mailchimp under Lists > The list you were doing this for > Subscribers.
Unfortunately Mailchimp doesn’t really display it in a way that allows in-depth monitoring. All you can do is sort your subscribers by signup location or signup URL. Which is good enough for a quick overview, but not more than that. For an in-depth analysis you might want to export your subscribers in a CSV file and analyze the file in Excel.

How well are my opt-ins performing?

Now that we have answered the questions as to where people sign up from, we still want to extract a single quantitative value for measuring our efficiency: the conversion rate.

We’ll do this with the help of Google Analytics. But first we have to replace Mailchimp’s “Confirmation ‘thank you’ page” with our own, so we can place our Google Analytics there. In the following section we’re assuming that you already have a general installation of Analytics running on your site.

  1. Create a page on your site, e.g. which thanks the user for subscribing and gives them the opportunity to download the opt-in reward if there is any. You can also think of an additional call-to-action for this page.
  2. Head over to your Mailchimp signup forms and configure the “Confirmation ‘thank you’ page” to have the URL from the page you just created.


Now we’re set up to utilize Google Analytics’ goal tracking feature to calculate the conversion rate for us.

For this head over to your Google Analytics admin area and find the “Goals” setting:


Add a new goal with the type “Destination”, as the destination (/thank-you) is what we’re gonna track.
In the next step you just have to make sure to enter the correct destination. The other settings are optional and not necessary for our simple setup.
Create the goal.


From now on you can keep an eye on that number in your Google Analytics reporting. This allows you one important thing: to improve it!


Numbers matter. They’re the number one benchmark for measuring your business success. There’s a catch though:
Make sure to focus on the most important numbers. Often those are sales.
And never undermine your brands classiness by tweaking your conversions too much. That often coincides with a loss of authority and can become a dark side of the force technique.

Stay classy, stay successful.

About the author

Philipp Steinweber

Philipp is the founder of Metamonks and Omooni, and passionate about personal growth. On Soulful Hustle he open-sources the strategies and insights learned from his projects.