Skip to content

Marketing

CRM and SEO: how to connect search data to leads and revenue

Pass UTM, landing page and click ID data into HubSpot or Salesforce, import offline conversions to Google Ads, and report SEO by revenue.

In this article10 sections
  1. Key takeaways
  2. The data each lead record should hold
  3. Step 1: tag the links you control with UTM parameters
  4. Step 2: capture source data on the form
  5. Step 3: set up the CRM fields
  6. Step 4: send closed deals back to Google Ads
  7. Step 5: build closed-loop SEO reports
  8. Where attribution breaks down
  9. A setup checklist
  10. FAQ

Integrating your CRM with SEO means recording, on every lead, where that person came from: the channel, the campaign, the landing page and, for paid search, the click ID. Once the CRM holds that data, you can report organic search by leads, pipeline and revenue, and you can send closed deals back to Google Ads so its bidding learns which clicks produce customers.

Most companies stop at website analytics. Analytics can tell you how many visits and form fills organic search sent last month. Only the CRM knows which of those form fills became customers, and which pages they first landed on. That second view is what tells you which content to write next and what SEO is worth.

This guide covers the fields to capture, how to set them up in HubSpot, Salesforce and GA4, how offline conversion import works, how to build closed-loop reports, and where attribution breaks down.

The data each lead record should hold

Decide the fields before touching any tool. A minimal, practical set:

FieldExample valueCaptured from
Original source (channel)Organic searchCRM tracking script or first-touch logic
Original source detailgoogleReferrer or utm_source
First landing page/guides/marketing/crm-and-seoPage URL on first visit, stored in a cookie
Conversion page/contactPage where the form was submitted
utm_source / utm_medium / utm_campaigngbp / organic / main-profileURL parameters, stored on first visit
GCLIDLong click ID stringgclid URL parameter, stored in a hidden form field
Latest sourceEmail marketingLast touch before conversion
Lead created date2026-10-08CRM
Lifecycle stageLead, MQL, SQL, opportunity, customerCRM, updated by sales
Deal amount and close date$12,000, 2026-12-15CRM deal record

First landing page is the most useful field for SEO. It ties a customer to the specific article or service page that first brought them in, which is the unit you actually create and optimise.

Google Analytics supports these campaign parameters, and HubSpot and most CRMs read the same ones (Google Analytics Help, URL builders):

ParameterUse it for
utm_sourceThe referrer, such as a newsletter or a platform name
utm_mediumThe channel, such as email, cpc or organic
utm_campaignThe campaign or promotion name
utm_idA campaign ID
utm_termThe paid keyword
utm_contentWhich link or creative was clicked

Google's guidance: always set utm_source, utm_medium and utm_campaign; values are case sensitive, so use lowercase consistently; and missing parameters show up as "(not set)".

Where to use UTMs for SEO-adjacent traffic:

  • Google Business Profile website link. Tag it (for example ?utm_source=google&utm_medium=organic&utm_campaign=gbp) so leads from the map listing are separated from website organic search. Our Google Business Profile optimization guide covers the rest of the profile.
  • Email newsletters that link to your content.
  • Social posts, partner sites, directory listings you can edit.

Do not put UTMs on internal links between pages of your own site. They overwrite the visitor's real source and break your reports. Organic search visits need no tags: analytics tools and CRMs identify them from the referrer.

Step 2: capture source data on the form

Forms are where web data becomes CRM data. Two approaches:

  1. Native CRM forms and tracking scripts. HubSpot forms and tracking code record source automatically. Salesforce users typically capture it through Account Engagement (formerly Pardot) or a form tool connected to Salesforce.
  2. Hidden fields. On any form, add hidden fields for UTM values, first landing page, referrer and GCLID. A small script stores the values in a first-party cookie on the first visit and writes them into the fields on submission. This is what makes first landing page available even when someone browses 10 pages before converting.

Google Ads requires this for click IDs: "You will need to modify each form submission page to add a hidden form field for the GCLID," with auto-tagging enabled in the Ads account (Google Ads Help, offline conversions with GCLID). The GCLID is case sensitive, so store it exactly as received.

