Playbooks
UTM Parameter Mistakes That Quietly Break Your Campaign Tracking
UTM parameters are case-sensitive, so "utm_source=Google" and "utm_source=google" get logged as two separate traffic sources — one of several small, easy-to-miss mistakes that silently fragment campaign data rather than causing an obvious error. The others: forgetting UTM tags entirely (which shows up as "(not set)" in reports), tagging internal links (which re-attributes a visitor's session mid-visit and destroys the original source data), and inconsistent naming like "SpringSale" vs. "Spring_Sale" (which Google Analytics treats as two distinct campaigns rather than one). None of these break the link itself — the URL still works and the page still loads — which is exactly why they go unnoticed until someone tries to build a report and finds the numbers don't add up.
Last updated Aug 21 · 16 min read
The required UTM parameters
Google's own documentation recommends always using three UTM parameters together as the core set for accurate tracking: utm_source (where the traffic came from — e.g., "newsletter," "google," "facebook"), utm_medium (the marketing medium — e.g., "email," "cpc," "social"), and utm_campaign (the specific campaign name). Two additional, optional parameters round out the full set: utm_term, used to identify paid search keywords associated with an ad, and utm_content, used to differentiate between creative variations — different ad copy or images — within the same campaign.
Case sensitivity: the single most common mistake
UTM parameter values are case-sensitive. "utm_source=google" and "utm_source=Google" are treated as different values by Google Analytics, which means a campaign tagged inconsistently across different team members, tools, or time periods can end up reporting as multiple separate traffic sources instead of one. Google's guidance is direct about this: use lowercase consistently as a standing rule, since it's the simplest way to eliminate this entire category of mistake before it starts.
Missing UTM tags and the "(not set)" problem
When a link is shared or clicked without any UTM parameters attached, the resulting visit shows up in Google Analytics' source/medium report as "(not set)" — a catch-all bucket that tells you almost nothing about where that traffic actually came from. This is a quiet, cumulative data-quality problem: it doesn't cause any visible error, but every untagged link is a small hole in your attribution data, and enough of them add up to a source/medium report that's meaningfully less useful than it should be. Missing UTM parameters are specifically flagged in attribution guidance as a root cause of unreliable attribution data more broadly — the problem doesn't stay contained to one report; it propagates into any downstream attribution modeling that depends on that source/medium data being complete.
Inconsistent naming fragments your data
Beyond case sensitivity, inconsistent naming conventions split what should be one campaign into several rows in a report. Google's own documentation gives a direct example: "SpringSale" and "Spring_Sale" are treated as distinct values, meaning a campaign tagged both ways across different channels or by different team members shows up as two separate campaigns rather than one combined view — understating the campaign's actual total performance in any report that doesn't manually reconcile the two variants.
This same fragmentation risk applies to utm_source specifically: using "facebook," "Facebook," and "fb" in parallel across different links creates three separate traffic sources in analytics, even though all three represent the exact same channel. A documented industry finding puts a number on how widespread this problem is: 67% of marketing teams report using UTM parameters, but only 58% have a documented naming strategy — meaning a meaningful share of teams tagging links at all are still doing so without the consistency that makes the resulting data actually usable.
Tagging internal links: a mistake that erases attribution
A more damaging and less obvious mistake: adding UTM parameters to links within your own website. If a visitor arrives at your site from a genuine external source (say, an email campaign) and then clicks an internal link that happens to carry its own UTM parameters, their session gets re-attributed to that internal UTM source — silently overwriting the actual original source data with an internal one. UTM parameters should only ever appear on outbound links: emails, ads, social posts, and external partner content — never on navigation links, internal blog cross-links, or any URL pointing back to your own domain. This single mistake can quietly corrupt attribution for an entire site's worth of traffic if a template or CMS accidentally applies UTM tags to internal navigation elements.
utm_term and utm_content: the parameters people skip
Because utm_source, utm_medium, and utm_campaign form the "required" trio, utm_term and utm_content are often skipped entirely — but skipping them means losing a layer of granularity that matters for optimization. utm_term is what lets a paid search team see which specific keyword drove a given click, rather than just knowing the campaign it belonged to; utm_content is what lets any campaign distinguish between two different pieces of creative (different ad copy, different images, different email CTAs) running under the same source/medium/campaign combination, which is often exactly the comparison a team needs to run an A/B test or creative optimization.
Practical examples
Example 1 — A campaign fragmented by case inconsistency. A social media team tags Facebook links as "utm_source=Facebook" for one campaign and "utm_source=facebook" for the next. In the source/medium report, these appear as two separate rows rather than one combined "facebook" total, understating the channel's real contribution unless someone manually reconciles the two.
Example 2 — Email traffic disappearing into "(not set)" or direct. A newsletter platform's built-in link-sharing feature strips UTM parameters by default. Every click from that newsletter shows up as "(not set)" or, in some tracking setups, gets misattributed as direct traffic — making the email program look like it contributed zero measurable sessions, when in reality it drove meaningful traffic that simply isn't being tagged.
Example 3 — Internal linking corrupting attribution mid-session. A blog's "related posts" widget is built using the same URL template as the site's paid ad landing pages, which includes UTM parameters by default. A visitor who arrived from a paid ad, then clicks a related-post link, gets re-attributed to whatever UTM values are baked into that internal link template — silently overwriting the original paid-ad attribution partway through their session.
*Illustrative only:* these are constructed scenarios illustrating the documented mistake patterns above, not confirmed incidents at named companies.
Data and evidence
– Google recommends always using utm_source, utm_medium, and utm_campaign together: Google Analytics Help.
– UTM values are case-sensitive; "google" and "Google" are treated as different values: Google Analytics Help.
– Missing UTM parameters cause "(not set)" in source/medium reports: Google Analytics Help.
– "SpringSale" vs. "Spring_Sale" treated as distinct values, fragmenting campaign data: Google Analytics Help.
– utm_term identifies paid search keywords; utm_content differentiates creative variations: Google Analytics Help.
– Google's Campaign URL Builder is the official tool for adding campaign parameters to URLs: ga-dev-tools.google.
– Missing UTM tags flagged as a root cause of unreliable downstream attribution modeling: Databox.
– UTM parameters should never be applied to internal/navigation links, since doing so re-attributes a visitor's session mid-visit: corroborated across Brixon Group and dumbdata.co.
– 67% of marketing teams use UTM parameters, but only 58% have a documented naming strategy: UTM.io.
– "facebook" / "Facebook" / "fb" used in parallel creates three separate traffic sources for the same channel: Brixon Group.
Evidence not sufficiently verified: the 67%/58% figure comes from a single industry survey cited by UTM.io rather than a primary, independently reproducible dataset — treat it as a directional indicator of how common undocumented UTM practices are, not a precise industry-wide measurement.
Comparisons
utm_source vs. utm_medium. utm_source identifies where the traffic came from (a specific platform, publication, or list — e.g., "newsletter," "google," "instagram"); utm_medium identifies the broader marketing channel type that source falls under (e.g., "email," "cpc," "social," "organic"). A common, related mistake is putting a platform name in the medium field — for email campaigns, "email" should always be the medium, with the specific platform or list name going in the source field instead.
utm_campaign vs. utm_content. utm_campaign names the overall initiative (e.g., "spring_sale_2026"); utm_content distinguishes between different creative executions running within that same campaign (e.g., "banner_a" vs. "banner_b"), letting a team compare creative performance without needing a separate campaign name for every variant.
Real-world use cases
Paid search teams rely on utm_term specifically to connect click-through and conversion data back to the exact keyword that triggered an ad, informing bid and budget decisions at the keyword level rather than only at the campaign level. Email marketing teams use consistent utm_source/utm_medium tagging (with utm_medium fixed as "email" and utm_source identifying the specific platform or list) to separate performance across multiple newsletter lists or ESPs that might otherwise all blend into a single undifferentiated "email" bucket. Social media teams managing multiple platforms and multiple posting accounts use utm_content to distinguish between different creative variants of the same promotional push, enabling direct performance comparison across image vs. video vs. carousel formats within one campaign.
Common mistakes
– Inconsistent capitalization. "Google" vs. "google" fragments what should be one traffic source into two.
– Skipping UTM tags on some channels but not others. Produces an incomplete picture where some channels look artificially strong (fully tagged) and others artificially weak (showing as "(not set)" or direct).
– Inconsistent campaign naming. "SpringSale" vs. "Spring_Sale" vs. "spring-sale" all fragment one campaign's reported performance across multiple rows.
– Tagging internal links. Re-attributes a visitor's session mid-visit, silently destroying the original external source data.
– Putting platform names in the medium field. Confusing utm_medium (channel type) with utm_source (specific platform), which breaks the intended structure of the tagging system.
– Not documenting a naming convention at all. With 67% of teams using UTM parameters but only 58% having a documented strategy, a meaningful share of teams are tagging without the consistency needed to make the data usable later.
– Losing UTM parameters through redirects. Some redirect services or shorteners strip query parameters by default, silently dropping UTM data even when the original link was tagged correctly.
Best practices
– Always use utm_source, utm_medium, and utm_campaign together as the required baseline; add utm_term for paid search and utm_content when comparing creative variants.
– Standardize on lowercase for every UTM value, without exception, to eliminate the single most common fragmentation mistake before it starts.
– Write down a documented naming convention (exact source names, exact medium categories, a campaign naming pattern) before your team starts tagging links, rather than after inconsistency has already accumulated in your reports.
– Never apply UTM parameters to internal links — audit templates, related-post widgets, and navigation components specifically for accidental UTM tags that could be re-attributing sessions mid-visit.
– Use a single shared tool (like Google's Campaign URL Builder or an internal UTM builder) so every team member generates tags from the same source rather than typing parameters manually and introducing variation.
– Periodically audit existing tagged links for naming drift, especially after new team members or new channels are added, since inconsistency tends to creep in gradually rather than all at once.
– Test that redirect services or link shorteners in your stack preserve UTM parameters rather than stripping them, particularly for social and email links that often pass through a shortener.
Key takeaways
– UTM values are case-sensitive; standardizing on lowercase eliminates the single most common source of data fragmentation.
– Missing UTM tags don't cause a visible error — they quietly show up as "(not set)," degrading attribution data without any obvious warning sign.
– Never tag internal links — doing so re-attributes a visitor's session mid-visit and can silently overwrite genuine external attribution data.
– Inconsistent naming (capitalization, separators, abbreviations) splits one campaign's real performance across multiple report rows.
– Only 58% of the 67% of marketing teams using UTM parameters have a documented naming strategy — most of the mistakes in this article trace back to that missing documentation, not to any individual carelessness.
Relevant tools.scult.in resources
Building every campaign link from a single, consistent source — rather than typing parameters manually and introducing case or naming drift — is exactly what the UTM Builder is for. Once your tracking data is clean and consistent, the Marketing ROI Calculator is a natural next step for turning that properly attributed campaign data into an actual return-on-spend picture.
Frequently asked questions
What are UTM parameters?
Tags appended to a URL's query string that tell an analytics platform where traffic came from — which source, medium, campaign, and (optionally) term or content drove the click.
What are the required UTM parameters?
Google recommends always using utm_source, utm_medium, and utm_campaign together as the core set. (Google Analytics Help)
Are UTM parameters case-sensitive?
Yes — "utm_source=google" and "utm_source=Google" are treated as different values, so lowercase is the recommended standard.
What happens if I don't use UTM parameters on a link?
The resulting visit shows up as "(not set)" in the source/medium report, reducing the completeness and usefulness of your attribution data.
What is utm_term used for?
Identifying the specific paid search keyword associated with an ad click.
What is utm_content used for?
Differentiating between creative variations — different ad copy, images, or CTAs — within the same campaign.
What is the Campaign URL Builder?
Google's free, official tool for adding campaign (UTM) parameters to a URL for tracking in Google Analytics.
Does skipping UTM tagging actually break attribution modeling, or just one report?
It propagates further — missing UTM parameters are specifically flagged as a root cause of unreliable attribution data more broadly, not just an isolated gap in one report.
Why does my traffic show as "(not set)" in the source/medium report?
Because the link that traffic arrived from was missing UTM parameters entirely.
Why is my single campaign split into multiple rows in my report?
Inconsistent capitalization or naming (e.g., "SpringSale" vs. "Spring_Sale") is treated as distinct values by Google Analytics, fragmenting what should be one campaign's data.
Should UTM parameters ever be added to links on my own website?
No — UTM parameters should only appear on outbound links (emails, ads, social posts, external content); adding them to internal links re-attributes a visitor's session mid-visit and destroys the original source data.
Is there a standard naming convention I should follow for UTM values?
There's no single universal standard, but the core principle is consistency: pick lowercase values, a fixed set of medium categories, and a documented campaign-naming pattern, and apply them the same way every time.
What's the difference between utm_source and utm_medium?
utm_source identifies the specific origin (a platform, publication, or list); utm_medium identifies the broader channel type that source belongs to (email, cpc, social, organic, etc.).
What's the difference between utm_campaign and utm_content?
utm_campaign names the overall initiative; utm_content distinguishes between different creative variants running within that same campaign.
Do redirect services or URL shorteners ever break UTM tracking?
Yes — some strip query parameters by default, which silently drops UTM data even when the original link was tagged correctly; this should be tested directly with any shortener in your stack.
How widespread is inconsistent UTM tagging across marketing teams?
One industry survey found 67% of marketing teams use UTM parameters, but only 58% have a documented naming strategy, suggesting a meaningful share tag links without the consistency needed to keep the resulting data clean.
How do I build a UTM tracking link?
Start from your destination URL and append utm_source, utm_medium, and utm_campaign (and utm_term/utm_content if relevant) using a consistent, documented naming convention — Google's Campaign URL Builder automates this process.
How do I standardize UTM naming conventions across my team?
Document the exact allowed values for source and medium, a naming pattern for campaigns, and enforce lowercase as a hard rule, then have the whole team generate tags from a single shared tool rather than typing parameters manually.
How do I audit UTM links for consistency across an existing campaign history?
Export your existing source/medium and campaign reports, look for near-duplicate values (case variants, underscore vs. hyphen vs. no-separator versions of the same name), and reconcile or document a going-forward standard to prevent further drift.
How do I fix UTM data that's already fragmented across inconsistent naming?
Going forward, standardize new tagging; for historical data, some fragmentation can be reconciled in reporting by grouping known variants together, though the underlying raw data will still reflect the original inconsistent tags.
How do I make sure UTM parameters survive a redirect or shortener?
Test the specific shortener or redirect service with a UTM-tagged link and check the resulting analytics report to confirm the parameters weren't stripped before rolling it out broadly.
How do I prevent UTM tags from accidentally appearing on internal links?
Audit site templates, navigation components, and any "related content" widgets specifically for URL patterns that might inherit UTM parameters from the page they're rendered on, and strip them from internal-facing link generation.
How do I decide what goes in utm_medium vs. utm_source for a given channel?
utm_medium should describe the channel type generically (email, social, cpc, organic); utm_source should describe the specific instance (which platform, which list, which publication) — a common mistake is reversing these or putting a platform name in the medium field.
How do I use utm_content to run a creative A/B test?
Tag each creative variant with a distinct utm_content value while keeping utm_source, utm_medium, and utm_campaign identical across variants, so your reporting can isolate performance differences to the creative alone.
How do I document a UTM naming convention for a team that's never had one?
Write down the exact allowed utm_source and utm_medium values, a campaign-naming pattern, and a lowercase-only rule, then require every tagged link to go through a shared tool or template rather than manual entry.
Advanced: how does inconsistent UTM tagging propagate into multi-touch attribution models?
Since multi-touch models depend on correctly identifying each touchpoint's source and medium, fragmented or missing UTM data at any touchpoint can distort the attributed credit across the full customer journey, not just the report for that single touchpoint.
Advanced: can UTM parameters interfere with page caching or canonical URL handling?
This is a common technical consideration for sites using UTM-tagged landing pages — query parameters can sometimes create duplicate-content or caching complications if not handled with proper canonical tags; evidence not sufficiently verified here beyond flagging it as a known technical consideration outside the scope of Google's UTM-specific documentation.
Advanced: should UTM parameters be used alongside other tracking methods (like click IDs from ad platforms)?
Many teams use both in parallel — UTM parameters for cross-platform analytics reporting, and platform-specific click IDs (like Google Ads' or Meta's own click identifiers) for that platform's native conversion tracking — since the two serve different, complementary reporting systems.
Advanced: how should UTM conventions differ between paid and organic social tagging?
Paid social links typically warrant the full parameter set (including utm_content for ad creative variants), while organic social posts might use a simpler subset (source/medium/campaign only), since there's no "creative variant" concept in the same way for a single organic post.
Advanced: is there a risk in using overly long or overly generic UTM values?
Overly generic values (like utm_campaign=promo) reduce the specificity of your reporting, while overly long or inconsistent values increase the risk of small typos causing fragmentation — a documented, moderate-length naming convention balances both risks.
utm_source vs. utm_medium — which mistake is more common?
Both are commonly confused, but putting a platform name in the medium field (rather than the channel type) is a specifically documented, recurring mistake in guidance on this topic.
utm_campaign vs. utm_content — which should carry the A/B test variant name?
utm_content should carry the creative variant identifier; utm_campaign should stay identical across the variants being compared, so the campaign itself isn't fragmented by the test.
Manual UTM tagging vs. using a shared builder tool — which produces more consistent data?
A shared builder tool, since it removes the variation introduced by different team members manually typing (and inconsistently capitalizing or spelling) the same intended values.
Documented naming convention vs. ad hoc tagging — how much difference does it actually make?
Given that only 58% of the 67% of teams using UTM parameters have a documented strategy, the gap between documented and ad hoc practice is common enough to be a real, widespread data-quality risk rather than a theoretical concern.
Tagging every link vs. tagging only "important" campaigns — which is the better default?
Tagging every outbound marketing link by default is the safer approach, since partial tagging creates a systematically biased picture where tagged channels look artificially strong relative to untagged ones showing up as "(not set)" or direct.
My UTM-tagged link isn't showing up correctly in my analytics report — what should I check first?
Verify the exact capitalization and spelling of each parameter value against what's expected in your reporting tool, and confirm the link wasn't passed through a redirect or shortener that stripped the parameters.
My campaign data is split across multiple rows that should be one campaign — what's the fix?
Check for capitalization or naming-format inconsistency (e.g., underscores vs. hyphens vs. no separator) across the different tagged versions of that campaign name, and standardize going forward.
My email traffic is showing up as direct traffic instead of email — why?
Most likely the links in that email weren't tagged with UTM parameters at all, or the email platform's own link-wrapping stripped them — check the actual outbound link URLs the platform is sending.
My internal "related posts" links seem to be affecting my attribution data — is that possible?
Yes — if those internal links carry UTM parameters (often inherited accidentally from a shared template), clicking them mid-session re-attributes the visitor away from their original source; audit your internal link templates for unintended UTM tags.
My UTM parameters disappear after a link goes through my URL shortener — what's happening?
Some shorteners strip query parameters by default; test your specific shortener with a UTM-tagged link and check whether the parameters survive to the final destination.
Is it worth using a UTM builder tool instead of typing parameters manually every time?
Yes — a shared builder reduces the variation (capitalization, spelling, format) that causes most of the fragmentation mistakes described in this article.
Should I standardize my UTM naming convention before or after I've already tagged a large volume of historical links?
Standardize as early as possible — the earlier a documented convention exists, the less historical fragmentation there is to reconcile later, though it's still worth doing even after inconsistency has already accumulated.
Is it worth auditing our existing UTM tags across all active campaigns right now?
If you've never done this audit, yes — given how common undocumented, inconsistent tagging is across the industry (per the 67%/58% figure), there's a reasonable chance your existing data has some fragmentation worth identifying and fixing going forward.
Should a small business bother with the full UTM parameter set (including utm_term and utm_content), or just the core three?
The core three (source, medium, campaign) cover basic attribution; utm_term and utm_content add real value once you're running paid search (term) or comparing multiple creative variants (content) — worth adding once those specific use cases apply, rather than by default for every simple link.
Is a free UTM builder tool sufficient, or do larger teams need a paid campaign-tracking platform?
A free builder is sufficient for generating consistent tags; larger teams may additionally want a paid platform specifically for enforcing naming conventions automatically, storing a shared history of past campaign names, and preventing duplicate/inconsistent entries at the point of creation.
Should marketing or analytics own the UTM naming convention documentation?
Either can lead it, but it should be a single, shared, cross-team document — since UTM inconsistency most often arises when different teams (paid, email, social) tag independently without referencing the same source of truth.
Is it worth building UTM tagging into a template or workflow tool rather than relying on individual discipline?
Yes — building tagging into a shared template or required workflow step removes reliance on every individual remembering the convention correctly every time, which is the more scalable fix for a team beyond a couple of people.
Should UTM conventions be revisited periodically, or set once and left alone?
Periodic review is worth it, especially as new channels or team members are added, since naming drift tends to creep in gradually rather than being a one-time risk that's fully solved after the initial setup.
Is it worth investing time in UTM hygiene if we already have decent-looking traffic reports?
Yes — reports can look reasonable on the surface while still hiding meaningful fragmentation or "(not set)" gaps; a periodic audit is worth the modest time investment given how cheap the mistakes are to introduce and how expensive the resulting bad decisions (based on incomplete attribution data) can be.
What's the single highest-leverage fix for a team with messy UTM data today?
Standardize on lowercase, document a naming convention, and stop tagging internal links — those three changes address the most common and most damaging mistakes described throughout this article.
Sources
- https://support.google.com/analytics/answer/10917952
- https://ga-dev-tools.google/campaign-url-builder/
- https://databox.com/marketing-attribution-models
- https://brixongroup.com/en/the-10-critical-utm-parameter-mistakes-that-sabotage-your-marketing-tracking
- https://dumbdata.co/post/costly-utm-tracking-mistakes-that-can-ruin-your-data/
- https://web.utm.io/blog/utm-parameters-best-practices/

