UTM Parameter Debugger
Paste links that already carry UTM tags and see each parameter broken out, with missing fields and uppercase or spaced values called out.
https://example.com?utm_source=Google Ads&utm_medium=social&utm_campaign=Spring Sale
- ✎ utm_source: Contains spaces, Contains uppercase - lowercase recommended
- ✎ utm_campaign: Contains spaces, Contains uppercase - lowercase recommended
Corrected URL
https://example.com/?utm_source=google%2520ads&utm_medium=social&utm_campaign=spring%2520sale
Runs in your browser. Nothing you enter is uploaded.
What it does
Once a campaign is live, the links are scattered across ads, emails and bios, and one mistyped tag splits your traffic into rows you did not expect. This checker takes URLs you already have, one per line, and lays out utm_source, utm_medium, utm_campaign, utm_content and utm_term for each so you can read them side by side.
Use it for a pre-launch review of a link sheet, or when an analytics report shows Facebook and facebook as two sources and you need to find which links caused it. To create new tagged links from scratch, use the UTM builder instead.
How to use it
- 1
Paste one or more full URLs, including https://, into URLs to debug (one per line).
- 2
Read each result card: the five UTM keys with a short meaning, and the value or "missing" beside each.
- 3
Review the amber warnings for missing utm_source, utm_medium or utm_campaign, and the orange notes for uppercase, spaces or special characters.
- 4
Where a Corrected URL box appears, compare it with the original.
- 5
Use Copy corrected URLs, Export CSV or Export JSON to take the results with you.
What you get
One card per URL showing the five UTM parameters, warnings for missing required tags, value issues per parameter, and a corrected URL. Downloads are utm-debug.csv (url, five utm columns, warnings, issues) and utm-debug.json.
When to use it
- Auditing a campaign link sheet
- Paste every link from the spreadsheet at once and scan for any card that shows Missing utm_medium or a missing campaign.
- Explaining split rows in reports
- Find links whose utm_source uses capital letters, which the tool flags and lowercases in its corrected version.
- Checking a link someone sent
- Paste a colleague or agency link to confirm what it will report as before you publish it.
- Documenting a tagging audit
- Export the parsed results as utm-debug.csv or utm-debug.json to attach to a report or ticket.
Example
Input
https://shop.example.com/sale?utm_source=Facebook&utm_medium=paid_social&utm_campaign=Spring_Sale
Output
Two issues, both "Contains uppercase" (on utm_source and utm_campaign). No missing-field warnings. Corrected URL: https://shop.example.com/sale?utm_source=facebook&utm_medium=paid_social&utm_campaign=spring_sale
utm_content and utm_term show as missing but do not trigger a warning, because only source, medium and campaign are treated as required.
Tips
- Paste the final URL exactly as it will be published; a link without https:// is reported as Invalid URL rather than parsed.
- If a value contains spaces, rebuild the link with underscores or hyphens in the UTM builder rather than relying on encoded spaces, which read poorly in reports.
- Run the whole link list through at once so inconsistent spellings of the same source stand out when the cards sit next to each other.
- Keep the exported CSV with the campaign brief so you can trace a strange row in analytics back to the exact link later.
Questions
Which UTM parameters does the checker treat as required?
utm_source, utm_medium and utm_campaign. A link missing any of them gets a warning. utm_content and utm_term are displayed when present but are optional.
Why does it flag uppercase letters in UTM values?
Analytics tools treat Facebook and facebook as two different sources, so mixed case splits your data. The tool lowercases those values in the corrected URL.
How is this different from the UTM builder?
The builder creates a new tagged link from a destination and your campaign fields. The debugger reads links that already exist, breaks out their values and points out problems.
Can I check a whole list of campaign links in one go?
Yes. Put one URL per line and each gets its own result card; the CSV and JSON exports include every line.
Related tools
Related tools