Do not forget phone calls and chats. If a large share of leads phone in, use a call tracking tool that passes source data to the CRM, or at minimum ask "how did you find us?" and record the answer in a picklist.

Step 3: set up the CRM fields

HubSpot

HubSpot sets traffic source properties on contacts automatically. Its documentation lists the values: Organic search, Paid search, Email marketing, Organic social, Referrals, AI Referrals, Other campaigns, Direct traffic, Paid social and Offline sources. Two drill-down properties add detail, and for campaigns the name comes from utm_campaign (HubSpot Knowledge Base, traffic source properties). HubSpot also notes ad blockers can block its tracking cookies and change these values.

The AI Referrals value is worth watching. Visits from ChatGPT, Gemini, Perplexity and similar assistants are a growing source of leads for some businesses. If you also track which of your pages those assistants cite, you can connect the two: Rank.ai's AI visibility tracking records the pages cited in ChatGPT, Claude and Gemini answers to your customers' questions, which you can compare with the first landing pages of AI-referred leads.

Add custom properties for first landing page (if not using HubSpot's built-in first page seen), GCLID and any UTM fields you want stored separately.

Salesforce

Salesforce has a standard Lead Source picklist. Most teams add custom fields for UTM source, medium, campaign, first landing page and GCLID on the Lead object, map them to matching Contact and Opportunity fields on conversion, and use Campaigns to group touches. Keep picklist values aligned with your UTM conventions so reports line up.

GA4

GA4 handles the website side. Mark form submissions and calls as key events. Then compare GA4's organic key events with the CRM's organic leads each month. Large gaps point to tracking problems.

Two GA4 limits matter for CRM work:

  • No personal data. Google Analytics policy says "no data be passed to Google that Google could use or recognize as personally identifiable information," including email addresses and phone numbers, and warns that PII is often sent by accident in URLs (Google Analytics Help, PII policy). Never put a lead's email in a thank-you page URL.
  • Data retention. For standard properties, user-level and event data in explorations is kept for 2 or 14 months (Google Analytics Help, data retention). Set it to 14 months. The CRM is where long-term lead source history should live.

If you work in healthcare, tracking scripts on patient-facing pages carry extra privacy obligations. See patient privacy in marketing.

Step 4: send closed deals back to Google Ads

Paid search and SEO often share keyword research and landing pages, so closing the loop on paid search helps both.

Google Ads offline conversion import lets you upload conversions that happen after the click, such as a qualified lead or a closed deal. The basic flow:

  1. Enable auto-tagging in Google Ads so each click carries a GCLID.
  2. Capture the GCLID in a hidden form field and store it on the lead.
  3. Create conversion actions in Google Ads for the stages you care about, for example "Qualified lead" and "Closed won", with values.
  4. Upload conversions with the GCLID, conversion name, time and value, by file, scheduled upload or a CRM connector.

Timing matters. Google says the click-to-conversion cycle must be "less than 14 days or 90 days, depending on the data source", and for Salesforce and HubSpot connectors, the first run imports the last 14 days of data (Google Ads Help). If your sales cycle is longer than 90 days, upload an earlier stage, such as a qualified lead, as the optimisation target.

Google now recommends enhanced conversions for leads, which it calls "an upgraded version of offline conversion import," for new setups. It matches conversions using hashed first-party data such as email addresses (Google Ads Help). Check your privacy policy and consent setup before enabling it.

Organic search has no click ID, so there is no equivalent import into Google Search Console. Closed-loop reporting for SEO happens inside the CRM.

Step 5: build closed-loop SEO reports

With source and landing page on every deal, you can build reports that answer real questions.

ReportBuilt fromWhat it tells you
Organic leads, opportunities and revenue by monthOriginal source = organic search, by created dateWhether SEO is growing the pipeline
Revenue by first landing pageDeals grouped by first landing pageWhich pages bring paying customers
Revenue by topic clusterLanding pages grouped by topicWhich subjects to expand
Lead to customer rate by sourceLeads and deals by sourceLead quality per channel
Time to close by sourceCreated to close dateHow long SEO revenue takes to show
Branded vs non-branded organicSearch Console queries for top landing pagesWhether SEO is creating new demand or capturing existing demand

A worked example of how this changes decisions: suppose a firm's blog posts bring most of its organic visits, while a handful of service pages bring most of its organic customers. Without CRM data, the team keeps writing blog posts. With it, they improve service pages first and write posts that link to them. For a fuller treatment of turning this into an ROI figure, see healthcare SEO ROI; the method applies to any industry.

Where attribution breaks down

Be honest in reports about what the data cannot show.

  • Models are simplifications. GA4 offers data-driven, paid and organic last click, and Google paid channels last click models. Google removed first click, linear, time decay and position-based models in November 2023 (Google Analytics Help, attribution models). A CRM's first-touch field and GA4's data-driven model will give different answers for the same deal.
  • Cookies are lost. People switch devices, clear cookies, use private browsing and block trackers. A buyer who read your guide on a phone and filled the form on a laptop shows as direct traffic.
  • Dark social and word of mouth. Links shared in Slack, WhatsApp or email often arrive with no referrer.
  • AI answers. A buyer who heard your name in a ChatGPT answer and later searched your brand shows up as branded organic search or direct, with no record of the assistant. Tracking whether assistants name you is the only way to see that influence. The guide to SEO competitor analysis covers how to check.
  • Self-reported attribution helps. A required "How did you hear about us?" field on high-intent forms catches podcasts, referrals and AI assistants that tracking misses. Compare it with tracked source each quarter.

Use the same rules for every channel, report trends over quarters, and treat any single-deal attribution as an estimate.

A setup checklist

TaskOwnerTime
Agree UTM naming conventions and document themMarketing1 hour
Tag Google Business Profile, email and social linksMarketing1 to 2 hours
Add hidden fields and first-touch cookie script to all formsDeveloperHalf a day
Create CRM fields and map lead to contact to opportunityCRM admin2 to 4 hours
Enable auto-tagging and GCLID capturePaid search1 hour
Set up offline conversion or enhanced conversions for leadsPaid search2 to 4 hours
Set GA4 retention to 14 months and check for PII in URLsAnalytics30 min
Build the closed-loop report setMarketing opsHalf a day
Add "How did you hear about us?" to key formsMarketing30 min

FAQ

How does a CRM help SEO?

It shows which searches and pages produce customers, which analytics alone cannot. With source and landing page stored on every deal, you can prioritise content by revenue and prove what organic search is worth.

How do I track organic leads in HubSpot?

HubSpot's tracking code sets the Original source property to "Organic search" automatically for visitors who arrive from search engines. Install the tracking code on every page, use HubSpot forms or connect your own, and build reports filtered on that property and the first page seen.

What is closed-loop reporting?

It connects marketing data (where a lead came from) with sales outcomes (whether they bought and for how much). The loop is closed when revenue can be reported by original source, campaign or landing page.

What is offline conversion import in Google Ads?

It lets you upload conversions that happen outside your website, such as a qualified lead or closed sale, matched to the original ad click using the GCLID. Google Ads then reports and optimises bidding on those outcomes.

Can I send CRM data to Google Analytics?

You can send non-personal data, such as lead stage or deal value, keyed to a non-identifying ID. Google Analytics policy forbids sending personally identifiable information such as email addresses or phone numbers.

Why do organic leads show up as direct traffic?

Usually because the original visit was lost: a different device, cleared cookies, a blocked tracking script, or a form that does not capture first-touch data. Storing first-touch values in a cookie and on hidden form fields reduces the problem.

See if AI names you when customers ask who’s best.

Enter your website. In about two minutes, Rank.ai asks ChatGPT, Claude and Gemini 12 questions your customers ask and grades how often they name you.

  • Your grade out of 100How often AI names you, cites your site, and how high it ranks you.
  • Who gets namedEvery competitor in the answers, most named first.
  • The pages AI readsThe sources behind each answer.
  • Three fixesWhat to fix first, with a brief for the first page.