Nov 16, 2023

UTM parameter best practices

One problem with UTM parameters – which most organizations use for tracking where incoming traffic is coming from – is that they only “last” for one page. That is to say, once someone lands on your website, if they go to another page, the UTM tags in the URL disappear.

https://yoursite.com/page1?utm_source=inside_the_house, but then https://yoursite.com/page2

This is, by default, OK. It’s the behavior that tools like Google Analytics expect, and so you’ll get normal behavior in those tools.

However, once you’re dealing with conversion (and not just traffic) tracking, you may have a problem. Systems like Hubspot, for example, will only, by default, track UTM parameters on the page where a conversion happens. That means those parameters aren’t available to be attached to that contact in their various records that you use for marketing attribution. So, depending on how your analytics are set up, the original sources of your traffic might not show up in your reports. (We’ve written some JavaScript that can help with lead source tracking with the help of your web developer.)

This can be a particular problem with platforms like Google Ads, which depend on UTMs or, often, another parameter called a Google Click ID (gclid) to properly attribute a conversion to Google. So if you have an ad campaign that’s sending people to the front page, and then a visitor goes on to convert on another page, that might not be tracked correctly. And you want to fix that.

On the other hand!

Tagging internal links – links within your site – with UTMs is not great, either. For example, we see a lot of clients tag links from the homepage, even within their own site, with a URL that looks something like this:

https://theirsite.com/nextpage?utm_source=homepage_carousel

This is a problem because it confuses Google Analytics. A UTM parameter means a new session, so this results in sessions being double-counted. It also causes your bounce rate to go up, since a new session indicates that the previous session only visited one page. That’s not good, either.

So what do you do if you (a) want to track conversions from a lot of campaigns that don’t lead directly to a conversion page, and (b) are relying on UTMs to do that?

We’ll point you to this script from Analytics Mania, which we’ve also put a copy of in our Content Stack Utilities.

This script:

  • Lets you enter your domain (or another domain you care about, let’s say a 3rd-party form that you want visitors to fill out)
  • Adds the original UTM parameters from the first page your user visited, to subsequent pages in that visit with those domains

You’ll need your web developer to finish setting it up and implement it in Google Tag Manager or in your CMS.

Should you use this script?

It depends. If you’re running a limited number of ad campaigns to pages that don’t convert directly, and you need to track conversions, then it might be OK to use it. Keep a close eye on bounce rate and sessions to make sure your data isn’t distorted too much. But once you start scaling these campaigns, you’ll need a solution that doesn’t depend on UTM parameters. (Send us an email if you have questions and we’ll do what we can to help.)

Subscribe to our newsletter

Like this post? Every week or so we send out a newsletter with actionable tips and insights for content and marketing leaders.

We’re *actually* here to help

We’re marketers who love spreadsheets, algorithms, code, and data. And we love helping other marketers with interesting challenges. Tackling the hard stuff together is what we like to do.

We don’t just show you the way—we’re in this with you too.

Background image of a red ball in a hole.