Website Not Generating Leads? Your Reporting Might Be Lying
Your website might already be generating leads. Your reporting just can’t see them properly. Two default settings in Google Analytics 4 and Google Ads quietly inflate conversion counts on a huge percentage of small-business accounts, and a third one routes credit to the wrong action entirely. The result: every weekly report looks fine, every budget decision is built on phantom numbers, and the team starts asking why the leads they thought they had aren’t converting to revenue.
Before you assume your site is broken, audit the tracking. Most of the time, the site isn’t the problem. The reporting is.
Here’s how to spot the lie, fix it, and tell whether you actually have a lead-generation problem or a measurement problem.
The two settings that lie to almost every SMB account
These are the two we end up changing on most accounts we inherit. They’re both defaults. Neither one is documented in a way most non-technical owners can find. Both of them double-count.
Setting 1: GA4 form event scope
In Google Analytics 4, when you configure a custom event for “form submitted” or “lead form viewed,” the default scope is once per event. That means if a user fills the form, hits back, edits a field, and submits again, that’s two recorded leads. Same person, one actual inquiry, two events fired.
Switch the scope to once per session and the count drops to one. Same person, same visit, one lead.
The setting is buried in Admin → Events → Modify Event. If you’ve never gone in there, it’s almost certainly still on the per-event default.
Setting 2: Google Ads conversion counting
In the Google Ads conversion settings, the counting model defaults to “every” for most conversion types. That means every conversion event, even multiple from the same click, gets counted as a separate conversion.
Switch it to “one per click” and an ad click can only produce one credited conversion, no matter how many times the user trips the event.
These two settings work together. If GA4 is firing the lead event multiple times per session, and Google Ads is counting each fire as a separate conversion, your reported lead count can be 1.5x to 2x reality. We’ve seen it as high as 1.9x.
The setting that quietly routes credit to the wrong place
The other common pattern: the primary conversion in Google Ads is set to “click-to-call” instead of form submission. That means every tap on a phone number link counts as a conversion, even if the user never actually called, or called a different number, or tapped accidentally on mobile.
For most B2B and considered-purchase businesses, the form submission is the actual lead. The phone tap is upstream of a lead. Setting click-to-call as primary inflates the conversion count and undercounts the real form leads, because the form event then has to fight for attribution.
The fix: promote form submission to primary conversion. Demote click-to-call to secondary or remove it entirely if your business doesn’t take phone calls as a primary intake channel.
What this looked like on a real account
When we took over the Google and YouTube ads for Naches RV Resort, the previous vendor’s reports said about 94 conversions per week. The owner’s actual inquiry count, hand-counted from the form submissions in her inbox, was closer to 50.
She’d flagged the mismatch but assumed Google was right and her own count was missing some. We assumed the opposite, asked for access, and dug in. Within an hour we’d identified all three of the issues above:
- GA4 event firing per event, not per session.
- Google Ads counting every event, not one per click.
- Click-to-call set as the primary conversion when form submission was the real intake.
We changed three settings. Reported numbers dropped to match her real count almost immediately. The new baseline gave us actual data to work with for the rest of the engagement, and a few weeks later we cut cost-per-lead from $99 to $14 on the strongest creative. None of that would have been visible if we’d still been chasing inflated numbers.
”Limited by budget” is not always the signal you think it is
Google Ads will warn that a campaign is “limited by budget” when its predicted spend exceeds the daily cap. Most agencies treat this as a clear signal to scale spend.
If your tracking is broken, that warning is often misleading. The campaign might be “limited by budget” because Google’s algorithm thinks it’s converting at a rate that isn’t actually real. You raise the budget, scale the wrong creative, and burn money faster.
Fix the tracking first. Then take the warnings seriously.
Other ways your reports lie
Once the GA4 and Google Ads basics are clean, watch for these:
- Modeled conversions. Google estimates some conversions for cross-device users it can’t directly observe. These are fractional numbers added to your count. Useful in aggregate, but the modeled portion can drift well above reality if your tracking has other issues.
- Soft events counted as leads. Newsletter signups, PDF downloads, and pricing-page visits are sometimes mapped as leads in HubSpot or another CRM. They’re not. They’re upstream signals. Map them as separate event types.
- Form events firing on render. A common implementation bug: the form event is wired to fire when the form component appears on the page, not when the user submits it. Every page view becomes a “lead.” Audit the trigger condition.
- Self-attribution from the user side. If your site is built on a platform like GoDaddy or Shopify that doesn’t make event tagging easy, the workaround is often hacky inline embed codes per page. Those frequently fire incorrectly. Worth the audit if you’re on a builder platform. We see this pattern often enough on Shopify stores that we wrote a Shopify-specific hiring guide covering the technical gotchas.
How to verify what’s actually real
The single best signal is also the simplest: ask your customers directly how they found you. Add the question to the lead form. Add it to the qualifying sales call. Compare the answers to your tracking output over a few weeks.
Patterns emerge fast. If 70% of your real leads say “Google” but your tracking shows 30% organic and 40% direct, that’s data you can act on. The unattributed traffic is probably search referrals that lost the referrer header. You stop trusting the tracking on that channel and start trusting the customer testimony, weighted by volume.
This is the muscle that becomes more important as cookie deprecation, ad blockers, and AI-search referrers continue to erode the automated signal. The closer you get to first-party customer testimony, the more reliable your attribution becomes. We covered the broader shift in our practitioner guide to generative engine optimization, since AI search is now one of the channels where automated attribution is hardest.
Frequently Asked Questions
Why is my website not generating leads?
If your site is well-designed, has clear calls to action, and gets traffic, the most common reason it appears not to be generating leads is broken conversion tracking, not a real conversion problem. Audit your GA4 event scope, your Google Ads counting setting, and which event is set as your primary conversion. In our experience, three out of four “my site doesn’t generate leads” diagnoses turn out to be tracking issues, not actual lead problems.
How can I tell if my conversion tracking is broken?
Compare three numbers. The conversion count in your Google Ads dashboard. The conversion count in GA4. The actual count of inquiries you (or your sales team) can see in your inbox or CRM. If those three numbers don’t match within about 10%, the tracking has a problem. The reported numbers are almost always inflated, not deflated.
What is the difference between “once per event” and “once per session” in GA4?
“Once per event” counts every fire of the event. If a user submits the form, hits back, and submits again, that’s two events. “Once per session” counts a single fire per visit, regardless of how many times the event triggers. For lead form events, “once per session” is almost always the correct setting because you want to count unique inquiries, not duplicate form submissions.
Should click-to-call be a primary conversion in Google Ads?
Only if phone calls are your primary intake channel and you can verify that taps on the phone number actually result in calls. For most B2B and considered-purchase businesses, form submission is the real lead and click-to-call is upstream. Setting click-to-call as primary inflates total conversion count and obscures the form-submission performance.
How often should I audit my conversion tracking?
A full audit on takeover, then quarterly. Tracking drifts. Plugins update, tags get duplicated, GTM fires get misconfigured by well-meaning teammates. A quarterly check on whether the tracking output still matches the inbox count keeps the data trustworthy.
The bottom line
If your website is getting traffic and the reports say no leads, the cheapest first move is to audit the tracking. Most of the time the leads are there. They’re just being overcounted on the wrong channels, undercounted on the right ones, or attributed to the wrong actions.
Three settings changes solved the problem on the Naches account. They’ll probably solve it on most accounts. Once the tracking tells the truth, every other decision (budget allocation, creative testing, channel mix) gets dramatically more accurate.