Skip to content
Google Ads

Why Google Ads Is Over-Counting Your Form Conversions

Roger McSaveney 28 February 2026 · 18 min read

You check Google Ads — 47 conversions this month. You check your form entries — 19 real leads. Where did the other 28 come from? If you have ever stared at that gap and wondered whether Google is making numbers up, you are not alone. Google Ads over-counting your form conversions is one of the most common and most damaging problems in lead generation PPC.

The discrepancy is not a reporting nuisance you can shrug off. Every inflated conversion feeds directly into Smart Bidding. Google’s algorithm takes your conversion data at face value and optimises toward whatever you tell it is a conversion — including phantom ones that never produced a real lead. The result is a feedback loop: bad data trains the algorithm to find more of the wrong traffic, which produces more phantom conversions, which trains the algorithm further in the wrong direction.

For SMBs spending between one and ten thousand pounds a month on Google Ads, this is not a theoretical problem. It is the reason your cost per real lead is two or three times higher than what the dashboard reports, and why your sales team complains that “the leads from Google Ads are rubbish” while your marketing report says everything looks fine.

This article covers every cause of Google Ads over-counting form conversions, from platform settings to WordPress-specific tracking issues. You will learn how to diagnose the problem, fix each cause individually, and implement the definitive solution — offline conversion tracking — so that Google only ever optimises for real, verified leads.

TL;DR

Google Ads over-counts form conversions because of duplicate tags, page reload tracking, spam submissions, “Every” counting mode, view-through conversions, AJAX double-firing, and misconfigured conversion actions. Fix the immediate causes first, then implement offline conversion tracking to feed Google only verified leads. That eliminates every source of inflation in one move.

How to Spot the Problem — Comparing Reported vs Real Conversions

Before you fix anything, you need to quantify the gap. A vague sense that “the numbers don’t match” is not enough — you need a precise discrepancy ratio so you can measure whether your fixes actually work.

Step 1: Export your form entries with timestamps. Go to your WordPress form plugin — Contact Form 7, WPForms, Gravity Forms, whichever you use — and export all submissions for the period you want to audit. You need the submission date, the name or email, and ideally the page URL or source. If your form plugin does not store submission data natively, a plugin like TrueConversion can capture and store every entry with its traffic source attached.

Step 2: Pull conversion data from Google Ads. Go to Goals > Conversions and filter by your form submission conversion action. Add the “Conversions (by conversion time)” columns to your report instead of relying on the default click-date columns. Default attribution assigns conversions back to whenever the ad was clicked, which makes direct comparison with form timestamps impossible.

Step 3: Calculate the discrepancy ratio. Divide the Google Ads conversion count by your real form entries. If Google reports 47 and you have 19 real entries, your ratio is 2.47x — Google is reporting nearly two and a half times more conversions than actually exist. Any ratio above 1.15 (a 15% discrepancy) warrants investigation. Below that is within the range of normal attribution differences.

Step 4: Segment by campaign and device. The overcounting is rarely uniform. Display campaigns and Performance Max tend to be the worst offenders because they rely more heavily on view-through attribution and reach broader audiences including more bots. Search campaigns with tight keyword targeting typically have the smallest gap. Breaking it down by campaign tells you where to focus first.

A quick shortcut: in your Conversion Actions table (Goals > Conversions > Summary), check the “repeat rate” column. This tells you what percentage of conversions came from users who converted more than once. For lead gen, a repeat rate above 10-15% is a red flag — real people rarely submit the same enquiry form twice. If you also track which landing page each lead came from, you can pinpoint exactly which pages and campaigns have the worst inflation.

The 7 Causes of Over-Counted Conversions

Over-counting is never caused by a single issue. In most accounts, two or three of the following causes stack on top of each other, compounding the problem. Work through all seven, even if you think you have found the culprit early.

Platform-Side Causes (Google Ads Settings)

1. “Every” vs “One” Conversion Counting

Every conversion action in Google Ads has a counting setting: “Every” or “One.” The “Every” setting counts each conversion event from the same user as a separate conversion. For e-commerce, this makes sense — if someone buys three items, you want to count three sales. For lead generation, it is almost always wrong.

With “Every” enabled, one person who refreshes your thank-you page, resubmits the form after a validation error, or visits via two different devices counts as multiple conversions. This alone can account for a 20-30% inflation in accounts with high traffic or long conversion windows.

To check: go to Goals > Conversions > Summary, click the conversion action, and check the counting method. For every lead gen action — form submissions, phone calls, chat requests — switch to “One.” This ensures that each unique user can only trigger one conversion per click, regardless of how many times they interact with the thank-you page or form.

