Guide
How to Measure Local SEO ROI
Local SEO ROI is the profit from search-attributed jobs minus what you spent, divided by what you spent. The hard part is not the formula, it is getting three numbers honestly: how many enquiries came from search, what proportion become customers, and what a customer is actually worth to you. Without call tracking, most businesses are guessing at the first one.
Ask most agencies for ROI and you get a rankings chart. Rankings are an input, not a return. A first position for a search nobody commercially valuable makes is worth less than a fourth position for one they do.
The formula
ROI = (gross profit from search-attributed jobs minus SEO spend) divided by SEO spend.
Note gross profit, not revenue. A removals firm turning over £4,000 from search in a month has not made £4,000. Using revenue is the most common way ROI gets overstated, usually by whoever is being paid.
The three numbers you need first
1. Enquiries genuinely attributable to search
This is where it falls apart for most local businesses, because the enquiry arrives as a phone call and phone calls do not show up in analytics by default. Without call tracking you are reconstructing attribution from memory, and memory flatters whatever you recently spent money on.
- Use a tracked number on the website that swaps by traffic source, so organic, Map Pack and paid are separable.
- Track the Google Business Profile call button separately. Those calls never touch your website at all, and for a local business they are frequently the majority.
- Record form submissions as conversions in GA4, with the landing page retained.
- Count nothing twice. Somebody who rings after filling in a form is one enquiry.
2. Your enquiry to customer rate
Not the industry average, yours. This is the number most owners are furthest out on, usually in the optimistic direction. Count it over at least a quarter, because a good month is not a rate.
3. What a customer is worth
Gross profit per job, then decide whether to use lifetime value. For a dental practice or a chiropractor, lifetime value is the honest measure and it is much larger than the first appointment. For a one-off house move it is close to the single job. Pick one, write down which, and stay consistent, because switching between them between reports is how agencies manufacture improvement.
A worked example
| Input | Value |
|---|---|
| Search-attributed enquiries in the month | 40 |
| Enquiry to customer rate | 25% |
| Customers | 10 |
| Average gross profit per customer | £420 |
| Gross profit from search | £4,200 |
| SEO spend that month | £1,200 |
| ROI | (£4,200 − £1,200) ÷ £1,200 = 250% |
Run the same table with a 15% conversion rate and the return falls to 5%. That is the point of doing it properly: the sensitivity sits in your sales process at least as much as in the marketing.
The attribution problem nobody mentions
Two things systematically distort local SEO ROI, in opposite directions.
It gets overstated by brand searches. Somebody who saw your van, then googled your name and clicked the top result, is counted as organic. You did not earn that enquiry with SEO. Segment branded from non-branded queries in Search Console or your ROI is partly measuring your signwriting.
It gets understated by everything that happens without a click. A searcher who reads your opening hours and reviews in the Map Pack, then rings the number displayed there, never visits your site. An assistant that recommends you in a written answer sends no referrer at all. Both are real returns on search work that standard analytics cannot see.
Payback period, which matters more than ROI
SEO is not a monthly-return channel. Ads stop the day you stop paying. Search work compounds, which means the early months look poor and later months look implausible if you judge them in isolation.
Measure cumulatively instead. Plot spend against search-attributed profit from the start of the engagement and find the month the lines cross. For a local service business that crossover typically arrives somewhere between month four and month eight. Judging month two on its own tells you nothing except that month two happened.
What to ask your current supplier
- How many enquiries did search produce last month, and how do you know rather than assume?
- What share of those were branded searches for our own name?
- Are Google Business Profile calls counted, and separately from website calls?
- What is our cumulative spend against cumulative search-attributed profit since we started?
- Which searches produce enquiries, as opposed to which produce impressions?
If the answers are rankings and traffic, the reporting is measuring activity rather than return. Working out which of these you can currently answer is part of a free audit, and fixing the tracking is usually the first thing on the list.
Straight answers
Questions
What is a good ROI for local SEO?
There is no honest benchmark, because it depends entirely on your gross margin and job value. A firm with £2,000 jobs and a 40% close rate reaches a strong return quickly. One selling £80 jobs needs far more volume for the same result. Compare your ROI against your own other channels rather than against a figure in a blog post.
How soon can I measure it?
Set tracking up on day one, but do not judge the numbers before month four. Google Business Profile work can move Map Pack positions in four to eight weeks, while organic service and area pages usually take three to six months to mature. Early data mostly measures how long things take.
Do I need call tracking?
For a local service business, yes. Most enquiries arrive by phone, and without tracked numbers you cannot separate search from everything else. It is inexpensive and it is normally the single change that makes reporting trustworthy.
Should I use revenue or profit?
Profit. Revenue-based ROI flatters whoever is presenting it, and it is the most common way marketing returns get inflated. If a report quotes revenue without margin, ask why.
