Nobody sets out to waste money on Google Ads. Waste accumulates. A default nobody changed at setup, a match type that widened on its own, a conversion action added during a website rebuild and never audited, a campaign type that launched with a promise of simplicity and quietly took over the account.
Then one day the cost per lead is forty percent higher than it was last year, the reported return still looks fine, and nobody can explain the gap between the dashboard and the bank account.
This is a teardown of where the money actually goes. Not tips, not a checklist of best practices, but the specific places spend disappears in accounts we audit, in the order we look for them, with the reason each one is invisible until you go looking.
Waste is structural, not sloppy
The framing that gets people stuck is treating wasted spend as a performance problem. It is not. Bad performance is when everything is set up correctly and the results are still poor. Waste is when the account is spending on things it was never meant to buy, which is a structural problem, and structural problems do not respond to bid adjustments.
The distinction matters because it changes what you do on Monday morning. If cost per lead is high because the auction is competitive, the answers are better offers, better landing pages, better creative, more patience. If cost per lead is high because a third of the budget is buying queries that could never convert, the answer is a filter, and the improvement is immediate rather than gradual.
Optimizing an account before you have removed the waste means teaching the bid strategy to buy the wrong traffic more efficiently.
That last point is the one that costs the most over time. Smart Bidding learns from your conversion data. If the conversion data is inflated by double counting, or the traffic mix is polluted by irrelevant queries, the algorithm optimizes toward that reality with total confidence. It is very good at its job. The job just has to be the right one.
So the audit order below starts with measurement, moves to what you are buying, then to structure, and only reaches bids and creative at the end. Most audit templates run that sequence backwards.
The search terms report
This is the first place to look and, in most accounts, the largest single block of recoverable spend. The report shows the queries that actually triggered your ads, which is a different list from the keywords you chose. The gap between those two lists is the account spending money on your behalf, with its own judgement about what you meant.
The pattern is consistent. Sort 90 days of search terms by cost, filter to zero conversions, and you will find some mix of:
- search_offResearch intent. How to, DIY, tutorial, diagram, template. People solving the problem themselves. They will click, read, and leave, and they are often the cheapest clicks in the account, which is exactly why they accumulate volume quietly.
- search_offJob seekers. Salary, jobs, hiring, careers, apprenticeship. In trades and healthcare this is frequently a top-ten cost line and it converts at zero forever.
- search_offFree and cheap modifiers. Free, cheap, discount, coupon, wholesale, near me under. If you are a premium provider these are people telling you in advance that they are not your customer.
- search_offWrong product or service. Adjacent things you do not sell, triggered because they share vocabulary with things you do.
- search_offCompetitor names. Sometimes strategic, usually accidental, and almost never audited to see whether the strategic version is paying for itself.
- search_offBrand terms you already owned. Paying to appear on your own name where you were the top organic result anyway. Not always wrong, but it needs to be a decision rather than a default.
Two things about negatives that get done badly. First, level matters: a term that is wrong everywhere belongs on a shared account-level list, and a term that is wrong for one campaign belongs on that campaign only. Dumping everything into one campaign means repeating the work every time you launch another.
Second, be careful with single-word negatives. Adding “free” as a broad negative also blocks “free estimate,” which in most service businesses is one of the highest intent queries there is. Phrase negatives are usually the right default, with exact negatives for specific problem queries.
And this is maintenance, not a project. New queries appear constantly, and an account that was clean in March is not clean in September. Weekly while a campaign is active, monthly at the absolute minimum.
Broad match and the intent gap
Match types are the mechanism behind most of what shows up in that report. Broad match now considers the whole context of the query rather than the words in it, which means it can find genuinely valuable searches you would never have thought to add. It also means the ceiling on how far it can wander is set by your negatives and your conversion signal rather than by your keyword.
Broad match works when three things are true: the conversion tracking is accurate, there is enough conversion volume for the bid strategy to learn from, and someone reviews search terms on a schedule. Take away any one of the three and it becomes an expensive way to discover what your account thinks you sell.
The specific failure we see most often is broad match rolled out during a restructure while conversion tracking was mid-migration. The campaign spends three weeks learning from incomplete data, and the audience it learns to find is the one that generated whatever signal survived. That takes far longer to unwind than it took to cause.
None of which is an argument for exact match everywhere. It is an argument that match type is a decision about how much control you are trading for reach, and that trade only pays if the control you gave up is being replaced by the monitoring you promised to do.
Performance Max and what you cannot see
Performance Max runs one campaign across Search, Shopping, Display, YouTube, Discover, Gmail, and Maps. The pitch is that the machine allocates across all of it better than you would. The cost is reporting: you do not get the full query list, you get limited placement detail, and the channel split is not exposed the way it is in the campaign types PMax replaced.

