Google Business Profile UTM Tags: Track Every Click

Most local SEO reporting counts pageviews. A plumber needs to know if the profile sent a person who booked. Here's how GBP UTM tags give you that trail in GA4.

Google Business Profile UTM Tags: Track Every Click

Most local SEO reporting is backwards. It counts pageviews and rank screenshots and calls that a win. A plumber doesn't need another chart. She needs to know whether her Google listing sent a person who booked.

Google Business Profile UTM tags give you that trail. They add short labels to your profile links so GA4 can separate a profile visit from broader organic traffic. Set them up once, name them well, and lead reporting stops being a guessing game.

Key takeaways

  • Use UTM tags to split profile traffic out of general google / organic in GA4. You can't fix what you can't see.
  • Keep utm_source=gbp and utm_medium=organic consistent. Use campaign and content for link type and location.
  • Tag every profile link you control — website, booking, menu, order, product, and every Google Post URL.
  • Tie GA4 to form tracking, booking events, and call tracking so you're measuring actual leads, not sessions.
  • Test every tagged link. Check for redirects that strip parameters, 404s, and preserved values in the browser bar.

Why bother with UTM tags

Google Business Profile Insights (or "Performance" in the current UI) shows website clicks, calls, and direction requests. That's useful for high-level activity.

It doesn't tell you what happened after a website click. It doesn't split website clicks from booking clicks from menu clicks. And when profile traffic hits your site, GA4 often lumps it into general google / organic — or worse, into direct traffic when referrer data goes missing.

A tagged link fixes all of that. Every visit gets a label. You can see the campaign, the link type, the location, and what the visitor actually did.

Tracking is not ranking. UTM tags won't move you higher in the Map Pack. Rank still depends on a complete profile, relevant services, real photos, reviews, citations, and the rest. If the profile itself is weak, better reporting won't save it — start there first with our Google Business Profile optimization checklist.

Pick a naming system before you touch a link

UTM parameters only work when the names stay boring. If one link uses "gbp," another says "GMB," and a third says "google-business-profile," GA4 treats them as three separate sources. Your report has three slices of the same pie.

Rules for naming:

  • Lowercase only.
  • Numbers and hyphens allowed. No spaces, no underscores, no capital letters.
  • Same wording every time.

The four fields we use for GBP links:

  • **utm_source** = gbp (always)
  • **utm_medium** = organic (always)
  • **utm_campaign** = the link type — gbp-profile, gbp-booking, gbp-menu, gbp-post, gbp-order
  • **utm_content** = the location or post — columbus-oh, denver-cap-hill, or the post ID

So a tagged URL looks like this:

`yoursite.com/services?utm_source=gbp&utm_medium=organic&utm_campaign=gbp-profile&utm_content=columbus-oh`

Even for a single-location business, put the location in utm_content. Takes three seconds. Saves a rebuild if you ever open a second location.

Multi-location businesses: keep a shared spreadsheet with the location name, destination page, link type, full tagged URL, date changed, and a "tested" column. Spreadsheet beats memory every time. If you manage hundreds of listings, generate URLs from a master location table via your listing platform or GBP API workflow. Lock the naming fields. One typo copied across 200 profiles is still 200 typos.

How to tag every link that matters

Start with the links that can produce a lead. Main website URL first. Then booking links, menu URLs, order links, product links, and every URL you put in a Google Post.

Some fields vary by category and region. A restaurant may have menu and order links. A dentist has an appointment link. A service-area plumber might have website and booking only. Tag every one you control.

Steps:

  • Copy every current destination URL into your tracking sheet before changing anything. You want a record.
  • Build a tagged version for each. Website button = gbp-profile. Appointment = gbp-booking. Menu = gbp-menu. Order = gbp-order.
  • Sign in to the Google account that manages your profile. Open the profile, choose "Edit profile," and replace the website link with the tagged version.
  • Add tagged URLs to appointment, menu, order, and product fields. If you use Calendly, Square, Toast, or another booking tool, test the full path after saving — some tools strip parameters at redirect.
  • Every Google Post you publish: put a tagged link on the button. Keep source and medium the same. Change the campaign to gbp-post and use content to identify the promotion.

