UTM Builder
Build a tagged campaign URL for GA4. Presets for email, social, ads and print get you started, and the builder warns about the three mistakes that quietly break campaign reporting: mixed case, a medium GA4 does not recognise, and tags on an internal link.
Short answer
A UTM builder assembles a campaign URL from five parameters: utm_source, utm_medium, utm_campaign, utm_term and utm_content. The first three matter, because GA4 attributes on source and medium and picks a channel from medium alone. Values are case sensitive, so Facebook and facebook become two rows that never add up, and a tagged internal link restarts the session, stealing the credit from whatever brought the visitor in. This builder flags all three as you type.
The five parameters, and which three matter
Every UTM guide lists the same five fields. Fewer say which ones change what you see in a report, which is the only question worth asking before you fill one in.
| Parameter | Answers | Example | What happens without it |
|---|---|---|---|
| utm_source | Where did the click come from? | newsletter | GA4 falls back to the referrer, or records direct |
| utm_medium | What kind of traffic is it? | The visit lands in Unassigned rather than a channel | |
| utm_campaign | What should this be totalled under? | spring-launch | The clicks are attributed but cannot be grouped |
| utm_term | Which paid keyword? | seo audit tool | Nothing, on anything that is not a manually tagged ad |
| utm_content | Which link on the page? | header-button | Two links to one page merge into one row |
Source and medium are the pair GA4 attributes on. Campaign is what makes a report readable a quarter later. Term is filled by the ad platform on anything auto-tagged, and content earns its place the moment a page has two links to the same destination.
The four mistakes that break campaign reporting
UTM tagging goes wrong in a small number of predictable ways, and none of them throws an error. The data arrives, it is simply wrong or unreadable, which is why these survive for years.
| Mistake | What you see | The fix |
|---|---|---|
| Mixed case in a value | Facebook and facebook as two rows, each with half the clicks | Lowercase everywhere, enforced by convention |
| A medium GA4 does not recognise | The campaign in Unassigned, looking like it delivered nothing | Use a known medium, or define a custom channel group |
| Tags on an internal link | Your own site as your top traffic source, and the real campaign credited with nothing | Never tag a link between two pages you own |
| A redirect that drops the query string | The campaign recorded as direct traffic | Test the link end to end; check shorteners preserve parameters |
| Two people inventing their own words | email, e-mail and Email as three mediums | Write the convention down and log every link built |
The internal link one is the expensive mistake
The others produce messy data. Tagging an internal link produces confidently wrong data: GA4 starts a new session at the tagged link and reassigns the visit to it, so the paid campaign that actually brought the person in shows a conversion rate of zero while an internal banner takes the credit. Measure internal clicks with events, never with UTMs.
Agreeing a convention before the links multiply
A UTM builder solves the easy half of this. The hard half is that two people will tag the same campaign differently, and neither will be wrong, and the report will be useless. That is a decision to write down rather than a tool to buy.
- 01
Start from the destination you want people to land on
The full URL, with https:// and any query string it already carries. The builder appends to an existing query string rather than replacing it, and keeps a fragment at the end so an anchor link still jumps where it should.
- 02
Fill source, medium and campaign, and treat them as required
Source is where the click came from, medium is what kind of traffic it is, campaign is what you want to total it under. GA4 uses medium to pick a channel group, so an unrecognised value quietly lands the traffic in Unassigned.
- 03
Write every value in lowercase, with hyphens
Campaign values are case sensitive in reports. Facebook and facebook become two rows that never add up, and the person reading the report six months later has no way to know they were the same campaign. Pick lowercase and never deviate.
- 04
Use content to tell two links on the same page apart
When a newsletter has a header button and a text link to the same page, content is the field that says which one was clicked. Without it the two merge and you lose the only interesting comparison in the send.
- 05
Leave term alone unless you are tagging a paid keyword by hand
Most ad platforms fill it automatically, and Google Ads auto-tagging supplies richer data than any manual UTM can. Filling it in by hand on an email link adds a column nobody will read.
- 06
Write the convention down before the second person tags a link
Every UTM problem is the same problem: two people picked different words for one thing. A one-page document naming the allowed mediums and the campaign naming pattern is worth more than any builder, this one included.
A convention that holds up
- Lowercase, always, with hyphens between words. No exceptions, because one exception is all it takes.
- A fixed list of allowed mediums, drawn from the ones GA4 recognises. Anything else needs a decision, not an improvisation.
- A campaign naming pattern with the date in it, such as 2026-q1-pricing-launch, so the report still makes sense to someone reading it next year.
- One shared sheet logging every link built, who built it and where it went. Copying an existing link is the only reliable way to stay consistent.
- Source names the platform, never the format. linkedin is a source; carousel is content.
What tagged URLs do to your organic reporting
UTMs are a marketing tool rather than an SEO one, but they land in SEO's lap through the back door, because every tagged link creates a second URL serving the same page. They also decide what counts as organic traffic in GA4, which is why a mis-tagged campaign can make a month of search performance look like something else entirely.
- A tagged URL needs a canonical pointing at the clean one. Nearly every CMS does this already, and it is worth confirming once rather than assuming.
- Tagged URLs occasionally pick up backlinks when someone copies a link out of a newsletter. The canonical consolidates the signal; without it the equity sits on a URL nobody else links to.
- Tagged URLs in a sitemap are a configuration error worth checking for. A sitemap should declare clean URLs only.
- Search Console reports the clean URL, so tagged traffic never appears there. Campaign traffic and organic traffic are different reports by design.
If you want to confirm a tagged URL is handled properly on your own site, the canonical checker reads what a URL declares and follows it to the page it names.
What this UTM builder does
All five parameters
Source, medium, campaign, term and content, with the required three marked
Presets to start from
Email, LinkedIn, Google Ads, paid social and printed QR codes
Mixed case flagged
The commonest cause of one campaign appearing as two rows
Unknown mediums flagged
A warning when GA4 will file the traffic under Unassigned
Existing query strings kept
Appends rather than replacing, so a URL with parameters survives
Fragments kept at the end
An anchor link still jumps where it should after tagging
Values encoded correctly
Spaces and symbols escaped so the link does not break when pasted
Nothing leaves your browser
Built client-side, which matters for an unlaunched campaign
What a builder cannot fix
Frequently asked questions
What is a UTM parameter?
A UTM parameter is a tag added to a URL's query string so an analytics tool can record where a visit came from. There are five: utm_source, utm_medium, utm_campaign, utm_term and utm_content. They are read by the analytics tag on the destination page, they do nothing on their own, and the name is historic: UTM stands for Urchin Tracking Module, after the company Google bought to build Analytics in 2005.
Which UTM parameters are required?
Source, medium and campaign in practice, though nothing enforces it. Source and medium are what GA4 uses to attribute the visit and assign it to a channel group, so a link missing either is recorded with the attribution it was meant to replace. Campaign is what lets you total several links together later. Term and content are genuinely optional.
Do UTM parameters hurt SEO?
Not when they are used as intended, which is on links arriving from somewhere else. They create a second URL for the same content, so each tagged URL needs a canonical tag pointing at the clean one, which almost every CMS does by default. The real risk is tagged URLs getting indexed or picking up backlinks, and the fix for both is the canonical, not avoiding UTMs.
Should I put UTM parameters on internal links?
No, and this is the mistake that does real damage. A UTM-tagged link between two pages of your own site starts a new session in GA4 and reattributes it to the tag, so the campaign that actually brought the person in loses the credit and your own site shows up as its own best traffic source. If you want to measure an internal banner, use GA4 events or the internal promotions report instead.
Are UTM parameters case sensitive?
Yes, and it is the commonest way campaign data turns to mush. Facebook, facebook and FaceBook are three separate rows in every report, each with part of the total, and nothing warns you. GA4 can lowercase incoming values with a data filter, but configuring that after the fact does not repair the data already collected. Picking lowercase and holding to it is the only reliable answer.
What medium values does GA4 recognise?
GA4 maps a known set to its default channel groups: email, cpc, ppc, paid_social, social, organic_social, affiliate, referral, display, banner, cpm, video, audio, sms, push and a few more. A medium outside that set is still recorded faithfully, it simply falls into Unassigned rather than a named channel, which is why a campaign can look like it delivered nothing. This builder warns when a medium is not one GA4 will recognise.
What is the difference between source and medium?
Source is the specific place, medium is the category it belongs to. A LinkedIn post is source linkedin, medium social. A LinkedIn ad is source linkedin, medium paid_social. The same source appears under several mediums and the same medium covers many sources, which is exactly why both exist: one tells you where, the other tells you what kind.
Can I use spaces in a UTM value?
They work, because the builder encodes them, but they make an ugly URL and an inconsistent report, since some tools show the encoded form and others decode it. Hyphens are the usual convention and underscores are the usual alternative. Pick one and apply it everywhere, because spring-launch and spring_launch are two campaigns as far as any report is concerned.
Do UTM parameters work with Google Ads?
They do, and you usually should not use them there. Google Ads auto-tagging adds a gclid parameter that carries far more than five UTM fields can, including the keyword, the ad group and the match type, and it stays accurate when you rename things in the Ads interface. Manual UTMs on Ads links are worth it only when you need the data in a tool that cannot read gclid.
Does this builder send my URLs anywhere?
No. The link is assembled in your browser as you type and nothing is posted to a server, which is why it has no run limit. That matters here more than on most tools, because an unlaunched campaign URL frequently names a product or a date that is not public yet.
How do I keep UTM tags consistent across a team?
With a written convention and a shared spreadsheet, not with discipline. Name the allowed mediums explicitly, fix a campaign naming pattern such as year-quarter-name, require lowercase, and log every link built so the next person copies rather than invents. Every messy UTM dataset comes from the same cause: two people independently picking a word for the same thing.
Why does my campaign show as direct traffic?
Usually a redirect that drops the query string, which is the quiet one: link shorteners, some email click trackers and badly configured server redirects all strip parameters on the way through. The others are a link pasted without the tags, an app that opens the URL in a webview with no analytics, and https-to-http downgrades. Test a tagged link end to end before a campaign goes out, and check the parameters survive to the landing page.
Other reporting and research tools
AI Humanizer
Rewrite AI-generated text to sound naturally human. Choose tone, style, platform (X, LinkedIn, Reddit, TikTok), creativity level, and more.
Use toolGSC Regex Generator
Describe a Search Console filter in plain English and get an RE2 regex back, explained token by token, with a live match tester.
Use toolWebsite Authority Checker
Check the link authority of any website on a 0 to 10 scale, with its global rank and referring domain count, from the open Common Crawl link graph.
Use toolBulk Website Authority Checker
Score up to 50 domains for link authority in one run, with the median, spread and outliers reported for the whole set and a CSV to take away.
Use toolDomain Age Checker with Spam Score
Check the age of up to 50 domains from the registry, set against their first archive capture, with a 0 to 100 spam score that flags re-registered expired domains and link sellers.
Use toolSEO Report Generator
Audit any page and save a client-ready PDF: indexing, on-page, structured data and Core Web Vitals, with a fix-first list and the rule behind each finding.
Use toolRead up on auditing and reporting
A tool tells you what is wrong. These explain what to do about it.
Free SEO Audit Template for 2026: 87 Checks Across 5 Tabs (Excel + Sheets)
Read guideSEO Audit Proposal Template: Win More Clients (Free Download)
Read guideSEO Proposal Template: Free Google Doc + Word (.docx) Download
Read guideTerms this tool checks
- CTR (Click-Through Rate)
Click-Through Rate (CTR) is the percentage of people who click on your search result after seeing it.
- Clicks
A click in Google Search Console is counted when a searcher clicks a result that sends them to your site.
- Organic Traffic
Organic traffic is the volume of visitors who arrive at your website through unpaid search engine results.
Campaign traffic measured, organic traffic guessed at
UTMs tell you what your campaigns brought in. They say nothing about the search traffic arriving without a tag, which on most sites is the larger half. CrawlRaven joins Search Console, GA4 and a crawl of your site, so the pages earning impressions, the queries behind them and the sessions they convert all sit in one view.