This is the single fastest fix. If you change nothing else from this article, change this setting today.

2. View-Through and Cross-Device Inflation

View-through conversions occur when someone sees your Display or YouTube ad, does not click it, and later visits your site and submits a form. Google counts this as a conversion attributed to the ad — even though the person never interacted with it. For lead gen SMBs running Display or Performance Max campaigns, view-through attribution can inflate reported conversions by 15-30% or more.

Cross-device conversions add another layer. A user sees your ad on their phone, then later submits a form on their laptop. Google infers the connection through signed-in Google account data and counts it. While this is more defensible than view-through, the matching relies on signed-in Google account data supplemented by statistical modelling, and while more reliable than view-through, it can still produce false positives.

The fix depends on your tolerance for ambiguity. At minimum, exclude view-through conversions from your primary conversion columns so they do not feed Smart Bidding. Go to your conversion action settings and set the view-through conversion window to 1 day (the minimum available). For cross-device, you can segment the data to see the proportion, but you cannot disable it entirely. Understanding how wbraid and gbraid click IDs work helps you grasp why cross-device tracking behaves the way it does on iOS and Android.

3. Duplicate and Stacked Conversion Actions

This is the most common technical cause and the easiest to miss. It happens when multiple systems fire conversion events for the same form submission. A typical scenario: you installed the Google Ads conversion tag directly through Google Tag Manager, your developer imported a GA4 “generate_lead” event as a conversion in Google Ads, and Google Site Kit added its own tracking tag. One form submission now registers as three conversions.

The duplication is not always obvious. Some stacking involves a Google Ads tag and a Linker tag that both fire on the same trigger. Others involve a GA4 event marked as a conversion in GA4 and separately imported into Google Ads, creating two parallel paths for the same event.

To audit: go to Goals > Conversions and look at every conversion action marked as “Primary.” If you see more than one action that could fire on a form submission — even if they have different names — you likely have duplication. The fix is simple in principle: choose one source of truth. Either fire the Google Ads conversion tag through GTM, or import from GA4, but never both. Remove or set to “Secondary” any redundant actions.

WordPress-Side Causes (Form and Tracking Setup)

4. Thank-You Page Reloads

If your conversion tag fires on the load of a thank-you page (e.g., /thank-you/), then every page load counts as a conversion — not every form submission. This means a bookmark, a back-button press, a browser refresh, or a user returning to the page later all trigger new conversion events. On mobile, this is especially common because browsers aggressively cache and restore pages.

WordPress form plugins handle post-submission redirects in different ways. Some use PHP header redirects, others use JavaScript-based redirects. JavaScript redirects are particularly problematic because the original page can fully load (firing the conversion tag on that page) before the redirect kicks in and loads the thank-you page (firing the conversion tag again). That is two conversion events for one submission before the user has done anything wrong.

The fix: stop firing conversion tags on page load. Instead, fire the tag based on a URL parameter that only exists on a genuine redirect from the form. For example, configure your form plugin to redirect to /thank-you/?converted=1, then set your GTM trigger to fire only when the URL contains that parameter. Better still, switch to event-based tracking entirely — fire the conversion on the form submission event itself, not on any page load. This is covered in detail in our guide on why AJAX forms break Google Ads tracking.

5. AJAX Forms Double-Firing

Most modern WordPress form plugins — Contact Form 7, WPForms, Gravity Forms, Fluent Forms — submit via AJAX. The page does not reload. Instead, the form sends data in the background and displays a success message. This is better for user experience, but it creates a specific tracking problem: the success callback can fire multiple times.

The behaviour varies by plugin. Contact Form 7 fires a wpcf7mailsent DOM event on each successful submission. If a user submits the form, sees a validation error, corrects it, and submits again, two success events fire on the same page. WPForms fires wpformsAjaxSubmitSuccess in a similar pattern. Gravity Forms uses a different event model but can exhibit the same behaviour when combined with AJAX-enabled confirmation messages.

If your GTM tag listens for these events and pushes to the dataLayer on each one, every resubmission counts as a new conversion. The fix: add a JavaScript flag that prevents duplicate pushes. Set window.conversionFired = true after the first dataLayer push, and check for it before any subsequent push. Alternatively, use GTM’s built-in “Once per page” tag firing option (under the tag’s Advanced Settings), which achieves the same result without custom code.

6. Spam Submissions Equal Phantom Conversions

