Short answer: Track the chain — impression, click, call or form, qualified lead, booked job — because a break anywhere makes the system lie. Stack five layers: your profile’s call data, one call-tracking number per source, GA4 events for the website, a lead-source field in your CRM, and an intake question that catches referrals analytics miss. And count blind spot: missed calls.
Here is the uncomfortable truth about local SEO reporting: most of it stops at the click. Clicks went up, impressions went up, the agency sends a PDF. But your business does not run on clicks. It runs on ringing phones and booked jobs, and the distance between a click and a booked job is where most tracking falls apart.
For a home-service company, the measurement chain is: impression, click, call or form, qualified lead, booked job. Every link in that chain needs its own instrumentation, because a break anywhere makes the whole system lie to you. This post builds the complete stack, in the order a contractor should install it.
A plumber's conversion happens in three places at once: the tap of a call button on a map listing, a form fill on a website, and a walk-in from a truck wrap. Add a dispatch board, after-hours calls, and jobs that book days after the first contact, and you have the hardest tracking environment in local marketing.
Meanwhile, the old native call history in Google Business Profile was discontinued in July 2024, so the free call log many owners remember no longer exists. Most tracking guides were written for that old world, or they gloss over the gap. This one is for the current one.
Start with the free, native data. Your Business Profile performance report shows calls, direction requests, bookings, and website clicks: the actions a homeowner takes right at your listing, often without ever visiting your site. It is the closest thing to a native record of what your listing produces, and it requires zero setup.
Know its limits, honestly. Since Google discontinued native call history, the profile shows call counts, not who called, whether you answered, or whether the call became a job. Some views also mix organic and ad interactions. Treat the performance report as the top of the funnel, not the whole funnel, and layer the tools below on top of it.
A call-tracking number is a forwarding number assigned to one source: your website, your Google Business Profile, your yard signs. When it rings, you know where the caller came from. One number per major source is the minimum viable attribution for a contractor, and it is the only way to get call recordings, answered-vs.-missed data, and call duration.
The honest caveat: tracking numbers create a tension with NAP consistency. Your public business number should stay consistent across citations, so the standard practice is to use the tracking number as the primary number on the profile while keeping the real number listed as well, or to use dynamic number insertion on the website only. Do not put three different numbers on three different directories. Our NAP consistency guide explains why consistency is non-negotiable.
What the number buys you is quality, not just quantity. A two-minute call from your profile is a different animal than a twelve-second hang-up, and without recordings you cannot tell them apart. Listen to a few each week; it is the cheapest quality control in your business.
Calls that start on your website need events, not pageviews. In GA4, set up events for tap-to-call clicks, form submissions, and chat initiations, and tag each with the landing page, because a call from your emergency-plumber page is worth more than a call from your blog.
Then fix your UTMs. Every link you control, the website link on your profile, links in your posts, links in directories, should carry UTM parameters naming the source. Broken or missing UTMs are one of the most common tracking failures in local SEO, and they are free to fix. Search Console's performance report then ties the queries and pages to the landing pages that generate the calls, closing the loop between the search and the ring.
Name your events so a stranger could read them: tap_to_call, form_submit, chat_start, each carrying the page URL. Then build one simple exploration report in GA4: events by landing page, month over month. The page that generates the most tap-to-call events is your money page; protect it like one, and never redesign it without checking this report first.
No analytics tool follows the job to the invoice. That is your job. Every lead gets a source field: Google Business Profile, organic search, referral, repeat customer, AI assistant. Update it at booking, not at invoicing, while the memory is fresh and the dispatcher still remembers the call.
This is the layer that turns calls into revenue attribution. Our local SEO metrics guide defines the five numbers worth tracking; the source field is what feeds the only one that pays. A spreadsheet with five columns beats a dashboard with fifty widgets that nobody opens.
Keep the source list short and stable: Google Business Profile, organic search, AI assistant, referral, repeat customer, other. A taxonomy with thirty options gets filled in wrong; a taxonomy with six gets filled in right. Review the "other" bucket monthly, because anything growing there is a channel you have not named yet.
Impression, click, call, qualified lead, booked job. Instrument every link, or the system lies to you about which ones are working.
Here is the blind spot no analytics tool covers. When ChatGPT recommends your plumbing company and the homeowner calls, no analytics source records it. There is no UTM on a spoken recommendation. The call shows up as direct or unknown, and your best new channel looks like it does not exist.
The only instrument that catches it is the human one: "How did you hear about us?" Add "AI assistant (ChatGPT, Gemini, Perplexity)" as an explicit option in your intake script and your source field, and train whoever answers the phone to ask it on every first call and log the answer. In 2026, AI-sourced leads are real and growing. Without this question they are invisible, which means their cost per lead computes as zero and the channel stays unfunded.
Tracking means nothing if nobody picks up. Industry audits have repeatedly found that a large share of inbound calls to contractors go unanswered, especially after hours, which is exactly when emergency trades earn their money. Your new tracking stack will show you this number. Do not flinch from it.
The fixes are operational, not technical: an after-hours answering service or call service, a missed-call text-back within five minutes ("Sorry we missed you, how can we help?"), and a rule that every missed call gets a callback the same day. A roofer who answers the phone beats a roofer who outranks you. Visibility you already paid for, ringing out, is the most expensive leak in the business.
Make the text-back automatic if you can. Most call-tracking and CRM tools can fire an SMS the moment a call goes unanswered, and a homeowner who gets a text in two minutes waits far more patiently than one who gets voicemail. Log every text-back in the same call log, because a recovered missed call is a lead your SEO earned and your operations saved.
Fifteen minutes, every Monday. The routine is the tracking; the tools are just where the numbers live:
If you want the monthly version of this discipline, the bigger picture lives in our metrics guide, and the four-week build that produces numbers worth tracking is in our DIY checklist. For the wider foundation underneath all of it, Search Engine Journal's local SEO guide is the solid reference.
No. Google discontinued native call history in July 2024. Your profile still reports call counts in the performance report, but not who called or whether you answered. For that detail you need a call-tracking number or your phone carrier's log.
It can, if you scatter different numbers across directories. The safe practice: keep one real business number consistent everywhere, and use tracking numbers only as the primary number on your profile or via dynamic insertion on your website. Never put three different numbers on three different platforms.
A dedicated tracking number on your Google Business Profile attributes those calls. Pair it with the profile's native performance report for direction requests and bookings, which have no call equivalent. Together they cover the zero-click calls that never touch your website.
Ask. Add AI assistant as an explicit option in your intake script and your CRM source field, and train whoever answers the phone to ask every first-time caller how they heard about you. No analytics tool can see a spoken recommendation; the question is the instrument.
Booked jobs with a recorded source. Calls are a leading indicator; booked jobs are the outcome. If you track one number, track how many organic-search leads became paying jobs each month, and whether that number is rising. Everything else is supporting detail.
Profile, Maps rankings, citations, reviews, competitors, plus whether AI assistants recommend you. A prioritized action plan, free, no pitch.
Delivered within 48 hours. Yours to keep.