Without SourceLoop
UntaggedKayden Floyd
- SourceUnknown
- MediumUnknown
- CampaignUnknown
- Landing pageUnknown
Free tool
Paste a tagged URL and see every UTM issue: missing parameters, case mismatches, encoded spaces, non-standard mediums, typos, duplicates. Find broken UTMs before they fragment your attribution reports.
Paste a tagged URL to validate
Issues and parsed parameters
Parsed parameters
| Key | Value | Status |
|---|
How it works
Paste, scan, fix. Runs entirely in your browser, no data leaves your machine.
example.com/p ?utm_source=Google &utm_medium=cpc &utm_campaign=spring sale
Tagged URL from anywhere: an email, an ad, a redirect chain. Schemes optional, the validator handles partial URLs too.
Errors, warnings, and info-level suggestions, each tied to the specific parameter that triggered them. No guessing.
example.com/p ?utm_source=google &utm_medium=cpc &utm_campaign=spring_sale
Auto-fixable issues (case, spaces, duplicates) get cleaned in a recommended URL ready to copy and ship.
What it checks
These bugs do not throw errors. They silently fragment your reports. The validator surfaces them before they hit production.
Missing required fields
utm_source is required for every analytics tool to attribute the visit. utm_medium and utm_campaign are recommended. The validator flags whichever are missing.
Case mismatch
GA4 treats utm_source=Google and utm_source=google as separate sources. Mixed case fragments your reports without warning. The fix is always lowercase.
Encoded spaces
Spaces in UTM values become %20 in the URL, which looks ugly and breaks naming consistency. Replace with underscores or hyphens before publishing.
Non-standard mediums
GA4 channel grouping reads utm_medium against a fixed vocabulary (cpc, email, social, referral, organic, display, affiliate). Custom values default to 'unassigned'.
Duplicate parameters
If the same UTM key appears twice, browsers and analytics tools pick whichever they like. Usually a sign of broken redirect chains or doubled-up tracking.
Common typos
googel, fackbook, linkdin, twiter. The validator fuzzy-matches utm_source against common platform names and flags likely typos before they hit production.
Best practices
Lowercase, always
Pick lowercase and apply it everywhere. Mixed case is the single most common UTM bug and it silently fragments every report it touches.
Pick utm_medium from a fixed vocabulary
cpc, email, social, paid_social, referral, organic, display, affiliate, podcast. Stick to that list so GA4 channel grouping works without custom rules.
Underscores or hyphens, not spaces
spring_sale or spring-sale, not "spring sale". URL-encoded spaces become %20 and break naming consistency across reports.
Validate before you publish, not after
Run every campaign URL through a validator before it goes out. Catching one typo in a Google Ads template can save you weeks of fragmented reporting.
Document the convention
Pin a sheet to your team Slack with the agreed-on naming convention. Audit it monthly. UTMs drift fast without a documented standard.
Built by the team behind SourceLoop
Guide
A misspelled environment variable crashes your build. A syntactically invalid SQL query throws an error. A misspelled UTM does nothing visible. The URL still works, the page still loads, the analytics tool still records the visit. The damage shows up two weeks later when you're trying to roll up a campaign report and discover that "google" and "Google" are two separate sources, your spring_sale campaign is split across three subtle naming variants, and the Q2 number in your dashboard is wrong by 30 percent. Validating UTMs at publish time prevents this entire class of silent bug.
The validator runs each of these checks against your URL and reports them with severity, so you know which to fix before publishing and which are stylistic preferences.
The validator can auto-fix three categories: case (lowercases all values), spaces (replaces %20 with underscores), and duplicates (keeps the last occurrence per UTM key). It does not auto-fix typos in source names because the right replacement depends on intent (was it meant to be "google" or "google_ads" or "ads.google.com"?). It also does not add missing utm_source because there is no way to guess the right value. Both are flagged for manual review.
GA4's default channel grouping uses utm_medium to bucket traffic into channels. The mapping is fixed: cpc / ppc / paid_search go to Paid Search; email goes to Email; paid_social / social go to Social; referral goes to Referral; organic goes to Organic Search; display goes to Display; affiliate goes to Affiliate. Custom values like "newsletter" or "paid" land in "(unassigned)" by default, which makes channel rollups inaccurate. You can override this with custom channel rules in GA4, but most accounts do not, and the validator's nudge toward standard mediums saves you that downstream work.
Most teams audit UTMs reactively: the report looks weird, someone digs in, finds the typo, fixes it going forward but can't recover the bad data. Validating at publish time catches the bug before any traffic flows through it. The ideal workflow: every paid campaign, email send, and partner link runs through the validator before the URL goes live. Five seconds of validation saves weeks of fragmented reporting.
It cannot detect whether you are putting UTMs on internal links inside your own site (which destroys multi-touch attribution by resetting the source on every click). That requires knowing your domain. It also cannot detect whether your utm_campaign naming convention matches your team's documented standard, since there is no universal convention. The validator catches the universal bugs. Team-specific conventions still require team-specific tooling.
FAQ
Six categories: missing required parameters (utm_source, utm_medium, utm_campaign), case mismatches (Google vs google), encoded spaces (%20 in values), non-standard utm_medium values that GA4 won't auto-classify, duplicate parameters, and common typos in source names. Each issue is flagged with severity (error, warning, or info) and the validator shows a cleaned-up version of the URL with the auto-fixable issues resolved.
Most analytics tools, including GA4, treat UTM values as case-sensitive. utm_source=Google and utm_source=google are stored as two separate sources. This silently fragments your reports: the same campaign appears as multiple lines, totals look smaller per source, and channel grouping rules can miss the wrong-case ones. The fix is always lowercase, applied consistently. The validator flags any uppercase characters in your values.
GA4's default channel grouping uses utm_medium to bucket traffic into channels (Paid Search, Email, Social, Referral, Organic, Display, Affiliate). It uses a fixed vocabulary: cpc/ppc/paid_search for paid search, email for email, social/paid_social for social, etc. Custom values like 'newsletter' or 'paid' get bucketed into 'unassigned' by default and require custom channel rules to fix. The validator flags non-standard mediums and suggests the closest standard match.
Browsers and analytics tools handle duplicates inconsistently. Most pick the last value, but redirect chains, server-side rewriting, and middleware can produce surprising results. The most common cause is a tagged URL going through a marketing automation platform that re-tags it on the way out. The validator flags duplicates as an error because there is no scenario where they are intentional.
It runs entirely in your browser. The URL is parsed and validated client-side using JavaScript. Nothing is sent to a server, logged, or stored. You can paste internal staging URLs, sensitive tracking links, or anything else without leaving any trace.
Yes. UTMs are a Google-originated convention but every major analytics tool (Adobe, Mixpanel, Amplitude, Heap, HubSpot, SourceLoop) supports them. The validation rules in this tool apply universally: missing parameters, case mismatches, and naming inconsistencies cause the same problems across every analytics platform.
Yes. No signup, no email gate. We host it because the same teams trying to keep UTMs clean also need real attribution to know whether their tagged URLs actually drive revenue, which is what SourceLoop does.
Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.
Without SourceLoop
UntaggedKayden Floyd
With SourceLoop
Auto-taggedKayden Floyd