What Is the Urchin Tracking Module?
Where the name comes from
The Urchin Tracking Module came from Urchin, a web analytics software company that operated before Google Analytics existed. Urchin's software used query parameters appended to URLs to pass campaign information into its reports. When Google acquired Urchin in 2005, the same parameters carried over into what became Google Analytics. The format kept the Urchin name even as the original product disappeared.
The "module" part of the name can be misleading today. UTM is not a piece of software you install or a server module. It is a convention: a set of five query string keys that anyone can add to a link. That simplicity is a large part of why it survived.
The five standard parameters
A UTM-tagged link looks like this:
https://example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=spring_launch
The five standard parameters are:
- utm_source identifies the site or sender, such as newsletter, twitter, or partnerblog.
- utm_medium identifies the broad channel, such as email, social, cpc, or referral.
- utm_campaign identifies the specific promotion or effort, such as spring_launch or onboarding_series.
- utm_term was originally used for paid search keywords and is still useful for that purpose.
- utm_content distinguishes between links or creative variations that point to the same destination.
Source, medium, and campaign are the most common. Term and content are optional in most cases, but they help when you run multiple links to the same page in one campaign.
Why UTM stuck around
UTM survived because it does one narrow job well. It attaches campaign context to a click without requiring a new tracking system, a script, or a vendor-specific format. The parameters are just URL query strings, so they work in plain links, email, social posts, QR codes, and documents.
There are several practical reasons the format has lasted:
- It is visible in the address bar, which makes debugging and manual testing easy.
- It works with spreadsheets, because the tagged URL can be split and filtered by parameter.
- It is supported across most analytics tools, so a campaign link does not need to be retagged for every platform.
- It does not depend on cookies or local storage to carry the initial campaign values in the URL.
- It is easy for non-developers to learn, especially with a simple naming convention.
The trade-off is that UTM tags only describe the link that was clicked. They do not identify a person, follow someone across sites, or explain what happened after the landing page. The parameters are just labels on a URL.
How UTM attribution works in practice
When a visitor clicks a tagged link, the landing page receives the UTM values in its URL. The analytics tool reads those values and credits the visit to the source, medium, and campaign you set. What happens after that depends on the tool.
Some tools keep the campaign value for the rest of the session. Others keep it for a conversion window, so a visitor who returns later can still be credited to the original campaign. A few tools only count the landing pageview itself. If you need to know how your tool handles this, check its documentation.
UTM parameters are not a replacement for a cookie or an identifier. A visitor who clicks a UTM link on their phone and later converts on a laptop may not be connected unless the analytics tool has another way to recognize the visitor. The UTM data still tells you which link started the journey, but it cannot prove the same person finished it.
This matters for privacy-focused analytics. A tool can read UTM parameters from the URL without storing personal data or setting a cookie. The campaign information is already in the request. That makes UTM a useful fit for cookieless measurement, even though the format predates modern privacy expectations.
Common UTM mistakes
The format is simple, but campaign tagging falls apart when there is no shared convention.
- Tagging internal links with UTM parameters overwrites the visitor's original source and makes reports confusing.
- Using inconsistent capitalization, such as utm_source=Twitter in one link and utm_source=twitter in another, splits the same source into two rows.
- Putting the channel in utm_source instead of utm_medium makes it harder to compare all email or all social traffic.
- Using campaign names that are too broad, such as "promo", gives you no way to tell one promotion from another.
- Reusing the same campaign name for different audiences or time periods muddies the results.
- Expecting UTM parameters to track direct visits, bookmarks, or untagged links is a misunderstanding of how they work.
The fix is usually a short shared document that lists the allowed sources, media, and campaign naming pattern. It does not need to be complicated. A simple rule like "lowercase, underscores, no spaces" solves many problems.
A practical tagging workflow
Pick the three values you need most and start there. For a small site, that is usually source, medium, and campaign.
A link from a newsletter might use:
https://example.com/trial?utm_source=newsletter&utm_medium=email&utm_campaign=april_launch
A link from a social post might use:
https://example.com/trial?utm_source=twitter&utm_medium=social&utm_campaign=april_launch
Keep a list of campaign links in a spreadsheet with columns for date, campaign, source, medium, and destination. That gives you something to search later and helps avoid duplicate or conflicting tags.
If you work with a coding agent, you can ask it to add UTM parameters to a batch of links in a project. The agent still needs a clear naming convention from you, because it cannot guess what "source" or "campaign" should mean for your business.
measuremy.site, for example, offers tracked campaign links with UTM tags that credit later traffic and signups. The tagging convention is still yours to define.
Why the name matters less than the habit
UTM is not a new or exciting technology. It is a naming scheme that survived because it was simple, open, and already embedded in the way people share links. The name is a reminder that good tracking conventions can outlast the tools that created them.
For a small site, the main value of UTM is not the format itself. It is the habit of tagging every campaign link before it goes out, so you can answer the question "where did this signup come from?" without guessing.
See it on your own site
measuremy.site is cookieless analytics your coding agent can read. 30-day free trial, no card. Plans from $9/month.
Start free trial See the live demoAdd measuremy.site analytics to this project: connect the measuremy.site MCP server at https://a.measuremy.site/mcp (it signs in with OAuth, no key), then tell me how to sign in. Details: measuremy.site/llms.txt
Free tools
- Free UTM link builder: Add utm_source, medium and campaign to any link.
- UTM link checker: Find broken UTM tags and see which GA4 channel a link lands in.
- Link shortener with click tracking: Short links with a click count by day and country.
More from the blog
- How to calculate your website conversion rate, and what to compare it to
- Is my A/B test result significant? A plain-English guide with a worked example
- What is bounce rate, how is it calculated, and is yours a problem?
- How to add a visitor counter to your website or GitHub README
- How much traffic does a website get? How to estimate any site's visits
- How to track QR code scans: count them, and see which poster worked
- How to see how many people clicked your link (without a paid shortener)
- How to check if your Google Analytics 4 tag is installed (and only counting once)
- Why GA4 shows your campaign traffic as Unassigned (and how to fix the links)
- Does your redirect keep your UTM tags? How to check before a campaign goes out
- How I built a self-hosted analytics MCP server on Cloudflare Workers and D1
- UTM tracking explained: what the parameters mean and how to use them
- Conversion funnel analysis for small sites: a practical guide
- Sudden drop in website traffic? A checklist for finding the cause
- What is an MCP server? A plain-English guide for people who run websites
- What Microsoft MCP servers actually do
- UTM parameters for email newsletters
- Track Button Clicks Without Google Tag Manager
- How to track the results of a social media post without cookies
- How to track traffic from a GitHub README
- How to measure a product launch without guessing