Every form submission that fires your conversion tag counts as a conversion — including spam. Bots and human spammers submit contact forms constantly, and if your conversion tracking fires on the submission event or the thank-you page load, each spam submission registers as a genuine conversion in Google Ads.

This is worse than it sounds. Smart Bidding does not just count the phantom conversion — it learns from it. The algorithm analyses the traffic characteristics of every conversion and optimises to find more users like them. If 30% of your conversions are spam, Smart Bidding is spending 30% of its optimisation effort finding traffic that looks like spammers. The result is a downward spiral: more spam, worse lead quality, higher cost per real lead. We covered this feedback loop in depth in our guide on how Smart Bidding optimises for junk leads.

The immediate fix is better spam prevention — honeypot fields, anti-spam measures for WordPress forms, and server-side validation. But the real fix is architectural: do not fire conversion tags on every submission. Instead, use offline conversion tracking to send only verified, non-spam leads back to Google Ads. This removes spam from the bidding signal entirely.

Attribution-Side Causes

7. Misconfigured Conversion Actions

Open your Google Ads account and count how many conversion actions you have. If the answer is more than three or four for a standard lead gen site, you probably have a misconfiguration problem. It is common to find accounts with 10 or 12 conversion actions, of which only one or two actually represent a real form submission.

The rest are often page views (“Visited pricing page”), button clicks (“Clicked call-to-action”), scroll depth events (“Scrolled 90% of page”), or time-on-site thresholds (“Spent 3 minutes on site”). These micro-conversions can be useful as observation metrics, but when they are set as Primary conversion actions, they feed into Smart Bidding alongside your real form submissions. when using count-based bidding strategies like Maximise Conversions or Target CPA, Google treats a page scroll and a qualified lead enquiry as equally valuable.

The fix: go through every conversion action in Goals > Conversions. For each one, ask: “Does this represent a real lead that my sales team would follow up on?” If the answer is no, either set it to “Secondary” (so it still tracks but does not feed bidding) or remove it entirely. Only genuine form submissions, phone calls, and chat conversions should be Primary. Everything else is noise that corrupts your bidding data.

The Smart Bidding Corruption Problem

Fixing over-counted conversions is not just about having accurate reports. It is about preventing the systematic corruption of your automated bidding strategy. This distinction matters because most advertisers treat conversion accuracy as a reporting problem when it is actually a bidding problem — and the consequences are far more expensive.

Smart Bidding strategies — Target CPA, Target ROAS, Maximise Conversions — use machine learning to set bids for each auction. The training data for that machine learning is your conversion history. When your conversion data is inflated by duplicates, spam, and phantom page views, the algorithm learns from corrupted data. It does not know the difference between a real lead and a thank-you page refresh. It treats them identically.

The corruption spiral works like this. Over-counted conversions make your cost per conversion appear lower than reality. Smart Bidding sees “good” performance and maintains or increases bids for the traffic sources producing those phantom conversions. This drives more low-quality traffic, which produces more phantoms, which reinforces the algorithm’s mistaken confidence. Meanwhile, your actual cost per real lead climbs steadily.

This is why fixing the conversion count is the prerequisite for everything else in your Google Ads account. You cannot meaningfully optimise bidding, test ad copy, or evaluate landing pages when the fundamental metric — conversions — is wrong. Fix the count first. Then optimise.

Get the ground truth first

TrueConversion captures every real form submission with its traffic source, GCLID, and timestamp. Compare your entries against what Google Ads reports and see the true discrepancy before you start fixing anything. Install the free plugin and run your own audit.

The Definitive Fix — Offline Conversion Tracking

Even after you fix all seven causes above, some discrepancy will remain. Attribution windows, cross-device inference, and edge cases in how browsers handle redirects mean that frontend-fired conversion tags will never perfectly match your real form entries. For e-commerce, this residual gap is tolerable. For lead generation, it is not — because every phantom conversion actively degrades your bidding.

The definitive fix for lead generation is to stop relying on frontend events as your source of truth entirely. Instead of firing a conversion tag when someone submits a form, you capture the GCLID (Google Click Identifier) at the moment of submission, store it alongside the form entry in your database, and later upload only the verified, qualified leads back to Google Ads. This is offline conversion tracking, and it solves every problem described in this article simultaneously.

With offline conversion tracking, there are no duplicate tags because there is no frontend tag. There are no page reload false positives because the conversion is not tied to a page load. There are no spam conversions because you only upload verified leads. There are no AJAX double-fires because the conversion event is your manual upload, not a DOM event.

