Rankings are not revenue. If you cannot say how many booked jobs came from local search last month, you are guessing.
TL;DR Tag your Google Business Profile links with UTMs, set up call tracking, mark phone taps and form submits as key events in GA4, and ask every caller how they found you. That last one catches what software cannot.
The metrics that matter, and the ones that do not
| Track | Ignore |
|---|---|
| Booked jobs by source | Impressions |
| Calls from local search | Bounce rate |
| Direction requests | Time on page |
| Form submissions | Rankings in isolation |
| Cost per booked job | Follower counts |
| Review count and recency | Keyword position averages |
Why bounce rate is misleading here. Someone arrives, reads your phone number, taps it, and calls. That registers as a bounce. It was a conversion.
Step 1: UTM-tag your Google Business Profile links
By default, traffic from your profile lands in GA4 as generic organic or direct. You cannot separate it. Fix that by tagging the links inside your profile.
Website link:
https://yoursite.com/?utm_source=google&utm_medium=organic&utm_campaign=gbp_website
Appointment link:
https://yoursite.com/book?utm_source=google&utm_medium=organic&utm_campaign=gbp_booking
Each Google Post:
https://yoursite.com/offer?utm_source=google&utm_medium=organic&utm_campaign=gbp_post_october
One caution. Do not tag with utm_medium=cpc or anything implying paid. Keep organic so your reporting stays honest.
Now every session from your profile is identifiable, and you can see which of the three surfaces actually drives action.
Step 2: Call tracking
Most service business conversions are phone calls, and calls are invisible to analytics by default.
Two approaches
| Method | Cost | Catches |
|---|---|---|
| Tap tracking on your site | Free | Clicks on tel: links only |
| Call tracking service (CallRail, etc.) | Monthly | Actual calls, source, duration, recording |
Start with tap tracking, which is free. Every tel: link click fires an event in GA4. It undercounts, because someone can read the number and dial it manually, but it costs nothing and gives you a directional number.
Add a paid service if your volume justifies it and you need to know which channel produced which call.
The critical NAP warning. Call tracking numbers create citation inconsistency, which damages the entity signals that got you found in the first place. If you use call tracking, use dynamic number insertion, which swaps the number on your website only for visitors from a given source, while your real number stays everywhere in your listings. Never put a tracking number on your Google Business Profile or any directory.
Step 3: Configure GA4 properly
GA4’s defaults do not measure what a service business needs.
Mark these as key events
clickon anytel:link.- Form submission on your contact and quote forms.
- Booking confirmation page view.
clickon your directions or map link.- Outbound click to your booking platform.
How to set a phone tap event. In GA4, Admin, Events, Create event. Condition: event_name equals click and link_url contains tel:. Name it phone_tap. Then mark it as a key event.
Then filter by geography. Reports, add a comparison, Country or Region equals your state, or use City. Now you are looking at local performance rather than everything.
Step 4: Read your Business Profile insights
Free and directly relevant.
- Searches: direct versus discovery. Direct means they searched your name, which is reputation. Discovery means they searched a category and found you, which is local SEO working. Discovery growth is your primary local SEO metric.
- Calls, broken down by day and hour. Tells you whether after-hours coverage is worth paying for.
- Direction requests, which are near-pure local intent.
- Website clicks.
- Photo views, compared against similar businesses.
Check monthly. Not daily, because daily numbers on a small business are mostly noise.
Step 5: The question that beats every dashboard
Ask every new customer how they heard about you. Write it down.
Analytics cannot see a neighbour recommendation, a van sighting, or a job you did on their street four years ago. For a lot of local businesses those channels dominate, and they are completely invisible in software.
Put it on the intake form, add it to the phone script, make it a required field in your job record. Do it consistently for three months and count. Almost everyone finds the mix is not what they assumed.
Rank tracking, kept in proportion
Local rank varies by the searcher’s exact location, so a single “position” number is close to meaningless.
If you track it, use a tool that samples across a grid of points in your service area. Look at the pattern, not one number. Check monthly.
Do not make decisions on rank alone. Rank that produces no calls is a vanity metric with extra steps.
The monthly scorecard
| Metric | Source | Target |
|---|---|---|
| Booked jobs from local search | Your intake log | Up quarter on quarter |
| Discovery searches | GBP insights | Up |
| Calls from profile | GBP insights | Up |
| Phone taps on site | GA4 key event | Up |
| Form submissions | GA4 key event | Up |
| New reviews this month | GBP | 2 or more |
| Cost per booked job | Spend divided by jobs | Down |
Ten minutes a month. Compare against the same month last year, not last month, because seasonality will fool you otherwise.
Add one field to your intake form this week: how did you hear about us. In ninety days that single question will teach you more about your marketing than any analytics setup on this page.
Not a tech-savvy pro? That is exactly what we are here for. [CALL NOW]
