How to Prevent Lead Form Tags from Firing on Page Reloads with Google Tag Manager

Duplicate submissions can be a nightmare for lead tracking. Every time a user refreshes the thank-you page after submitting a form, conversion tags can fire again—resulting in inflated lead counts and misleading analytics.

Here’s how to prevent that using Google Tag Manager (GTM) and a small JavaScript tweak.

Why Page Reloads Trigger Duplicate Leads

By default, GTM triggers fire on every page load. On a lead form, this means:

  • User submits the form → tag fires
  • User refreshes the thank-you page → tag fires again

This leads to duplicate lead counts and inaccurate reporting.

Detecting Page Reloads with JavaScript

Browsers provide navigation information via the Navigation Timing API:

performance.navigation.type

Values:

  • 0 → New page load
  • 1 → Page reload
  • 2 → Back/forward navigation

We can use this to check if a page is being reloaded.

Setting Up GTM Variables

  1. JavaScript Variable
    • Name: js-reload
    • Global Variable Name: performance.navigation.type
  2. Custom JavaScript Variable
    • Name: cjs-reload
    • Code:

function(){

return performance.navigation.type == 0 ? false: true;

}

This returns true for reloads and false for new page loads, making trigger conditions easy to manage.

Configuring the Lead Form Trigger

  1. Edit your Page View or Form Submission trigger.
  2. Add a condition:
    • Fire tag only if cjs-reload equals false.

This ensures the lead form conversion tag fires once per actual submission, even if the user refreshes the page.

Benefits

  • Accurate lead tracking
  • Prevents duplicate submissions
  • Cleaner analytics and reporting

Testing

Always use GTM Preview Mode to confirm that:

  • The tag fires once on a new submission
  • It does not fire again on page reload

This simple setup ensures reliable tracking for your lead forms without duplicates.