A mid-market SaaS client in the HR tech space came to us in Q1 2026 spending $34,000 per month on Google Ads and generating roughly 18 sales-qualified leads per month, putting their cost per SQL at $1,888. Within 90 days, that number dropped to $868, a 54% reduction, without cutting the overall budget. This is a breakdown of exactly what changed, why it worked, and which problems were causing the waste in the first place.
The Starting Point: Where the Budget Was Going
The account had been running for 14 months with the same structure: three broad match campaigns targeting job titles like "HR manager" and "people ops lead", a Performance Max campaign consuming 38% of the monthly budget, and a single generic landing page used for every ad group. Conversion tracking was set to "form submit", with no downstream connection to the CRM, so the algorithm was optimising for leads that frequently turned out to be solo freelancers or students, not the 100-plus employee companies the client sold to.
This is a pattern we see constantly. The account looks healthy in Google Ads, with a 4.2% conversion rate and a cost per conversion under $200, but the moment you match those leads against the CRM, SQL rate drops to around 9%. The reported numbers were masking the real problem. Poor lead quality from Google Ads almost always has a structural root cause, and this account had three of them running simultaneously.
Phase 1: Fixing What the Algorithm Was Optimising Against
The first two weeks were entirely diagnostic and structural. We disconnected the generic form-submit conversion action and replaced it with an offline conversion import tied directly to the CRM's SQL stage. This meant Google's Smart Bidding was now seeing actual sales-qualified signals rather than raw form fills. Google's offline conversion import documentation outlines the setup process, but the key practical decision is choosing the right conversion event: SQL creation, not opportunity creation, because there is usually a 2-4 day lag between form fill and opportunity stage that distorts bidding if you use the latter.
We also paused the Performance Max campaign. PMax was eating $12,900 per month and had generated 4 SQLs in 90 days prior, a cost per SQL of $3,225. The client was reluctant to pause it because the volume of form fills looked reasonable, but once we mapped those fills to CRM data, the SQL rate from PMax traffic was 3.1%, versus 11.4% from the exact and phrase match search campaigns. Pausing it freed up budget that was immediately redeployed into restructured search campaigns.
Phase 2: Campaign Restructuring Around Buying Intent
The original three campaigns were consolidated and rebuilt into six tightly themed ad groups: payroll software buyers, performance management software buyers, onboarding automation buyers, HR software for enterprises, competitor comparison terms, and a separate brand campaign. Each ad group had 8-12 exact and phrase match keywords, with a shared negative keyword list blocking consumer-intent, student, and freelance-intent queries from day one. The full process of structuring Google Ads for B2B is covered in more detail in our separate guide, but the core principle here is that job-to-be-done segmentation outperforms persona segmentation when the buying committee is broad.
We set Target CPA bidding at $1,200 per SQL (based on a realistic initial estimate), with a 3-week learning period before any bid adjustments. Forcing the algorithm to learn on inflated targets early is a common mistake: if you set Target CPA too aggressively before you have 30-50 SQL conversions in the system, the campaign under-delivers and never escapes the learning phase. We also excluded all mobile placements from the search campaigns entirely, since analysis of the prior 14 months showed mobile traffic had a 1.8% SQL rate versus 13.2% on desktop and tablet.
Phase 3: Landing Page Separation by Intent Cluster
All six ad groups had previously pointed to a single landing page with a generic headline: "The HR platform built for modern teams." The page had a 2.1% form-fill rate. We built three separate landing pages, one for payroll and compliance buyers, one for performance management buyers, and one for the competitor comparison cluster, each with a headline that matched the search intent directly and a proof point relevant to that specific use case (for example, "Used by 340 HR teams migrating off BambooHR" on the competitor page). Within 30 days, form-fill rate on the new pages averaged 4.9%.
The landing page issue is one of the most consistently under-addressed problems in B2B paid search. Most teams focus on bids and keywords while ignoring the conversion environment entirely. If you want a deeper look at why this happens, our breakdown of why B2B landing pages fail to convert covers the most common structural errors we audit across client accounts.
The 90-Day Results in Full
By day 90, monthly ad spend remained at $34,000. SQLs generated per month increased from 18 to 39. Cost per SQL dropped from $1,888 to $872, a 53.8% reduction. The SQL-to-opportunity conversion rate also improved from 41% to 57%, partly because the leads were better qualified and partly because the sales team could see the specific ad group and landing page variant each lead came from, which gave them better context for the first call.
One metric that did not improve immediately was impression share. Consolidating from broad match to phrase and exact reduced impressions by 61%. The client flagged this as a concern in week four, which is a normal reaction. Search Engine Land's match type analysis has noted repeatedly that impression share is a vanity metric when the underlying traffic quality is poor. Revenue per impression went up substantially once the SQL data started flowing back into the bidding model.
What This Means for Similar Accounts
The conditions that created this problem are not unusual. An account that has been running for over a year without CRM-connected conversion data, a Performance Max campaign absorbing a large share of budget, and a single landing page for all traffic is a description that fits a significant share of B2B SaaS Google Ads accounts we audit. The fix is not complicated, but it requires accepting lower reported volume in the short term in exchange for better qualified pipeline. Most clients optimising for cost per lead rather than cost per SQL will consistently overspend.
If you are measuring campaign performance at the lead level and your sales team is spending more than 40% of their time disqualifying inbound leads, the problem is almost certainly upstream in how your campaigns are structured and what signal the bidding algorithm is receiving. The 90-day timeline here was achievable because the client had clean CRM data and a clear SQL definition. Accounts without that foundation will need 2-3 additional weeks to establish the data infrastructure before restructuring makes sense.