UTM QA Linter: Check Your Campaign URLs for Tracking Errors

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

DO
  • 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)
DON’T
  • 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

ParameterRequiredPurposeExample
utm_sourceYesIdentifies the traffic sourcegoogle, newsletter
utm_mediumYesMarketing medium or channelcpc, email, social
utm_campaignRecommendedCampaign name or promo codespring_sale_2026
utm_termOptionalPaid search keywordsrunning+shoes
utm_contentOptionalDifferentiates ad creatives or linksheader_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.