Free UTM Survival Test
Redirects, storage and form fields, in a real browser.
Paste a landing page. A real browser opens it with a test campaign tag, follows every redirect, and reads which form fields picked the tag up by the time the page settled.
Leads that arrive without a source usually lost it on the way: a redirect that rebuilt the address, a form on the next page that only reads its own URL, a script that fills the field too late. This shows where it went.
This check is switched off for the moment. Everything on this page still describes how it works.
Campaign data survives 2 redirects and reaches a hidden form field
- Redirects
- 2 (1 server, 1 script), kept
- Tags on page
- Google tag, Meta Pixel
- Stored on page
- 1 cookie
- Form fields
- utm_source, utm_campaign filled
- Ad click IDs
- Not tested here
- Submission
- Not tested here
One line first, then the evidence
The result opens with one sentence about where the campaign data ended up, then a table, the redirect chain and the form fields behind it.
- Reaches a form field
- The values survived every redirect and at least one field holds one. What happens when the form is sent is a separate question.
- Dropped at a redirect
- A redirect rebuilt the address without the query. The hop is named with its status code: that is the rule to fix on the server or in the page.
- Removed from the address
- No redirect lost it, but the page took the query off its own address after loading. Check that whatever needs the campaign reads it before then.
- Reaches the page, no field picks it up
- The values arrived, the page has a form, and no field held them by the time the page settled. Often a capture script that is missing, or one that fills fields only on submit.
- Needs an ownership-verified test
- The page sits behind bot protection, needs its own query parameters, left for another site or would not answer in time. A test you run on your own verified site can go further.
Why leads arrive without a source
The same few causes, over and over. Each one shows in a particular line of the result.
- 01
A redirect rule that drops the query
http to https, non www to www or an added slash, written without the query string. Shown as the first hop that drops the values.
- 02
A language or geo redirect
A script that builds a new address for the visitor's language and forgets the parameters. Shown as a script redirect.
- 03
The form is on the next page
The landing page has the campaign, the contact page does not, and the hidden fields only read the current address. Give the form page to see it.
- 04
The field is filled too late
A capture script that waits for consent or runs on submit. The test waits up to eight seconds after load; a field filled only on submit stays empty here.
- 05
The form is in someone else's frame
An embedded form on another domain cannot read the parent page's address unless the embed passes it on.
- 06
The field was renamed or removed
A template copied without its hidden fields, or a field whose name changed. Shown as a form with no campaign fields at all.
Checking it by hand
The same test, step by step, for when you want to see it yourself.
- Step 1
Open the page with a test tag
Add a test value to the address and open it in a private window.
?utm_source=test&utm_campaign=test - Step 2
Watch the address bar
After the page settles, is the query still there? If not, open the Network panel and look at each redirect.
301 Location: /landing - Step 3
Find the hidden field
In the Elements panel, search for the field's name and check its value.
input[name="utm_source"] - Step 4
Send a test lead and open it in the CRM
The only proof that the value arrives where reports are built. This tool stops before this step.
Questions
What does the UTM Survival Test check?
Which UTM values does it use, and will they show in my analytics?
A field shows as empty. Is the form broken?
Does it check gclid or other ad click IDs?
My form is on another page. Can it test that?
Does it work with HubSpot, Typeform or other embedded forms?
Is it safe to run on any site?
The other free tools
Check a page in one tool and open the result in another without waiting again. The four tag tools share one visit, and the two consent tools share three.
Conversion Tracking Checker
A quick read of one page's HTML for GA4, GTM, Google Ads and the Meta Pixel. No browser.
GA4 Checker
Which GA4 streams a page has, and whether the browser sent them anything.
Google Tag Manager Checker
Which GTM containers a page has, whether they load, and what the published container holds.
Google Ads Conversion Tracking Checker
Whether a page has a Google Ads tag, a configured conversion, and a conversion request.
Meta Pixel Checker
Which Meta pixels a page has, whether Meta knows them, and which events the browser sent.
Cookie Consent Checker
Three visits: untouched, after Accept all and after Reject all, and which tags sent data in each.
Google Consent Mode v2 Checker
The four Consent Mode signals before a choice, after Accept all and after Reject all.
Where this test stops
- 01
It never fills or sends a form, so it cannot show whether the value travels with the lead or reaches your CRM.
- 02
It adds no gclid, fbclid or msclkid. Ad click IDs are tested only on a site you have verified.
- 03
It does not accept the cookie banner. A script that waits for consent before filling fields will look like it never ran.
- 04
It blocks images, media and background requests. A form that loads its fields with a data request may not appear at all.
- 05
The form page is opened directly, not by clicking a link, so a campaign passed only in the link itself is not seen.
Verify my domain and test a real conversionCheck another page