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:
| Field | Example value | Captured from |
|---|---|---|
| Original source (channel) | Organic search | CRM tracking script or first-touch logic |
| Original source detail | Referrer or utm_source | |
| First landing page | /guides/marketing/crm-and-seo | Page URL on first visit, stored in a cookie |
| Conversion page | /contact | Page where the form was submitted |
| utm_source / utm_medium / utm_campaign | gbp / organic / main-profile | URL parameters, stored on first visit |
| GCLID | Long click ID string | gclid URL parameter, stored in a hidden form field |
| Latest source | Email marketing | Last touch before conversion |
| Lead created date | 2026-10-08 | CRM |
| Lifecycle stage | Lead, MQL, SQL, opportunity, customer | CRM, updated by sales |
| Deal amount and close date | $12,000, 2026-12-15 | CRM 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.
Step 1: tag the links you control with UTM parameters
Google Analytics supports these campaign parameters, and HubSpot and most CRMs read the same ones (Google Analytics Help, URL builders):
| Parameter | Use it for |
|---|---|
| utm_source | The referrer, such as a newsletter or a platform name |
| utm_medium | The channel, such as email, cpc or organic |
| utm_campaign | The campaign or promotion name |
| utm_id | A campaign ID |
| utm_term | The paid keyword |
| utm_content | Which 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:
- 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.
- 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:
- Enable auto-tagging in Google Ads so each click carries a GCLID.
- Capture the GCLID in a hidden form field and store it on the lead.
- Create conversion actions in Google Ads for the stages you care about, for example "Qualified lead" and "Closed won", with values.
- 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.
| Report | Built from | What it tells you |
|---|---|---|
| Organic leads, opportunities and revenue by month | Original source = organic search, by created date | Whether SEO is growing the pipeline |
| Revenue by first landing page | Deals grouped by first landing page | Which pages bring paying customers |
| Revenue by topic cluster | Landing pages grouped by topic | Which subjects to expand |
| Lead to customer rate by source | Leads and deals by source | Lead quality per channel |
| Time to close by source | Created to close date | How long SEO revenue takes to show |
| Branded vs non-branded organic | Search Console queries for top landing pages | Whether 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
| Task | Owner | Time |
|---|---|---|
| Agree UTM naming conventions and document them | Marketing | 1 hour |
| Tag Google Business Profile, email and social links | Marketing | 1 to 2 hours |
| Add hidden fields and first-touch cookie script to all forms | Developer | Half a day |
| Create CRM fields and map lead to contact to opportunity | CRM admin | 2 to 4 hours |
| Enable auto-tagging and GCLID capture | Paid search | 1 hour |
| Set up offline conversion or enhanced conversions for leads | Paid search | 2 to 4 hours |
| Set GA4 retention to 14 months and check for PII in URLs | Analytics | 30 min |
| Build the closed-loop report set | Marketing ops | Half a day |
| Add "How did you hear about us?" to key forms | Marketing | 30 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.



