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.
Why tag a Google Business Profile link at all?
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.
| Link setup | GA4 default channel | HubSpot source | Verdict |
|---|---|---|---|
| No UTM tags | Organic Search (or Direct if no referrer) | Organic search (or Direct traffic) | Safe but the profile is invisible |
| google / organic / gbp-listing | Organic Search, campaign gbp-listing | Paid search when referrer is google.com | Right for GA4, wrong in HubSpot |
| google / cpc / gbp | Paid Search | Paid search | Wrong everywhere |
| gbp / referral / listing | Referral | Paid search when referrer is google.com | Moves organic traffic out of search in GA4 |
| Custom non-UTM parameter, for example ?src=gbp | Organic Search, parameter visible in page location | Organic search | Works 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.
How to verify the link is doing what you think.
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.
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.