The implementation has three parts. First, capture the GCLID when the form is submitted and store it alongside the lead’s details. Second, qualify the lead — remove spam, confirm it is genuine, and optionally assign a value. Third, upload the qualified leads to Google Ads via the conversion upload API or the interface. Google matches the GCLID back to the original click and records the conversion with the correct attribution.

An alternative approach is Enhanced Conversions for Leads. Instead of capturing and uploading the GCLID, you send a hashed email address at the time of form submission. Google matches this against its user data. Later, when you identify a qualified lead, you upload the same hashed email to confirm the conversion. This is useful when GCLID capture is technically difficult — for example, when the GCLID disappears between pages on your WordPress site.

Both approaches require some setup, but the payoff is transformative. Smart Bidding trained on verified leads instead of inflated frontend events produces measurably better results — lower cost per qualified lead, higher lead quality, and more efficient spend allocation across campaigns. Our detailed implementation guides cover offline conversion tracking without a CRM, Enhanced Conversions for Leads on WordPress, and how to fix common upload errors.

How TrueConversion Helps You Audit and Fix This

TrueConversion is a WordPress plugin built for exactly this problem. It captures the GCLID, all UTM parameters, the traffic source, and the landing page URL for every form submission across 10 supported plugins — Contact Form 7, WPForms, Gravity Forms, Ninja Forms, Formidable Forms, Fluent Forms, Elementor Pro Forms, Forminator, Jetpack Forms, and a fallback shortcode. All of it is stored in your WordPress database, giving you one entries dashboard that serves as your ground truth.

Export your TrueConversion entries for any date range and compare them against your Google Ads conversion report. The discrepancy is immediately visible. Because each entry includes the traffic source and campaign data, you can identify which campaigns have the worst inflation.

The GCLID stored with each entry makes offline conversion tracking possible without a CRM. You have the click identifier, the submission date, and the lead details in one place. Qualify your leads, export the verified ones, and upload them to Google Ads. No middleware, no Zapier workflows, no API integration required. Spam entries are visible in the dashboard and can be excluded before you feed any data back. Learn more about how TrueConversion works or download the free version to start your audit today.

FAQ

Why does Google Ads show more conversions than form submissions?

The most common causes are duplicate conversion tags, the “Every” counting mode, view-through conversions, thank-you page reloads, AJAX form double-firing, and spam submissions. In most accounts, two or three of these causes stack together. The discrepancy is rarely caused by a single issue.

Should I use “One” or “Every” for lead gen conversion actions?

“One” — always. The “Every” setting is designed for e-commerce where multiple purchases from the same user are each valuable. For lead generation, one person submitting a form twice is still one lead. Using “Every” inflates your conversion count and feeds Smart Bidding misleading data. Check this setting for every conversion action in your account under Goals > Conversions > Summary.

How do I check for duplicate conversion tags?

Go to Goals > Conversions in Google Ads and review every action marked as “Primary.” If you see more than one action that fires on form submissions — even with different names or from different sources (GTM, GA4 import, Site Kit) — you have duplication. Use the Tag Assistant extension (or tagassistant.google.com) to see exactly which tags fire on your thank-you page or form submission. You should have exactly one primary conversion action per conversion type.

Can spam submissions really inflate my conversion count?

Yes, and the impact goes beyond inflated numbers. Every spam submission that triggers your conversion tag is treated by Smart Bidding as a genuine lead. The algorithm analyses the traffic profile of each conversion and optimises to find similar users. If spammers make up a meaningful share of your conversions, Google is actively spending your budget to find more traffic that behaves like spammers. Removing spam from the conversion signal — ideally through offline conversion tracking — fixes both the count and the bidding quality. If you are dealing with tracking issues on mobile, the problem can be even worse because mobile spam patterns differ from desktop.

What is the difference between offline conversion tracking and Enhanced Conversions for Leads?

Both send verified conversion data back to Google Ads, but they use different identifiers. Offline conversion tracking captures the GCLID at form submission and uploads it later. Enhanced Conversions for Leads captures a hashed email address and matches it against Google’s user data. Offline conversion tracking is more precise because the GCLID ties directly to a specific click, but it requires the GCLID to persist through the submission process. Enhanced Conversions is more forgiving when hidden fields are not capturing parameters correctly, but relies on Google’s ability to match the hashed email to a user account.

See What’s Real

TrueConversion shows you every actual form submission with its traffic source, GCLID, and timestamp. Compare your entries against what Google Ads reports and stop optimising for phantom conversions. Free for up to 10 entries — no credit card required.


Roger McSaveney

← Back to Articles

Comments

No comments yet. Be the first to share your thoughts!

Leave a comment