UTM parameters are short tags added to the end of a link, such as ?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale, that tell Google Analytics where a visit came from. Use them on links you place outside your own site: emails, social posts, ads, QR codes and partner sites. Never use them on internal links.
Without UTM parameters, a lot of your marketing effort shows up in GA4 as "Direct" or "Unassigned", or gets lumped in with every other referral. With them, you can see which newsletter, which Facebook post or which printed flyer actually brought people to your site. This guide covers what each parameter does, how GA4 uses them to assign channels, a naming convention that holds up, and the mistakes that quietly ruin your data.
To build tagged links quickly, use our free UTM builder. It cleans values to lower case with hyphens and links straight to the QR code generator for print campaigns.
Key takeaways
- Google says you should always use utm_source, utm_medium and utm_campaign, and values are case sensitive.
- GA4 sorts tagged visits into channels like Email, Organic Social and Paid Search by matching your source and medium values, so use the values it recognises.
- Never put UTM parameters on links between pages of your own site, because they overwrite the real source of the visit.
- Tag every QR code, email and social link with a consistent, lower-case naming scheme kept in a shared sheet.
What UTM parameters are
UTM parameters are query string values that Google Analytics reads when someone lands on your page. They don't change the page itself. They only label the visit.
Google's help page on collecting campaign data with custom URLs lists the parameters GA4 supports:
| Parameter | What it describes | Example value |
|---|---|---|
utm_source |
Where the traffic comes from | newsletter, facebook, google |
utm_medium |
The type of channel | email, social, cpc, qr |
utm_campaign |
The promotion or campaign | spring-sale-2026 |
utm_id |
Campaign ID, often used with data import | sp26 |
utm_term |
Paid keyword | emergency-plumber |
utm_content |
Which link or creative was clicked | header-button |
utm_source_platform |
The platform directing traffic | mailchimp |
utm_creative_format |
Creative type | Not currently reported in GA4 |
utm_marketing_tactic |
Targeting criteria | Not currently reported in GA4 |
Google says: "When you add parameters to a URL, you should always use utm_source, utm_medium, and utm_campaign." Leave one out and you'll see (not set) in reports.
A complete tagged link looks like this:
https://www.example.com/offers?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale-2026&utm_content=hero-button
How GA4 uses UTM parameters to assign channels
GA4 doesn't just display your source and medium. It also uses them to sort each visit into a default channel group, such as Email or Paid Social. If your values don't match its rules, the visit lands in "Unassigned" and your channel reports become less useful.
Google publishes the rules in its default channel group documentation. The ones that matter most for small businesses:
| GA4 channel | Rule (simplified) | Values to use |
|---|---|---|
Source or medium is email, e-mail, e_mail or e mail |
utm_medium=email |
|
| Organic Social | Source matches a known social site, or medium is social, social-network, social-media, sm, social network or social media |
utm_source=facebook&utm_medium=social |
| Paid Social | Source is a social site and medium matches cp, ppc, retargeting or starts with paid |
utm_source=facebook&utm_medium=paid-social |
| Paid Search | Source is a search site and medium matches the paid pattern | utm_source=bing&utm_medium=cpc |
| Display | Medium is display, banner, expandable, interstitial or cpm |
utm_medium=display |
| Referral | Medium is referral, app or link |
utm_medium=referral |
| Affiliates | Medium is affiliate |
utm_medium=affiliate |
| Organic Video | Source is a video site, or medium contains video |
utm_source=youtube&utm_medium=video |
Anything that matches none of the rules goes to Unassigned. That's what happens when someone invents utm_medium=newsletter-blast or utm_medium=Facebook Post.
What about QR codes?
There's no QR code channel in GA4's default grouping. You have two sensible options:
- Use the medium of the physical channel. For example,
utm_medium=printorutm_medium=offline. These land in Unassigned in the default channel report, but you can see them clearly in the source/medium report, or create a custom channel group in GA4 for offline traffic. - Use
referralwith a clear source.utm_source=shop-window-poster&utm_medium=referralputs QR scans in the Referral channel. It's tidy, but it mixes offline scans with real referring websites.
Whichever you choose, write it down and use it every time. Consistency matters more than the exact value.
A naming convention that holds up
Most UTM problems come from different people tagging links in different ways. Five rules fix nearly all of it.
1. Always use lower case
Google's documentation is explicit: "Parameter values are case sensitive, e.g. utm_source=google is different from utm_source=Google." It recommends lower case as standard practice. If one person types Facebook and another types facebook, GA4 reports two sources.
2. Use hyphens, not spaces
Spaces get encoded as %20 or + and look messy in reports. Hyphens are readable and safe: spring-sale-2026, not Spring Sale 2026.
3. Keep source and medium to a fixed list
Agree a short list and don't add to it without a reason:
| Source | Medium |
|---|---|
newsletter |
email |
facebook, instagram, linkedin |
social (organic) or paid-social |
google, bing |
cpc |
partner-name |
referral |
flyer, van-livery, shop-window |
print or qr |
4. Make campaign names readable and dated
A good campaign name tells someone a year later what it was: boiler-service-autumn-2026, black-friday-2026, newsletter-2026-10. Avoid codes only one person understands.
5. Use utm_content to tell links apart
If an email has three links to the same page, tag them utm_content=hero-button, utm_content=text-link and utm_content=footer. You'll learn which placement people actually click.
Keep all of this in a shared spreadsheet: the date, the destination URL, every parameter and the final tagged link. It takes seconds per link and saves hours of cleanup later.
Never use UTM parameters on internal links
This is the most common and most damaging mistake. A homepage banner linking to /offers?utm_source=homepage&utm_medium=banner looks harmless. But when a visitor who arrived from your Google Ads campaign clicks it, the analytics data now says the visit came from "homepage / banner". The ad that actually brought them in loses the credit for any enquiry or sale that follows.
UTM parameters are for traffic arriving from outside your site. To measure internal promotions instead:
- Use GA4's event tracking for clicks on banners and buttons.
- Compare page paths in the path exploration report.
- If you run several connected domains, set up cross-domain measurement in GA4 rather than tagging links between them.
Search your templates, menus and banners for links containing utm_, or run a site crawl and filter the internal links for it. If you find any pointing to your own domain, remove the parameters. While you're at it, the broken link checker will catch internal links that no longer work.
Where to use UTM parameters
| Channel | Tag it? | Notes |
|---|---|---|
| Email newsletters | Yes | Most email platforms can add UTMs automatically. Check their default values match your convention. |
| Social posts and bios | Yes | Tag organic posts and profile links separately so you can compare them. |
| Paid search (Google Ads) | Usually no | Use auto-tagging in Google Ads, which passes richer data to GA4. Tag manually for Microsoft Ads and other platforms. |
| Paid social | Yes | Many ad platforms support URL templates with dynamic values. |
| QR codes on print | Yes | Without tags, scans usually show as Direct. |
| Partner and directory listings | Yes | Shows whether a paid listing is worth renewing. |
| Google Business Profile website link | Optional | Many businesses tag it to separate profile clicks from organic search. Be consistent once you choose. |
| Links between your own pages | Never | Overwrites the real source. |
| Links in press releases | Optional | Journalists often strip or edit links, so don't rely on them. |
UTM parameters, SEO and canonical URLs
Tagged URLs are technically different addresses for the same page. Search engines usually handle this fine, especially when your page has a self-referencing canonical tag pointing to the clean URL. If tagged URLs start appearing in Search Console or in your crawl reports, check the canonical. Our guide to canonical tags explains how they work, and the meta tag checker shows the canonical on any URL.
Don't put tagged URLs in your XML sitemap, and don't use them in internal links (see above). Keep the URLs themselves short and readable too. Our guide to SEO-friendly URLs covers that side.
Checking your UTM data in GA4
Once tagged links are live:
- Click your own test link, then open GA4's Realtime report to confirm the source, medium and campaign appear correctly.
- A day or two later, open Reports > Acquisition > Traffic acquisition and switch the primary dimension to "Session source / medium" or "Session campaign".
- Look for
(not set), mixed capitals and unexpected values. Each one points to a link that was tagged wrongly. - Check the "Unassigned" channel. Anything sitting there usually has a medium GA4 doesn't recognise.
- Fix the source of the problem, which is normally a template, a default in your email tool or an old link in a social bio.
If you're pulling GA4 and Search Console data together manually every week, that's a good candidate for automation. Our guide to automating SEO reporting covers the free options, and Make It Flow can map your reporting workflow if you'd rather talk it through.
FAQ
What are UTM parameters used for?
UTM parameters label links so Google Analytics can tell where a visit came from. They let you see which email, social post, ad or QR code brought someone to your site, and whether those visitors went on to enquire or buy. Without them, much of that traffic shows as Direct, Unassigned or a generic referral.
Which UTM parameters are required?
Google says you should always use utm_source, utm_medium and utm_campaign. The others, such as utm_content, utm_term and utm_id, are optional but useful. If you leave out one of the three main parameters, GA4 shows (not set) for it, which makes your reports harder to read.
Are UTM parameters case sensitive?
Yes. Google confirms that utm_source=google and utm_source=Google are treated as different values. Mixed capitals split one source into several rows in your reports. Use lower case for every value and hyphens instead of spaces, and enforce it with a shared naming sheet or a builder tool that cleans values for you.
Should I use UTM parameters on internal links?
No. Tagging links between pages on your own site overwrites the original source of the visit, so the email or ad that actually brought someone in loses credit for the enquiry or sale. Use GA4 event tracking to measure clicks on internal banners and buttons instead, and keep UTMs for traffic arriving from outside.
Do UTM parameters affect SEO?
Not directly. They label visits for analytics and don't change what's on the page, but tagged URLs are technically separate addresses for the same page. A self-referencing canonical tag on the page usually keeps search engines focused on the clean URL. Don't use tagged URLs in your sitemap or internal links, and they shouldn't cause problems.
How do I track QR codes in Google Analytics?
Add UTM parameters to the URL before you generate the QR code, for example utm_source=shop-window&utm_medium=qr&utm_campaign=autumn-offer. Without tags, most scans appear as Direct traffic. Use a different utm_source or utm_content for each placement so you can compare a flyer with a van sign or a poster.
Written by the MakeItFlow team
We build the website audit these guides are based on. Every fact is checked against the primary sources listed above and this guide was last reviewed on 25 October 2026 . How we research and check
Check your own site in 30 seconds
Run a free audit covering speed, SEO, DNS, email authentication and security headers — and get a prioritised fix list.