Usually a tracking script installed in two places, a redirect causing a second load, or an event handler attached more than once. Check the page source before changing anything.

The three symptoms

They look unrelated and share a small set of causes.

Analytics reporting roughly double the visits you would expect, with a session count that does not match reality.

A form producing two identical records, or a customer receiving two confirmation emails for one submission.

A page that visibly renders, then flickers and renders again, which is the version visitors notice.

All three come from something happening twice that should have happened once, and the diagnosis is more mechanical than it appears.

The tracking script installed twice

The most common single cause, and the easiest to confirm.

Tracking code gets added by a theme setting, then by a plugin, then pasted directly into a template by somebody who did not know about the other two.

Each installation fires independently, so one visit is counted two or three times.

The symptom is characteristic: visit counts that seem too high alongside a bounce rate that has collapsed to near zero, because the second firing looks like a second interaction.

Confirm it by viewing the page source and searching for your tracking identifier. If it appears more than once, that is the answer.

Remove all but one, keeping whichever is easiest to maintain, which is usually the theme or plugin setting rather than the pasted version.

Where to look, in order

The fourth is the version that catches organised sites, where a tag manager was introduced correctly and the original hard-coded snippet was never removed.

The redirect that loads twice

The cause behind the visible flicker, and it is a different mechanism.

Where a page loads and then redirects, the first load is counted and rendered before the second one replaces it.

That happens with a redirect performed in the page itself rather than by the server, which is common in poorly built landing pages and in some consent or region-detection scripts.

The remedy is a server-level redirect, which never renders the intermediate page at all.

The visible symptom is a page appearing and then changing within a second, which visitors read as an unreliable site even when everything works.

Forms that submit twice

The version with a real business cost, since it produces duplicate records and duplicate emails.

Two causes account for most of it.

An event handler attached more than once, so a single click triggers two submissions, which happens when a script is included twice or when a page loads a component repeatedly.

And an impatient visitor clicking twice, which is not a fault at all and is prevented by disabling the button on the first click and showing that something is happening.

The second cause is more common than the first and the fix is the same either way: disable the button on submit, and make the confirmation immediate rather than leaving a person wondering whether it worked.

A worked example

A business believed their traffic had grown by about eighty percent over a few months, which nobody could explain from anything they had done.

Enquiries had not changed at all.

Their bounce rate had also fallen to almost nothing, which they had read as an improvement.

The page source contained their tracking identifier twice: once from a theme setting configured when the site was built, and once from a plugin installed the previous autumn.

Every visit had been counted twice since the plugin was added, and every visit had registered a second interaction, which is why the bounce rate had collapsed.

Removing the plugin's copy halved the reported figures back to reality.

The lesson was that a metric improving sharply with no corresponding change in enquiries is a measurement problem until proven otherwise.

The tell in the numbers

Worth knowing, because it identifies this without touching the site.

Doubled tracking produces a distinctive pattern: visits up sharply, bounce rate near zero, average session duration near zero, and pages per session close to two.

Those move together because the second firing is being interpreted as a second event moments after the first.

A genuine improvement in traffic does not collapse the bounce rate to nothing, and a genuine improvement in engagement does not shorten sessions to zero seconds.

When several metrics improve implausibly at once, and on the same date, look for something installed on that date.

Check after every change

Because this is introduced rather than developed.

The moments it appears are a new plugin, a theme update, a migration, a tag manager being introduced, or a new supplier adding their own tracking.

Each of those is somebody adding a script without knowing what is already there.

Make it a habit to view the source and search for your tracking identifier after any of them, which takes thirty seconds.

Where several people can add scripts, keep a note of what is installed and who added it, in the same place as your other operational notes.

The counter-case

Not every implausible number is a duplicate.

Bot traffic, a page shared somewhere busy, a supplier testing repeatedly, or a genuine seasonal spike can all produce a jump, and treating every rise as an error is its own mistake.

Some duplicate submissions are also legitimate: a customer genuinely submitting twice because they changed something is a person, not a fault.

And a tag manager holding several tags for different purposes is correct even though it looks like duplication in the source.

Check the source, look at whether the metrics moved together, and confirm before removing anything, since removing the wrong copy loses tracking entirely.

The check

  1. View source and search for your tracking identifier.
  2. Count how many times it appears.
  3. Check theme settings, plugins, and templates.
  4. Look for a tag manager duplicating a hard-coded tag.
  5. Watch for bounce rate collapsing alongside a traffic rise.
  6. Disable submit buttons on the first click.
  7. Recheck after any plugin or supplier change.

Step five identifies this from the reports alone, before anybody opens the site, and it is the pattern that distinguishes a measurement fault from real growth.

Getting reliable numbers is covered in measuring speed without guessing.


Frequently asked questions

What causes a page to be counted twice?

Most often a tracking script installed in more than one place: a theme setting, a plugin, and sometimes a pasted snippet, each firing independently.

How do I confirm it?

View the page source and search for your tracking identifier. If it appears more than once, that is the answer. Remove all but one.

What does it look like in the reports?

Visits up sharply, bounce rate near zero, session duration near zero, and pages per session close to two, all moving together on the same date.

Why does a page visibly load twice?

A redirect performed in the page itself rather than by the server, so the first version renders before being replaced. A server-level redirect never renders the intermediate page.

Why do forms submit twice?

Either an event handler attached more than once, or an impatient visitor clicking twice. The second is more common, and disabling the button on submit fixes both.

When does this appear?

After a new plugin, a theme update, a migration, a tag manager being introduced, or a supplier adding their own tracking. Check the source after each.

West Coast Media Solutions Inc. provides web design, web development, hosting, digital marketing, and business consulting to organisations across Canada, drawing on more than twenty-five years in the field.

Traffic up eighty percent with no new enquiries?

View source and count your tracking identifier. Doubled tracking looks exactly like sudden growth.

Start a Conversation