UTM QA Linter
Check your UTM-tagged URLs for common tracking errors before launching campaigns
Supports full URLs with UTM parameters. Paste as many as you need.
Results
What Does This Tool Check?
The UTM QA Linter runs 10 automated checks against your campaign URLs to catch mistakes that silently corrupt your analytics data. Every issue found here would otherwise appear as messy, ungroupable rows in GA4.
Missing Parameters
Ensures utm_source and utm_medium are always present — the two required fields for GA4 channel grouping.
Empty Values
Detects parameters set to blank (e.g. &utm_campaign=), which creates “(not set)” in reports.
Spaces & Special Characters
Flags unencoded spaces and characters that break URL parsing or create duplicate campaign entries.
Case Inconsistencies
Catches mixed case (Facebook vs facebook) — GA4 treats these as separate sources.
Duplicate Parameters
Finds repeated UTM keys in the same URL which cause unpredictable tracking.
PII in Parameters
Scans for email addresses, phone numbers, or user IDs that violate analytics platform policies.
UTM Best Practices
- Use lowercase for all UTM values
- Use underscores or hyphens instead of spaces
- Always include utm_source and utm_medium
- Create a naming convention document for your team
- Use consistent source names (facebook, not fb/FB/Facebook)
- Put spaces in parameter values
- Mix uppercase and lowercase
- Include personal data (emails, user IDs)
- Use UTM tags on internal links
- Forget to test URLs before launching campaigns
UTM Parameters Reference
| Parameter | Required | Purpose | Example |
|---|---|---|---|
utm_source | Yes | Identifies the traffic source | google, newsletter |
utm_medium | Yes | Marketing medium or channel | cpc, email, social |
utm_campaign | Recommended | Campaign name or promo code | spring_sale_2026 |
utm_term | Optional | Paid search keywords | running+shoes |
utm_content | Optional | Differentiates ad creatives or links | header_cta, blue_banner |
Frequently Asked Questions
GA4 and most analytics platforms are case-sensitive. utm_source=Facebook and utm_source=facebook create two separate source entries in your reports, splitting your data and making it harder to analyze campaign performance accurately.
Without both utm_source and utm_medium, GA4 cannot properly classify your traffic into channel groups. The visit may end up in “Unassigned” or “Direct” instead of the correct channel, making your campaign reporting inaccurate.
Spaces should be replaced with underscores, hyphens, or URL-encoded as %20 or +. Unencoded spaces break the URL structure and can cause the parameter value to be truncated or lost entirely.
Including email addresses, phone numbers, or other personally identifiable information in UTM parameters sends that data to analytics platforms like Google Analytics. This violates Google’s Terms of Service and privacy regulations like GDPR, and can result in account suspension.
No. UTM parameters on internal links (links within your own site) will start a new session in GA4, overriding the original traffic source. Use internal link tracking via events or content grouping instead.
This tool runs entirely in your browser, so there is no server-side limit. You can paste hundreds of URLs. For very large batches (1,000+), processing may take a moment but all checks are performed locally — your URLs are never sent to any server.