Most Google Ads audit checklists online are a list of questions. "Is conversion tracking set up?" "Are there negative keywords?" That is a start, but an audit is only useful when every check has a threshold: a line where the answer flips from fine to fix. Otherwise two people audit the same account and reach different conclusions.
This is the checklist we built into Agency Lookout, written out in plain language with the thresholds we use. Use it as-is, or tune the numbers per client (a lead-gen plumber and an ecommerce store should not share the same limits).
A note on order. The checks are grouped by module, and the modules are in the order that matters: if conversion tracking is broken, every later number in the account is unreliable, so fix measurement first.
Module 1: Measurement (fix these before anything else)
Nothing below means anything until these pass.
| Check | Passes when | Severity |
|---|---|---|
| Primary conversions are recording | Conversions > 0 in any period with spend > 0 | Critical |
| A real Primary conversion action exists | At least one enabled action that is Primary and counted in the Conversions column, and it is a lead, purchase or call, not a page view | Critical |
| No vanity actions set as Primary | No page-view, scroll, engagement, YouTube or "micro" actions marked Primary | High |
| Conversions still arriving | Conversions in the last 14 days when the prior 30 had some | High |
| All-conversions inflation | "All conversions" is less than 3× "Conversions" | Medium |
| Conversion rate is plausible | Account conversion rate between 0.5% and 40% of clicks | High |
| Conversion value is tracked | Value > 0 when conversions > 0 (sales accounts) | High |
| No duplicate Primary actions | One recording Primary action per category (one "lead form", not three) | Medium |
| Auto-tagging enabled | auto_tagging_enabled = true on the account | Medium |
| Primary actions that never fire | Every enabled Primary action records something while others do | Low |
Why the "plausible conversion rate" check exists: a 60% conversion rate almost always means a page view or a button click is being counted as a conversion. Smart Bidding then optimises toward that, and the account spends real money chasing fake conversions.
Module 2: Search terms and wasted spend
| Check | Passes when | Severity |
|---|---|---|
| Base waste pool | Zero-conversion search-term spend ≤ 15% of all term spend (25% or more is high) | Medium |
| High-confidence waste (negative candidates) | No term with zero conversions and ≥ $20 spend, or ≥ 50 clicks, or ≥ 1,000 impressions in 90 days | High |
| Campaigns spending without converting | Non-converting campaigns ≤ 10% of spend | High |
A term with 50 clicks and no conversions is not "still learning". It is a negative keyword waiting to be added. Group the candidates by intent (research, DIY, jobs, competitors, wrong location) before you negate them; it makes the client conversation much shorter.
Module 3: Bidding
| Check | Passes when | Severity |
|---|---|---|
| Smart Bidding has enough conversion volume | ≥ 15 conversions per 30 days per campaign using Target CPA / ROAS | Medium |
| Uncapped Smart Bidding | Maximize Conversions / Value campaigns with ≥ 20% of spend carry a target | Low |
Below 15 conversions a month, Target CPA mostly guesses. Either consolidate campaigns so the data pools, or move to Maximize Conversions with a target.
Module 4: Budget
| Check | Passes when | Severity |
|---|---|---|
| Converting campaigns limited by budget | Lost impression share (budget) < 10% on campaigns with a CPA at or under target | High |
| Impressions lost to ad rank | Lost IS (rank) < 40% per campaign | Medium |
| Budget pacing | Last-30-day spend is between 70% and 105% of daily budget × 30.4 | Info |
The first one is the easiest money in the account: a campaign that converts at target and is losing 30% of impressions to budget is simply under-funded.
Module 5–7: Structure, landing pages, settings
| Check | Passes when | Severity |
|---|---|---|
| Enabled campaigns that aren't serving | No enabled campaign without impressions in 30 days | Low |
| Spend concentrated on the homepage | Homepage takes < 50% of spend | Medium |
| Landing pages spending without converting | No page with ≥ 2× CPA (min $50) and zero conversions | Medium |
| Final URL hygiene | https final URLs, no broken tracking templates | Medium |
| Location targeting | "Presence", not "Presence or interest" | Medium |
| Search campaigns kept off Display / Search Partners | Display network off on Search campaigns | Medium |
| Device performance | No device with ≥ 20% of spend and zero conversions, or a CPA over 2× the account | Medium |
"Presence or interest" is still the default in many accounts, and it is how a Georgia plumber ends up paying for clicks from someone in Ohio who once searched "Atlanta".
Module 8–9: Creative and policy
| Check | Passes when | Severity |
|---|---|---|
| RSA ad strength | < 20% of RSA impressions on "Poor" | Medium |
| Ad groups with a single ad | Every spending ad group has ≥ 2 enabled ads | Low |
| Sitelink, callout and snippet coverage | Sitelinks and callouts enabled at account or campaign level | Low |
| Disapproved or limited ads | No enabled ad disapproved | High |
| Auto-applied recommendations | No changes made by recommendation auto-apply in the last 30 days | Medium |
| Automated / third-party writes | Changes by API, scripts or rules in the last 30 days are known and authorised | Low |
Auto-applied recommendations deserve their own line. Google will, by default, add broad match keywords and raise budgets on your client's behalf. Turn it off, then check the change history to see what it already did.
Search-specific: keywords
| Check | Passes when | Severity |
|---|---|---|
| Quality Score (spend-weighted) | ≥ 7 pass · 5–6.9 medium · < 5 high | Medium |
| Very low Quality Score keywords spending | No keyword with QS ≤ 3 and ≥ $100 spend in 30 days | High |
| Ad relevance below average | Below average with ≥ 1,000 impressions → rewrite the ad group's ads | Medium |
| Landing page experience below average | Below average with ≥ $50 spend → fix the page | Medium |
| Broad match governance | Non-converting broad match ≤ 20% of keyword spend | Medium |
| Phrase / exact duplication | Same keyword not in both phrase and exact in one campaign | Low |
| Keywords wasting spend | No keyword with zero conversions and ≥ $100 spend or ≥ 100 clicks | High |
Performance Max
| Check | Passes when | Severity |
|---|---|---|
| PMax search categories (waste & brand) | No zero-conversion search category taking a large share of spend; brand terms excluded where the client wants them in a Search campaign | High |
| PMax search-term visibility | You have pulled the search-category report at all (most people have not) | Info |
Economics (the one check clients care about)
| Check | Passes when | Severity |
|---|---|---|
| Cost per conversion vs break-even | CPA ≤ average job value × close rate × target margin | High |
Everything above is a means to this. A $40 cost per lead is great for a roofer and ruinous for a $25 product. Ask the client for job value and close rate during onboarding, and the audit can say "profitable" or "not" instead of "CPA went up 8%".
How to run this without spending a day per account
Run through the checklist once by hand on your biggest account; you will know your thresholds are right when the "fails" match what the specialist on that account already suspected.
After that, the work is repetition across 10, 20, 40 accounts every month, and that is what software is for. Agency Lookout runs exactly these checks on every connected Google Ads account, ranks the failures by severity and spend, turns each one into a task with the evidence attached, and re-checks it live when the task is marked done. The audit itself is read-only; nothing in the account changes unless a person applies it.
If you only take one thing from this page: write your thresholds down. An audit without thresholds is an opinion.