The same landing page can appear in several profile fields. Each link type needs a different campaign value. Someone tapping "Book Now" has shown more intent than someone tapping "Website." You want to see that in the report.

Read GA4 like a business owner, not a report addict

Open Reports > Acquisition > Traffic acquisition. Look at Session source / medium and find gbp / organic — that's your profile-generated website traffic. Add Session campaign to split profile visits from booking, menu, order, and post clicks.

GA4 reads standard UTM parameters automatically. No custom setup needed.

Don't stop at sessions. Sessions don't pay payroll.

Turn on conversion tracking for:

  • Contact form submissions.
  • Online booking completions.
  • Click-to-call events on the website.
  • Thank-you page views (if you use one).

Then compare GBP sessions to actual inquiries. If sessions climb but form fills don't, the profile is driving the right traffic and the site is losing it. That's a different problem than "the profile doesn't send anyone."

Direct calls from the Call button in Google Maps don't touch your site. UTM tags can't see them. If phone calls are a big share of your leads, pair GA4 with GBP Performance data and, if you use one, a call tracking number. Our walkthrough of tracking GBP calls in GA4 covers the setup without breaking your NAP consistency.

For CRM attribution, pass utm_source, utm_campaign, and utm_content into hidden form fields on your site. When an estimate turns into a booked job, you can trace the revenue back to the specific profile link that produced it.

Google Search Console answers a different question — search terms and landing pages, not UTM campaigns. Use its Performance report to spot non-branded local searches that lead to service pages. Then compare those trends against GA4's gbp / organic leads. You're looking for patterns, not a person-by-person match.

Test every link before it goes live

A tagged link can land on the right page and still break attribution. Redirects can strip everything after the question mark. A 404 wastes a ready-to-call customer. A booking tool might send the visitor somewhere else and drop your labels along the way.

Test every new link in a private browser window. Then from the live profile in both Search and Maps.

  • Final page loads. Not a redirect loop or error page.
  • UTM parameters still in the address bar after any redirect.
  • Site returns a 200 status code on the final URL.
  • Submit a test form and confirm the campaign details reach your CRM if you capture them.

Never add UTM tags to internal website links. That overwrites the visitor's original source. Someone who found you through Google Search and then clicked your Contact page would show up as a new gbp session — nonsense.

Give GA4 a day or two before treating an empty report as broken. Then check spelling. One capital letter or misspelled value splits your data into two rows that look almost identical.

For measuring form leads properly once you've got sources sorted, see our note on tracking form leads in GA4.

Frequently asked questions

What are Google Business Profile UTM tags?

Short labels added to profile links so GA4 can identify traffic from your profile and show which link produced the visit.

Which UTM values should I use for GBP links?

utm_source=gbp and utm_medium=organic — always. Then utm_campaign for the link type (gbp-profile, gbp-booking, etc.) and utm_content for the location or post.

Can UTM tags track calls from my profile?

No. A person tapping the Call button in Google Maps never visits your site. Use GBP Performance and call tracking for phone leads, alongside GA4 for the website side.

Should I add UTM tags to my own website links?

No. They overwrite the visitor's original source and break your reports. Tag profile links and Google Post buttons only — never internal navigation.

How do I know the tags are working?

Open the link in a private browser window and confirm the final page loads with the parameters still in the address bar. Then check GA4's Traffic acquisition report for gbp / organic within a day or two.

A small tag, a clearer answer

Good local search reporting answers a plain question: did your profile send people who contacted you?

Tag the main website link, the booking link, the menu or order link, and every Google Post. Keep every value lowercase and consistent. Test the destination before it goes live.

Curve handles UTM hygiene as part of the ongoing GBP work we run for clients at $500 per location, month-to-month. The point isn't a prettier dashboard. It's knowing which clicks turn into calls, estimates, and booked jobs.