Webclat / Tealium Practice

Why does my Tealium tag fire multiple times for what should be a single page load?

Answer

A tag fires more than once when more than one load rule - or the same load rule plus a manual utag.link/utag.view call - evaluates to true for the same moment, or when the page itself calls the Tealium loader snippet more than once: a duplicate snippet injected by a CMS module, a duplicated header/footer include, or a client-side router re-mounting the loader. Check load rule overlap first - it's the more common cause - then check for a duplicate loader snippet second.

Why this happens

iQ tags aren't bound to "the page load" as a single event - they're bound to whichever load rules currently evaluate true, at whatever moment those rules get evaluated. If two load rules with different conditions both end up true on the same page (a broad "all pages" rule and a narrower page-specific rule meant to be mutually exclusive but aren't), the tag attached to each fires once per rule, producing duplicate beacons that look identical in a report.

Separately, some CMS or tag-injection setups - a plugin, a header snippet, and a manually pasted script - each add their own copy of the Tealium loader. When that happens, the whole library, and everything wired to page-load, runs twice from the start.

Fix it

  1. Open the tag in iQ and list every load rule attached to it. If more than one rule is attached, check whether their conditions can both be true at once - "All Pages" plus "URL contains /checkout" are not mutually exclusive; a checkout page satisfies both.
  2. Consolidate overlapping rules into one rule with the correct condition, rather than attaching multiple rules to the same tag and relying on them never overlapping in practice.
  3. Search the page's rendered HTML - view-source, not the CMS editor - for the Tealium loader snippet (search for "utag.js" or your profile's //tags.tiqcdn.com/utag/ path) and confirm it appears exactly once. A duplicate is common after a CMS theme update or a marketing plugin that "helpfully" re-adds tracking snippets.
  4. If a manual utag.link() call exists in application code and the same interaction is also covered by a DOM click rule inside Tealium (this happens during migrations from other tag managers), pick one mechanism and remove the other rather than running both.
  5. For tags that must run once per session rather than once per page, move that logic into the tag's own settings or a load rule condition based on a session-scoped data layer value, instead of trying to solve session-level dedup with page-level load rules.

How to verify it worked

  • Use Tealium's Trace tool on a single page load and count how many times the specific tag appears in the trace log - it should be exactly one entry per intended firing, not two for the same navigation.
  • Open the Network tab, filter by the vendor's beacon endpoint (a GA4 collect endpoint, a pixel domain), and confirm one request per page load, not two with identical parameters and near-identical timestamps.
  • View-source the live page - not a staging or CMS preview - and search for the tag.js loader URL to confirm exactly one script tag references it.
  • Re-check the reporting platform itself a day later. A load-rule fix should show the count for that page drop to roughly half of what a duplicate was producing, if that was the cause.

Stop paying for the same event twice.

We audit your load rule overlap and loader placement, then trace it live to confirm each tag fires exactly once.

Audit My Load Rules