Found in AI answers?Hire Theory Road
Theory Road.

Google Business Profile UTM Tags: Values That Report Correctly.

Tagging the Business Profile website link is the only way to see the profile as its own line in analytics. Tag it wrong and organic leads get credited to ads. Here is how we set it up and check it on accounts we take over.

By October 18, 202610 min read

Yes, tag your Google Business Profile website link, but only with an organic medium: utm_source=google&utm_medium=organic&utm_campaign=gbp-listing. Without tags, GA4 files those clicks as ordinary Google organic search or as direct traffic, so you cannot see what the profile itself drives. With the wrong tags, reports break in the other direction: a paid medium such as cpc puts the visits into Paid Search, and some CRMs, HubSpot included, classify any UTM-tagged visit referred by google.com as Paid search no matter what medium you choose. Check how every tool that reads the link classifies it before you change it, then confirm the clicks land where you expect.

A UTM tag is a set of query parameters (utm_source, utm_medium, utm_campaign, and optionally utm_content and utm_term) added to a URL so analytics tools can attribute the visit to a named source instead of guessing from the referrer. The Google Business Profile website link is the URL behind the Website button on your profile in Google Search and Maps. When someone taps it, the browser opens that exact URL, parameters and all, and your analytics tag and CRM tracking code read the parameters on the landing page.

An untagged Google Business Profile click usually looks like any other Google organic visit in GA4, and a click from the Maps app can arrive with no referrer and land in Direct. For a local business the profile is often a major lead source, and it is invisible unless you name it. A tag gives the profile its own campaign value, so you can compare it against website search results, run it through a landing page report, and attribute leads to it in your conversion tracking.

The mistakes we find most often.

On accounts we take over, the GBP link is rarely untouched. These are the problems we see, roughly in order of frequency.

  • Paid medium on an organic listing: utm_medium=cpc or paid was copied from an ad template, so GA4 and every CRM report the profile as Paid Search
  • CRM rule that ignores the medium: HubSpot classifies a visit as Paid search when any utm_source, utm_medium, or utm_campaign is present and the referring domain is google.com, so even a correct organic tag lands in paid
  • Campaign name that triggers a different channel: GA4 sends any session whose campaign name matches its shopping pattern (for example a value ending in -shop or containing shopping) to Organic Shopping
  • Profile shows a different URL than the one you saved: the live button links to the base URL or an older version, so the tag never reaches visitors
  • Tag only on the main website link: appointment, booking, menu, and order links still go out untagged, so part of the profile's traffic stays hidden
  • Tag stripped on the site: a redirect from http to https, from non-www to www, or through a consent or language redirect drops the query string before the analytics tag loads

How do GA4, HubSpot, and other CRMs classify a tagged GBP click?

GA4 puts a session in Organic Search when the source is on Google's list of search sites or the medium exactly matches organic, and in Paid Search only when the source is a search site and the medium matches cp, ppc, retargeting, or paid. So google / organic / gbp-listing lands in Organic Search, alongside regular search results, and the campaign value separates the two.

HubSpot checks its source rules in a fixed order, and one early rule sends a visit to Paid search whenever any UTM parameter is present and the referring domain is google.com. That rule sits before the generic rules that would otherwise file the visit as Organic search or Other campaigns. A tagged GBP click referred by Google Search matches it whatever medium you use. HubSpot stamps a contact's Original Traffic Source from the first session it records, so every new contact who first came through the profile carries Paid search from then on.

We hit this on an account we took over. The profile link carried UTMs, HubSpot filed those visits under Paid search, and a large share of closed revenue looked like ad revenue. Nothing in GA4 looked wrong, because GA4 read the same link as Organic Search. The two tools disagreed, and the CRM was the one the business used to judge its ad spend. If you also send HubSpot leads back to Google Ads, read how HubSpot form conversions reach Google Ads before you trust any channel split.

Other CRMs and call tracking tools have their own rules. In our accounts, the safe assumption is that a tool reads a tag differently from GA4 until you read its documented source logic and test one visit. A call tracking pool keyed on source and medium needs its own GBP rule too, as covered in our CallRail and GA4 setup.

How a GBP click is classified with each tagging choice (as documented by GA4 and HubSpot, October 2026)
Link setupGA4 default channelHubSpot sourceVerdict
No UTM tagsOrganic Search (or Direct if no referrer)Organic search (or Direct traffic)Safe but the profile is invisible
google / organic / gbp-listingOrganic Search, campaign gbp-listingPaid search when referrer is google.comRight for GA4, wrong in HubSpot
google / cpc / gbpPaid SearchPaid searchWrong everywhere
gbp / referral / listingReferralPaid search when referrer is google.comMoves organic traffic out of search in GA4
Custom non-UTM parameter, for example ?src=gbpOrganic Search, parameter visible in page locationOrganic searchWorks for HubSpot users who capture the parameter in a form field

What values should you use on a GBP link?

Use utm_source=google, utm_medium=organic, and a fixed campaign value such as gbp-listing, all lowercase. UTM values are case sensitive in reports, so Organic and organic would split into two rows; lowercase avoids that and matches the organic value in GA4's channel rule. Keep the campaign value free of the strings shop and shopping, and do not put cross-network in it, because GA4 routes campaign names containing those to Organic Shopping and Cross-network.

Use utm_content to separate the link types on the same profile: website, appointment, menu, order. Never use cpc, ppc, paid, or anything containing cp in the medium: GA4 matches the regex ^(.*cp.*|ppc|retargeting|paid.*)$ for Paid Search, so even a medium like gbp-cpc counts as paid.