The insights section does show search categories and some term-level data, and it is better than it was at launch. It is still not a search terms report, and the difference matters when you are trying to account for every dollar.
What you can control, and should check on every PMax campaign:
- visibility_offBrand exclusions. Apply a brand list so PMax is not serving on your own name. Without it, the campaign inherits conversions from traffic that was already yours and reports them as its own, which makes it look like the best performer in the account.
- visibility_offAccount-level negative keywords. These apply to PMax. Use them for the categories you never want: jobs, DIY, competitor names, anything already proven dead in your Search data.
- visibility_offFinal URL expansion. Left on, PMax sends traffic to pages it selects from your site. If your site has thin pages, old landing pages, or a blog that ranks for the wrong intent, that is where the money goes. Turn it off unless you have specifically decided otherwise.
- visibility_offAsset group themes. One asset group covering every service produces averaged, undifferentiated results. Split by service or product line so the reporting means something.
- visibility_offSearch themes. Useful as a hint about intent, especially at launch with limited data. They are not keywords and they do not restrict serving, so do not treat them as a targeting control.
Performance Max is not a bad campaign type. It genuinely outperforms in accounts with strong conversion data, a real product feed, and enough volume to learn from. It is a bad first campaign type, because it hides exactly the diagnostic information a new account needs, and because its reported efficiency is the hardest in the platform to verify independently.
Is PMax eating your Search campaigns
This is the question that costs the most to get wrong, because the wrong answer looks like success in the interface.
Performance Max and Search campaigns can compete for the same query. Which one serves depends on ad rank, and PMax generally takes priority over standard Shopping. So an account can end up with a Search campaign whose volume is being absorbed by a PMax campaign that then reports those conversions as its own.
The diagnostic is not complicated. Segment by week and look at the period around any PMax launch or budget increase:
- compare_arrowsSearch impressions and conversions falling. While PMax rises by a similar amount. The shape of the two curves matters more than the levels.
- compare_arrowsTotal account conversions flat. If the total did not move, nothing was created. Credit was reassigned.
- compare_arrowsBlended cost per acquisition flat or worse. This is the number that cannot be gamed by attribution. If PMax reports a stellar cost per acquisition and the blended figure did not improve, the reported number is borrowing from somewhere.
- compare_arrowsBrand share inside PMax. Check the insights for your own brand name appearing in search categories. Brand traffic converts well regardless of campaign, so wherever it lands looks efficient.
Always judge campaign changes on account-level blended numbers. Campaign-level reporting is real but it is not a business result, and the more automated campaign types you run simultaneously, the more the campaign view drifts from what actually happened.
Conversion counting and inflated ROAS
Everything above assumes your conversion numbers are real. Often they are not, and this is the most under-audited part of most accounts because the numbers look plausible right up until someone reconciles them against the CRM.
The recurring problems:
- content_copyThe same outcome tracked twice. A form submission counted by both a Google tag and an imported Analytics goal. Every lead is now two leads and every cost per lead is half what it really is.
- content_copyCount set to every instead of one. For lead generation, one conversion per click is nearly always correct. Left on every, a single prospect who submits three forms and calls twice becomes five conversions.
- content_copyMicro conversions marked primary. Page views, scroll depth, video plays, and outbound clicks feeding the bid strategy as though they were leads. The algorithm dutifully finds more people who scroll.
- content_copyPhone calls counted from two sources. Click-to-call from the ad and a call tracking number on the site both firing for the same person.
- content_copyOld actions still active. A conversion from a form that no longer exists, or a thank-you page URL that now matches something unrelated after a site rebuild.
- content_copyNo lead quality feedback. Every form fill counted equally when half of them are spam, wrong-service, or out-of-area. Without offline conversion import, the account is optimizing for form fills rather than customers.
The test that settles it: count the leads that actually reached your inbox or CRM last month and compare against what Google Ads reported. A small gap is normal and expected, since attribution windows and cross-device paths are genuinely difficult. A gap of thirty or fifty percent is not a measurement nuance, it is a broken setup, and it means every optimization decision made in the last year was made against fiction.
Fixing this is unglamorous and it is the highest leverage work in a paid account. It is also the reason our Google Ads management engagements start with tracking verification rather than campaign builds. There is no point optimizing toward a number nobody has checked.
Free account teardown
We will find it in your account, not in a benchmark.
Send us read access and we will run this entire sequence on your data, then show you the recoverable spend line by line with the fix for each one. No obligation to work with us afterward.
Request the teardownarrow_forwardDisplay, video, and search partners
Two settings sit on Search campaigns by default and both extend your reach past search results without making that obvious in the reporting.
Display expansion lets a Search campaign serve banner placements with leftover budget. It mixes two completely different intent levels under one budget and one bid strategy. The Display half generates cheap clicks that pull your blended cost per click down and your blended conversion rate with it, so the campaign looks like it is getting more efficient while producing fewer customers. In lead generation accounts this should almost always be off.
Search partners extends to non-Google search sites. Performance varies a lot by industry and it is genuinely worth testing rather than assuming, but it should be tested, with the segment pulled and read, rather than left on because it came that way.
For campaigns that are deliberately running on display or YouTube, the placement report is the equivalent of the search terms report and gets audited the same way. The predictable offenders are mobile game and utility app inventory, made-for-advertising sites, and autoplay video placements where the impression is technically real and the attention is not.
One audience setting worth checking specifically: segments added for observation that were later switched to targeting, or added as targeting by mistake. Observation reports on a group without restricting reach. Targeting restricts to it. Getting that backwards either strangles a campaign or opens it far wider than intended, and the interface does not make the difference loud.
Location settings nobody changed
Location targeting has a second setting underneath it that most advertisers never open, and the default is broader than the name suggests.
By default, campaigns target people in, regularly in, or who have shown interest in your targeted locations. That last clause means someone in another state researching your city can trigger your ads. For a hotel or a relocation service that is exactly right. For a plumber it is money spent on people who will never be customers.
Changing it to presence only, meaning people actually in your service area, is a two-click fix that measurably tightens spend in local accounts. It is one of very few optimizations that costs nothing, risks nothing, and takes effect immediately.
Worth checking alongside it: excluded locations you never set, radius targets drawn around an old address, and the classic case of a campaign built for one city that has been serving a whole state since a well-meaning recommendation was auto-applied. On that note, auto-apply recommendations deserve their own review. Several of them widen targeting or match types by default, and they are enabled more often than most account owners realize.
Local accounts have a compounding version of this problem: paid spend covering geography where the organic and map presence is nonexistent, which means every customer in that area costs full price forever. Comparing paid coverage against your actual map ranking radius usually reveals either a gap worth funding or an overlap worth trimming.
Schedule, device, and demographics
Smaller leaks, quick to check, and they add up in accounts running long enough to have meaningful segment data.
- scheduleAd schedule against answer rate. If your business converts by phone and nobody answers after six, ads running at eleven at night are buying calls that go to voicemail. Look at conversion rate by hour before assuming 24/7 is correct.
- scheduleDevice performance. Mobile and desktop often differ enormously in cost per acquisition, and the gap is usually a landing page problem rather than an audience one. Diagnose before you bid down, because bidding down mobile in a mobile-first category is a slow way to shrink.
- scheduleDemographics. Age and income brackets that consistently produce clicks and no conversions. Available in most verticals, rarely reviewed after launch.
- scheduleAd rotation. Set to rotate indefinitely, the account never learns which creative works. This is almost always a leftover from a test that finished years ago.
- scheduleFrequency on video and display. Uncapped frequency means paying repeatedly to annoy the same person. There is a point past which additional impressions to the same user have negative value.
Waste that happens after the click
Every audit above is about not buying the wrong click. This section is about the clicks you paid full price for and then threw away, which is the category owners are least willing to look at because the fix lives outside the ads platform.
Sending all traffic to the homepage is the most common version. The homepage is designed to serve everyone, which means it answers nobody’s specific query, and the person who searched for one particular service now has to find it. A meaningful share will not.
Take the five highest spending ad groups and open their landing pages on a phone. Check honestly:
- ads_clickDoes the page repeat the promise from the ad. Not a related promise. The same one, in similar words, visible without scrolling.
- ads_clickHow long does it take to become usable. Not what a lab test reports. What it feels like on a phone on cellular data.
- ads_clickHow many fields does the form ask for. Every additional field costs completions. Ask for what you need to make the first call and nothing else.
- ads_clickIs the phone number tappable and visible. In service categories a large share of the value never fills out anything.
- ads_clickDoes the page prove anything. Reviews, licensing, service area, real photos. A page with no evidence converts on price alone, which is the worst basis available.
Improving conversion rate is mathematically identical to lowering cost per click, and it is usually the easier of the two to influence. It is also permanent in a way bid changes are not, since a better page keeps working when the auction gets more expensive.
Why your CPL keeps climbing
The question behind most audit requests. The honest answer is that it is almost never one thing, and the components have very different fixes.
Auction inflation is real. More advertisers, more automation bidding aggressively, more inventory consumed by formats that did not exist a few years ago. Some of your increase is the market and no amount of account work reverses it.
Match type drift is real too. Accounts widen over time. Broad match finds new queries, recommendations get auto-applied, new campaign types default to more reach. Left alone, an account gets looser every quarter, and looser traffic costs more per conversion even at the same cost per click.
And measurement drifts. This is the one people miss. If a duplicate conversion action was quietly removed during a site rebuild, your cost per lead did not go up, it was always that high and you were dividing by an inflated number. Check for a step change on a specific date rather than a gradual slope. Gradual is the market. A cliff is a tracking event.
Separating the three is the entire job. Market pressure means changing the offer or the channel mix. Drift means tightening the account. A measurement change means your baseline was wrong and the real trend needs recalculating before anyone panics.
The 90 minute teardown, in order
This is the sequence, ordered by recoverable spend per minute of looking. Work top to bottom and do not skip ahead, because each step changes how you read the next one.
Verify the conversions before you judge anything
10 minOpen the conversions table. Confirm which actions are primary, check the count setting on each, and look for two actions tracking the same outcome. Every optimization decision downstream is built on these numbers, so a broken conversion action does not just mislead you, it has been misleading the bid strategy too.
Search terms, 90 days, sorted by cost
15 minFilter to conversions equal to zero and sort cost descending. Work down until the individual amounts stop mattering. Add negatives at the right level: a term that is wrong everywhere goes on a shared account list, a term that is wrong for one campaign goes on that campaign.
Campaign settings, every campaign
10 minDisplay expansion, search partners, location targeting method, ad rotation, and the bid strategy target. These are set once at creation and almost never revisited, which is why the defaults survive for years in accounts that are otherwise well managed.
Performance Max insights and exclusions
15 minCheck search categories for brand terms and obvious irrelevance, confirm brand exclusions are applied, and look at asset group performance. If PMax is quietly serving on your own brand name, its reported efficiency is borrowed from traffic you already had.
Campaign overlap
10 minCompare impressions and conversions across campaigns targeting the same intent, segmented by week, around the date any newer campaign launched. Falling volume in one campaign matched by rising volume in another, with flat totals, is trading rather than growth.
Placements and audiences
15 minFor any Display, Video, or Discovery spend, pull the placement report and exclude the mobile app categories and low quality sites that always appear. For audiences, check that observation segments have not been quietly set to targeting.
Landing pages against the ad promise
15 minTake the five highest spending ad groups and load the landing page on a phone. Match what the ad promised against what the page delivers. Spend that reaches a slow, mismatched, or form-hostile page is wasted after the auction, which no amount of bid tuning recovers.
Ninety minutes gets you the diagnosis and most of the immediate recovery. What it does not get you is the rebuild, because once the waste is removed you usually discover the account structure was designed around the waste: ad groups grouped by whatever the loose matching happened to pull in, budgets sized against inflated conversion counts, campaigns kept alive by brand traffic they were never supposed to have.
That is the real work, and it is worth doing in that order. Cutting waste first means the rebuild is designed against numbers that are true.
Google publishes the mechanics for most of this in its own documentation, which is worth reading directly rather than through a summary. The documentation tells you what the settings do. It does not tell you which defaults are quietly working against you, which is the part that requires looking at your own account.
If you would rather not run it yourself, that is what our paid media practice does first on every account, and the lead generation side of it is where the offline conversion work lives, which is the piece that turns form fills back into customers in the reporting.
Questions people actually ask
How do I find wasted spend in Google Ads quickly?
expand_more
Open the search terms report for the last 90 days, sort by cost descending, and filter to terms with zero conversions. That single view usually accounts for the largest block of recoverable spend in a typical account, and it takes about five minutes. Everything else in an audit is a refinement of that starting point.
Can I see search terms for Performance Max campaigns?
expand_more
Only partially. Google reports search categories and some term-level detail in the insights section, but not the complete query list you get for Search campaigns, and a meaningful share of spend stays uncategorized. You can add negatives at the account level and through brand exclusions, but you are managing with incomplete visibility by design.
Is Performance Max cannibalizing my Search campaigns?
expand_more
It can be. Performance Max generally takes priority over standard Shopping and can outrank Search campaigns on the same query depending on ad rank. The signal to look for is a Search campaign whose impressions and conversions fall in the same period a PMax campaign launched or expanded, while blended cost per acquisition stays flat or worsens. If total conversions did not rise, the campaigns are trading credit, not creating it.
Why is my Google Ads cost per lead going up every month?
expand_more
Usually a combination of three things rather than one: auction prices rising as more competitors bid, match type expansion pulling in looser queries over time, and conversion tracking that has quietly started counting things that are not leads. Check the third one first because it is free to verify and it changes how you read everything else.
Are my conversions being double counted?
expand_more
Check whether the same outcome is tracked more than once, for example a form submit fired by both a Google tag and Google Analytics import, or a phone call counted as both a click-to-call and a call from the website. Then check the count setting: lead generation actions should almost always be set to count one conversion per click, not every.
How much of a typical Google Ads budget is wasted?
expand_more
There is no honest universal number, and any figure quoted as one should be treated with suspicion. What is consistent is where it hides: irrelevant search terms, unbounded placements, location targeting defaults, and conversion actions that overstate results. The size of the problem varies enormously by account, which is exactly why the audit has to be done on your data rather than assumed from a benchmark.
Should I turn off Display Network expansion on Search campaigns?
expand_more
In almost every lead generation account, yes. Search with Display expansion mixes two completely different intent levels under one budget and one bid strategy, and the Display half typically produces cheap clicks that convert far worse. If Display is worth running, it is worth running as its own campaign where you can judge it on its own numbers.
How often should I audit a Google Ads account?
expand_more
Search terms and negatives deserve a weekly pass while a campaign is active, monthly at minimum once it is stable. The structural audit, meaning conversion actions, settings, placements, and campaign overlap, is a quarterly job and should always be repeated after any major account change or a new campaign type going live.
Joshua Rouillard
Founder, RouillardMedia
Joshua has spent over a decade in performance marketing and search. He founded RouillardMedia, where the team runs paid acquisition across Google, Meta, and programmatic for service businesses and lead generation, and starts every engagement by checking whether the numbers in the dashboard match the ones in the CRM.
