You’re spending money on marketing every month. Google Ads, maybe an SEO retainer, possibly a lead aggregator or two, a Facebook campaign someone set up last year. The calendar stays busy some months and goes quiet others, and you can’t quite put your finger on why. Something feels off, but you don’t have a way to prove it.
That’s the exact situation a marketing audit is built for. Not the 40-page PDF an agency sends you to justify their retainer. A real audit you run yourself, in a few hours, that ends with a clear decision on every channel you’re paying for: keep it, fix it, cut it, or put more money into it.
Most owners have never compared their numbers to actual benchmarks. Google Ads for home services should be producing leads at $18-35 each. Local SEO, once it matures past the 12-month mark, should be delivering leads at $7-15. Facebook sits in the $10-25 range depending on the vertical. If you don’t know where your channels stand against those numbers, you’re managing blind.
This guide walks you through six steps: pull every active channel and what you’re paying, match each channel to a trackable lead source, calculate your actual cost per lead, audit your local visibility, review what happens after the lead arrives, and score each channel with a 90-day action list. Work through them in order. Each step feeds the next.
Step 1: Pull Every Active Channel and What You’re Paying for Each
Don’t start from memory. Open your bank statements or pull invoices for the last 90 days and write down every recurring charge connected to marketing. Most owners, when they actually do this, find at least one charge they’d forgotten about.
Your list might include Google Ads spend, a management fee to whoever runs those ads, Local Services Ads (LSA) charges, a Facebook or Instagram ad budget, an SEO retainer, Angi or HomeAdvisor lead fees, Thumbtack, website hosting, your email marketing platform, and any other agency or freelancer fees. Write them all down with the monthly dollar amount next to each one.
Now add them up. That’s your total monthly marketing spend. Divide it by your average monthly revenue and multiply by 100 to get a percentage. For a healthy local service business, that number should sit between 8% and 12% of revenue. Significantly above that range and you’re likely over-invested relative to what the channels are producing. Well below it, and you may be starving channels that could grow.
Next, for each line item, answer two questions: who manages this, and what is it specifically supposed to produce? If you can’t answer both questions immediately, flag it. “I pay $400 a month to a company that does our SEO” is not sufficient. You need to know what deliverables you’re getting and what outcome you’re tracking.
Watch for overlap: One of the most common problems we see when working through this with owners is paid channel duplication. You’re running Google Ads, which is bidding on your brand name and service keywords. Meanwhile, Angi is also running paid ads on those same keywords to generate leads they sell back to you. You’re effectively paying twice for the same click. That overlap inflates your real cost per lead in a way that’s invisible until you lay every channel out side by side.
By the end of this step, you should have a clean list: every channel, its monthly cost, who manages it, and whether you can identify its intended purpose. That list is the foundation everything else builds on.
Step 2: Match Every Channel to a Trackable Lead Source
Here’s the question to ask for every channel on your list: if it produces a phone call or a form submission today, will you know it came from that channel?
For a lot of owners, the honest answer is no. And that’s not a minor gap. If you can’t attribute a lead to a source, you can’t evaluate that source. You’re making budget decisions based on gut feel, not data.
Start with call tracking. Google Ads, LSAs, and your organic search traffic should each have a separate tracking phone number. When someone calls the number on your Google Ads landing page, it logs as a Google Ads call. When someone calls from your Google Business Profile, it logs separately. If all three channels share the same phone number on your website, you have no way to separate them.
Check your CRM or job management software next. If you’re using ServiceTitan, Housecall Pro, Jobber, or something similar, look at how leads are tagged when they come in. Are they tagged by source at all? Many owners have a CRM full of jobs with no source attached, which means months of revenue data that tells you nothing about which channel produced it.
Form fills are easier to track, but they’re only part of the picture. Between 40% and 70% of leads for local service businesses come in by phone. If your attribution setup only captures form submissions, you’re missing the majority of your lead volume. A channel can look completely dead in your analytics because all its leads called instead of filling out a form.
What to do with untracked channels: Flag them as unauditable for now. Don’t try to evaluate a channel’s performance when you have no reliable data on what it’s producing. You’ll address those in Step 6 with a “Watch” status and a tracking fix as the first action item.
For channels that do have tracking in place, pull 90 days of lead data by source. You’ll need those numbers for the next step. Confirm the data looks reasonable. If Google Ads shows 200 clicks but only 2 tracked calls over 90 days, either your tracking is broken or your landing page has a serious problem. Both are worth knowing.
Step 3: Calculate Your Actual Cost Per Lead by Channel
This is the step most owners skip, which is exactly why they stay confused about where to put their money.
The math is simple. Take your 90-day spend on a channel and divide it by the number of confirmed leads from that channel over the same period. That’s your cost per lead (CPL). Do this for every channel where you have both spend data and attribution data.
Then compare each number against the benchmarks. Google Ads for home services: $18-35 per lead. Local SEO at 12 months or more: $7-15. Facebook: $10-25. If a channel is running at twice the top of its benchmark range with no clear explanation, that’s a problem worth investigating. If it’s sitting comfortably inside the range, that’s a channel worth protecting.
A few things to keep in mind as you work through this:
Volume matters alongside cost. A channel producing leads at $15 each sounds great until you realize it generated 4 leads in 90 days. Low CPL with negligible volume isn’t a win. Conversely, a channel at $32 CPL that’s generating 60 leads a month may be your most important channel even though the unit cost looks high.
Job value changes the math entirely. A $35 CPL on a $3,000 HVAC replacement is a different conversation than a $35 CPL on a $150 drain cleaning call. Before you cut a high-CPL channel, find out what kind of jobs it’s producing. If it’s consistently sending you large-ticket work, the CPL ceiling is higher than the benchmark suggests.
Clicks are not leads. Your Google Ads dashboard will show you clicks, impressions, and click-through rates. None of those are leads. A lead is a phone call or form fill from someone who wants to hire you. Don’t let click volume make a channel look productive when your tracking shows it’s producing very few actual inquiries.
By the end of this step, you should have a simple table: channel name, 90-day spend, confirmed leads, CPL, and a note on average job value if you know it. That table is the core of your audit. Everything from here is context that helps you interpret it.
Step 4: Audit Your Local Visibility Before Blaming Your Ads
Before you decide a paid channel is underperforming, spend 20 minutes checking something that affects every channel you run: your local organic presence.
The Map Pack, the three-business block that appears at the top of Google’s local search results, captures roughly 42% of clicks on local searches. If you’re not in it for your primary service keywords, your paid ads are carrying a disproportionate share of your traffic load. That inflates your CPL across the board, not because your ads are bad, but because organic isn’t doing its job.
Open Google and search your top three service terms in your city. Something like “plumber [your city]” or “HVAC repair [your city].” Note whether you appear in the Map Pack. If you do, note your position. If you don’t, that’s a gap to address.
Then check your Google Business Profile (GBP). Is it verified? Is every section filled out, including services, hours, photos, and a description? Are you actively collecting reviews, and are those reviews recent? A GBP with 12 reviews from three years ago competes poorly against a competitor with 80 reviews from the past six months. Pull up the top Map Pack result for your main keyword and do a quick comparison: their review count, how recent the reviews are, and how complete their profile looks versus yours.
Check your NAP consistency. NAP stands for name, address, and phone number. Google cross-references your business information across your website, your GBP, Yelp, the BBB, and industry directories. If your address is listed slightly differently across those sources, or if an old phone number is still showing up somewhere, it creates a trust signal problem that suppresses your local rankings.
Run your website through Google’s PageSpeed Insights. It’s free, takes two minutes, and gives you a mobile performance score. A slow-loading site on mobile hurts your Quality Score in Google Ads, which raises your cost per click, which raises your CPL. It also hurts your organic rankings. A poor mobile score is one of those problems that quietly taxes every other channel you run.
This step often reveals that the paid channel isn’t the problem. The foundation underneath it is.
Step 5: Review What Happens After the Lead Arrives
This is the step that makes owners uncomfortable, because it stops being about the marketing.
You’ve pulled your spend, matched your attribution, calculated your CPL, and checked your local visibility. Now ask: what actually happens when a lead comes in?
Start with your call answer rate. What percentage of inbound calls are getting answered versus going to voicemail? If you don’t know this number, pull your call tracking data and count. A channel can look like it’s producing terrible results when the real problem is that calls are going unanswered during peak hours. The channel delivered the lead. The lead didn’t convert because no one picked up.
Next, check your speed-to-lead on form submissions. How long does it take someone on your team to follow up after a form fill comes in? In service businesses, speed matters more than most owners realize. Someone who fills out a form for a plumber is often also calling two other plumbers. The first business to respond has a significant advantage. A follow-up that happens the next morning on a form submitted at 2 PM is often too late.
Look at your close rate. Of the leads that do get answered and followed up with, how many turn into booked jobs? If your close rate from initial contact to confirmed job is low, that’s a sales and dispatch problem, not a marketing problem. Cutting your Google Ads budget won’t fix a CSR who doesn’t know how to handle a price objection.
The reason this step belongs in a marketing audit is that post-lead problems get misattributed to channels constantly. An owner sees a channel producing leads that don’t convert and concludes the leads are bad. Sometimes that’s true. Often, the leads were fine and the handling process failed them.
Before you cut or reduce any channel based on low conversion, make sure you’re looking at what happened after the lead arrived. If your answer rate is low, fix that first. It will improve the apparent performance of every channel simultaneously.
Step 6: Score Each Channel and Build a 90-Day Action List
You’ve done the work. Now you need to make decisions.
For each channel on your list, score it on three criteria: how its CPL compares to the benchmark, how much lead volume it produces, and how well those leads convert to booked jobs. You don’t need a complex scoring system. A simple high/medium/low on each criterion is enough to see the picture clearly.
Then assign each channel one of four statuses:
Scale: CPL is inside or below benchmark, volume is meaningful, and leads are converting. This channel deserves more budget. Don’t be cautious with channels that are actually working.
Fix: The channel has potential, but something specific is holding it back. Maybe the CPL is high because the landing page is weak. Maybe volume is low because the campaign targeting is too narrow. Maybe tracking was just installed and the data isn’t reliable yet. Fix channels get a specific action item, not a budget cut.
Watch: Either the channel is too new to judge, or you just installed tracking and don’t have 90 days of clean data. Don’t make permanent decisions on incomplete data. Give it a defined review date.
Cut: High CPL, low volume, low conversion, and no clear explanation or fix path. This channel is consuming budget without producing results. Reallocate the spend.
Once every channel has a status, build your 90-day action list. Cap it at three priorities. More than three and the list becomes a document that lives on your desk rather than a plan that gets executed.
Keep ramp time in mind as you set expectations. Changes to Google Ads campaigns typically show meaningful results within 30 to 90 days. SEO changes take longer. Local SEO generally needs 6 to 12 months before the CPL drops into the $7-15 range. If you fix a tracking problem today, you’ll need 60 to 90 days of clean data before you can evaluate the channel properly.
The audit is only useful if it ends with a decision. A list of observations is not an audit. The output of this step should be a short document: channel statuses, three action items, and a date 90 days out when you’ll repeat the process.
Putting It All Together
Run this process once and you’ll have more clarity on your marketing spend than most owners get from a year of agency reports. Run it every quarter and you’ll stop making budget decisions based on slow months and gut feelings.
The sequence matters. Pull your channels and spend first. Match attribution second. Calculate CPL third. Check your local foundation fourth. Review post-lead handling fifth. Score and decide sixth. Skipping to the scoring step without the earlier groundwork produces bad decisions, which is how owners end up cutting channels that were actually working and doubling down on ones that weren’t.
Most of the problems this audit surfaces are fixable. Broken call tracking is a one-day fix. A GBP that hasn’t been updated in two years takes an afternoon. Overlapping lead sources can be consolidated once you see them side by side. The issues that take longer, like SEO maturity and Google Ads optimization, at least become visible so you can set realistic expectations instead of wondering why things aren’t moving.
If you work through this and find that the numbers are genuinely off, or that you don’t have the bandwidth to fix what the audit surfaces, that’s worth a conversation. Clicks Geek has been running campaigns for local service businesses since 2015, across more than 298 industry verticals, with over $100 million in managed spend behind us. We don’t pitch vague strategies. We look at your actual numbers and tell you what’s realistic in your specific market.
If you want to see what this would look like for your business, we’ll walk you through how it works and break down what’s realistic in your market, no obligation.