Does a UTM tag hurt SEO or create duplicate pages?

Google treats a canonical tag as a hint for picking the representative URL, so a self-referencing canonical on the landing page is what keeps the tagged URL from being treated as a separate page. Google's own canonicalization guide uses a URL with a tracking parameter (a gclid) as its example of a version you would rather people did not reach, and recommends signaling the clean URL instead. We have not found official guidance saying UTMs on a Business Profile link affect local rankings, and we do not treat it as a ranking factor. What matters is technical: the landing page should return 200, declare its clean URL as canonical, and keep internal links untagged. If you are unsure whether the page is being picked up at all, see pages indexed but getting no impressions.

Three checks, in this order.

The live profile. Search for the business on Google and on the Maps app, tap Website, and read the address bar. If the parameters are missing, the live profile is serving a different URL than the one in the editor. Do the same for each appointment, menu, and order button.

GA4 Realtime. With the page open from the profile, go to Reports, Realtime, and confirm your visit appears with source google and medium organic. Then add Session campaign as a secondary dimension in the Traffic acquisition report a day later to confirm the sessions landed in Organic Search.

The CRM record. Submit a test form from the tagged visit in a private window and open the new contact. Read Original Traffic Source and both drill-down properties in HubSpot (or the equivalent fields in your CRM). If it says Paid search, you have confirmed the rule above on your own data.

Fix it in order.

List every tool that reads the link.
GA4, the CRM, any call tracking pool, any attribution tool. Find each one's documented source rules. This decides whether you tag at all.
Read the live URL on every button.
Open the profile in Search and Maps and record the Website, appointment, menu, and order URLs as they actually resolve. Compare them with the editor. A mismatch is a profile problem, not an analytics one.
Choose one tagging scheme.
If no tool misreads it, use google / organic / gbp-listing with utm_content per link type. If the CRM puts it in paid, use a custom parameter and capture it in a hidden field, or leave the link clean.
Update the links and test the redirect chain.
Edit the links in the profile, then load each one with developer tools open and confirm no redirect drops the query string before the page and analytics tag load.
Verify in GA4 and the CRM.
Use Realtime and a test contact as described above. Check the channel, the campaign, and the original source field, not just that a session exists.
Reconcile against Business Profile Performance.
After a few weeks, compare website clicks in the Performance view with tagged sessions in GA4 for the same dates. A large, steady gap points back to step 2.

Is the Business Profile Performance report enough on its own?

The Performance view counts the number of times people clicked the website link on your profile, but it does not tell you what those visitors did on your site. It also counts calls, direction requests, bookings, messages, and menu interactions, and Google notes that its data includes actions from both organic results and Google Ads. Use it as the source of truth for profile actions and GA4 or the CRM for what happened after the click. The searches metric updates at the start of each month and can take up to 5 days to appear, so do not reconcile search terms mid month.

What is normal and what is a red flag?

Normal: Business Profile website clicks and GA4 sessions with the gbp-listing campaign do not match exactly. Consent banners, blockers, and visitors who leave before the tag fires all widen the gap. Google does not publish an expected ratio, so watch the trend rather than a single number.

Red flag: GA4 shows Paid Search or Referral sessions with source google and campaign gbp-listing. The medium is wrong. Red flag: the CRM shows Paid search growing while Google Ads clicks are flat. Red flag: profile website clicks rise and tagged sessions stay at zero, which means the live URL or a redirect is dropping the tag. As of October 2026, check the GA4 and HubSpot rule pages again before any change, since both vendors revise these lists. For tracking traffic from AI assistants alongside local, see tracking AI search traffic in GA4.

Should I add UTM parameters to my Google Business Profile website link?

Yes, if every tool that reads the link classifies it correctly. Use utm_source=google, utm_medium=organic, and utm_campaign=gbp-listing so GA4 keeps the visits in Organic Search under their own campaign. If your CRM is HubSpot, test first, because HubSpot classifies any UTM-tagged visit referred by google.com as Paid search.

What UTM medium should I use for Google Business Profile?

Use organic, in lowercase. GA4 puts a session in Organic Search when the medium exactly matches organic or the source is a known search site. Avoid cpc, ppc, paid, or any value containing cp, which GA4 maps to Paid Search, and avoid referral, which moves the visits into the Referral channel.

Why does HubSpot show my Google Business Profile traffic as paid search?

HubSpot's source rules include one that assigns Paid search when utm_source, utm_medium, or utm_campaign is present and the referring domain is google.com. A tagged GBP click from Google Search meets both conditions. Remove the UTMs or switch to a custom parameter captured in a form field.

Should I tag appointment and menu links too?

Yes. Business Profile lets you add a menu or services link and booking or ordering links. Tag each with the same source, medium, and campaign and a different utm_content value so you can see which button drives visits.

Why do my Business Profile website clicks not match GA4?

Google counts the click on the button; GA4 counts a session only when your tag loads and records it. Consent choices, ad blockers, slow pages, and redirects that drop the query string all reduce GA4's count. A steady gap is normal; tagged sessions at zero is a broken link.

Work with us

Let’s talk about what’s next.

A short note on where the business is and where it needs to go. A senior partner replies within one business day.

t@theoryroad.com

Step 1 of 2

How can we help you get found?

What do you need help with?

Next: name, email and budget. That’s it.