Guide

UTM values drift between template and inbox

The tracking parameters you type into a template are not always the ones the delivered email carries. This guide covers how that drift happens, the five structural issues SendProofs detects on final URLs, and the one review only a human can do.

Last verified: 2026-08-24

How drift happens

Three mechanisms account for most of it:

  • Platform auto-tagging. Many sending platforms append their own tracking parameters at send time, or override the ones already in the template. What you typed and what ships are two different URLs.
  • Cloned templates. Last quarter's template carries last quarter's parameter values into this quarter's send — structurally valid, silently stale.
  • Redirects dropping the query string. A hop in the redirect chain that forwards to a clean URL loses the parameters along the way, so the final URL arrives untagged even though the link in the email was tagged.

All three are invisible in the template editor. They only show up on the delivered email's links, followed to their final URLs — which is where SendProofs looks.

The five structural issues SendProofs detects

UTM review runs on the final URL after HTTP redirects — up to 3 hops, links only — because that is the URL the chain actually ends at, not the one the template shows. Each issue is recorded by name on the resource:

Missing required keys
Where required UTM keys are defined for your workspace — captured with the campaign at upload time — a final URL missing one of them is flagged.
Duplicate keys
The same key twice, usually template tagging plus platform auto-tagging. Which value wins depends on the tool reading it.
Blank values
A key with nothing after the equals sign — utm_campaign= — tags the click with an empty label.
Non-canonical casing
UTM_Source instead of utm_source. Miscased keys can be treated as different, unrecognized parameters downstream.
Malformed URLs
A final URL that cannot be parsed at all is recorded as malformed rather than silently skipped.

A link that answers 200 but carries a UTM issue is reported Warning, not Healthy — the destination works, and the tracking still needs a decision before send.

Structure is checkable; meaning is yours

A deterministic checker can verify that parameters are present, unique, non-blank, canonically cased and parseable. It cannot know that utm_campaign=spring-sale is the wrong label for an autumn campaign — that URL is structurally valid and factually wrong, and catching it is a human's job.

The report is built to make that human review fast: redaction replaces query values with [REDACTED] except the five standard utm_* keys, precisely so you can read the final tracking values on every link in one place and check them against what this campaign is actually called.

A worked example

Sample data August launch — final test · the blog link
ResourceStateEvidence
campaign.example/blog/whats-new?utm_source=email Warning 200, but the workspace's required utm_campaign is missing on the final URL

Sample data — one row from the canonical sample run, where this link is 1 of the 2 Warnings.

By every network measure this link is fine: it answers 200. But the workspace defines utm_campaign as required, and the final URL carries only utm_source=email. Clicks arrive labeled with a source and no campaign — the launch's blog traffic ends up unattributable to the launch. The campaign's other links carry utm_campaign=aug-launch, which is how a missed link like this stands out in the report.

The fix follows the standard loop: re-tag the link in your sending platform, send a fresh test, upload it and recheck — the pre-send checklist walks the whole sequence.

Honest limits

  • Only HTTP redirects are followed. A JavaScript or meta-refresh interstitial past the final HTTP URL can still change what a browser ultimately lands on — that is invisible to any non-browser checker. How redirect chains are recorded.
  • The review is structural. It says nothing about whether a present, well-formed value is the right one for this campaign.
  • The missing-key issue applies where required UTM keys are defined for the workspace; without them, the other four checks still run.

Read the final UTM values on your own links

Upload the delivered test — the tracking review is part of every report.

Create workspace