Tracking tag checks
Two checks, one mechanism. You declare the literal strings you expect - G-XXXX, GTM-XXXX, AW-, a Meta pixel, Clarity, Hotjar, anything - and CrawlWarden reports when one is no longer in the page source, or when one has started appearing more than once. Because it matches strings rather than integrating with vendors, it covers every analytics and advertising tool you use without a connector for any of them.
The important caveat: raw HTML only
These checks read the HTML response. A tag injected by JavaScript - by a tag manager that loads client-side, or by a consent layer that fires after a decision - will always read as missing, because it genuinely is missing from the document CrawlWarden receives.
That is not a limitation to work around so much as a boundary to know. Declare the IDs that are in your server-rendered HTML. For anything injected later, this check will produce a permanent false alarm, and the right answer is not to declare it.
Duplicates are worse than absences
A missing tag produces a flat line, and someone eventually notices a flat line. A duplicated tag produces numbers that are wrong in a plausible direction - every session, pageview and conversion counted twice - and plausible wrong numbers survive review indefinitely. They usually arrive when a tag is added to a template that already inherited it from a layout.
All 2 checks in this group
Declared tracking IDs present
on by default · per URL · confirmed over 3 runs
A tracking ID you declared is no longer in the page source.
A tag you declared is no longer in the page source. Analytics goes quiet, and the gap is usually found at the end of the month it happened in.
Duplicate tracking ID
on by default · per URL · confirmed over 3 runs
A tracking ID now appears more than once - double-counted analytics.
The same ID now appears more than once. Every conversion is counted twice, and the numbers stay plausible enough that nobody questions them.
Every check on this page is available on every plan, including the free one - limits are on sites and URLs, never on checks. CrawlWarden pricing, per site rather than per URL.