What to Track Beyond UTMs: GCLID, FBCLID, Referrer, Landing Page, and Organic Source

By Haktan Suren, PhD
In Blog
Jun 11th, 2026
0 Comments
50 Views
Illustration of marketing attribution signals beyond UTMs flowing through a website form into a CRM lead record.

Most marketers stop too early.

They add utm_source, utm_medium, and utm_campaign to a few campaign links, pipe those values into a form, and call the setup “attribution.”

I understand why. UTMs are familiar. They are easy to explain. They fit neatly into spreadsheets, dashboards, CRMs, and campaign naming conventions.

But UTMs are not the whole story.

They are the label you choose to put on a link. That is useful, but it is not the same thing as capturing the actual journey.

The problem shows up the moment the lead does something normal.

They click a Google ad with a gclid. They come back from Facebook with an fbclid. They first find you through an organic search where there are no manual UTMs. They visit a blog post first, convert on a demo page later, and arrive in your CRM with only a vague source field attached.

If all you track is the standard UTM set, you will miss a lot of the evidence.

That is why I like tracking beyond UTMs.

Not because I want more fields for the sake of more fields. I do not.

I want enough context to answer better questions when a real lead shows up.

Where did this person first come from? What ad platform generated the click? What page introduced them? What page converted them? Was this really direct traffic, or did we lose the campaign label somewhere? Was it organic search, organic social, paid traffic, referral, or something else?

Those questions are where attribution becomes useful.

UTMs are necessary, but they are not enough

The standard UTM fields still matter.

For most WordPress lead generation sites, I still want these in the form and CRM:

FieldWhat it tells me
utm_sourceThe platform, publisher, or traffic source you tagged
utm_mediumThe channel type, such as cpc, paid_social, email, or referral
utm_campaignThe campaign name
utm_termThe paid keyword or audience term, when useful
utm_contentThe ad, creative, CTA, variation, or placement detail

That is the baseline.

If you are not capturing those, start there.

But there are two limitations with UTMs that I see over and over again.

First, UTMs only exist when someone remembered to add them to the URL.

Second, UTMs are only as good as the naming discipline behind them.

If the team tags one campaign as paid-social, another as paidsocial, another as facebook-paid, and another as meta, the data becomes noisy before it even reaches the CRM.

That is not a WordPress problem. That is a process problem.

The bigger issue is that some of the most important attribution signals are not manual UTMs at all. They are click IDs, referrers, landing pages, organic source fields, and traffic classification fields.

That is the layer I care about in this post.

The extra fields I actually want

If I were setting up a serious WordPress form today, I would not stop at five UTM fields.

I would send a stronger attribution record into the CRM.

Here is the practical version:

Field groupFields I would capture
Standard UTMsutm_source, utm_medium, utm_campaign, utm_term, utm_content
Click IDsgclid, fbclid, msclkid, and when relevant gbraid, wbraid, _fbc, _fbp
First-touch contextfirst_utm_source, first_utm_medium, first_utm_campaign, first_utm_term, first_utm_content
Referrer datahandl_original_ref, handl_ref, handl_ref_domain
Page contexthandl_landing_page, handl_landing_page_base, handl_url, handl_url_base
Organic sourceorganic_source, organic_source_str
Traffic classificationtraffic_source, first_traffic_source
Optional technical contextgaclientid, user_agent, handlID

That may look like a lot at first glance.

In practice, it is just a better memory system.

UTMs tell me what the campaign link claimed.

Click IDs tell me which ad platform click I may need to reconcile later.

Referrer and page fields tell me what actually happened on the site.

Organic and traffic source fields help when no one tagged the link at all.

That is the point. I do not want one fragile source field trying to explain the whole lead journey by itself.

GCLID: the Google Ads field I do not want to lose

If you run Google Ads, gclid belongs in your forms.

GCLID stands for Google Click Identifier. In plain English, it is the click ID Google uses to connect an ad click back to Google Ads data.

The HandL GCLID Reporter docs explain why this matters: once GCLID is collected, it can be associated with campaign, ad group, creative, location, keyword, placement, device, ad network, and other Google Ads details.

That is a much richer trail than utm_source=google.

This does not mean UTMs are useless for Google Ads. I still like clean Google Ads UTMs. They make reporting easier, especially across tools that do not understand Google click IDs.

But if I have to choose between a lead record with only:

utm_source=google

and a lead record with:

utm_source=google

utm_medium=cpc

utm_campaign=brand-search

gclid=...

I want the second one every time.

The UTM values are human-readable.

The GCLID is the platform-level receipt.

That distinction matters when the lead becomes revenue and someone wants to know which campaign, ad group, or keyword actually helped create the opportunity.

In HandL UTM Grabber’s native shortcode documentation, gclid is included in the last-touch parameter list as the Google Ads click ID. The newer documentation also notes that GCLID is tracked by default, while wbraid and gbraid can be added as custom parameters when needed.

My practical recommendation:

If Google Ads is part of your acquisition mix, capture gclid by default. If your account or campaign setup relies on wbraid or gbraid, add those too.

Do not wait until after a revenue question appears to discover that the click ID never made it into the lead record.

FBCLID: useful, but I think about it differently

fbclid is Facebook’s click identifier.

It is not the same kind of reporting key as GCLID in every workflow, but I still like capturing it when Meta traffic is part of the picture.

The reason is simple: paid social attribution is messy.

People click, browse, leave, come back, switch devices, open Instagram, open Facebook, search the brand later, and eventually submit a form from a completely different session.

If you only capture manual UTMs, you are trusting that every Meta link was tagged correctly and that nothing happened later to blur the path.

The native shortcode docs include fbclid as the Facebook Ads click ID. There is also a custom-parameter doc for tracking fbclid, _fbc, and _fbp like other parameters when that is what your setup needs.

That is the kind of setup detail I do not want buried in someone’s memory.

If Facebook or Instagram ads are meaningful for the business, I want those fields available. They may not answer every attribution question by themselves, but they give me extra signal when I am trying to connect a lead back to paid social activity.

My practical recommendation:

Capture fbclid for Meta click context. If your implementation also needs _fbc and _fbp, add those as custom parameters and make sure the form or CRM handoff actually stores them.

And yes, still use UTMs.

I would rather have both a clean utm_campaign and the click-level identifier than one without the other.

MSCLKID and other paid click IDs

The same logic applies to Microsoft Ads.

The msclkid field is the Microsoft Ads click ID. HandL includes it in the native shortcode list alongside gclid and fbclid.

I see teams forget this because Google and Meta dominate the conversation. But if Microsoft Ads is driving valuable search traffic, the click ID deserves the same treatment.

My rule is straightforward:

If a paid platform can attach a click ID to the URL, and that click ID can help with attribution, reporting, offline conversion matching, or debugging, capture it.

You do not have to stare at it every day.

You just want it available when the revenue conversation gets serious.

Referrer: the field that saves you when UTMs are missing

Referrer data is one of the most underrated attribution fields.

It is not perfect. Browsers, privacy settings, redirects, apps, and cross-domain behavior can all affect referrer data.

But when UTMs are missing, referrer can be the difference between “unknown” and “this probably came from a specific source.”

The key is understanding that there are two useful referrer ideas:

FieldWhat it tells me
handl_original_refThe original referrer, first touch
handl_refThe last-touch referrer
handl_ref_domainThe last-touch referrer domain only

The difference matters.

Imagine this path:

google.com -> /blog/best-crm-for-contractors -> /demo -> form submission

In that case, I want to know two things:

The original referrer was Google.

The last step before conversion may have been an internal page.

Those are different pieces of evidence. If I collapse them into one generic referrer field, I lose useful context.

The native shortcode docs list both the original referral field and the last-touch referral fields. The separate HandL parameter explanation gives a simple example: if someone comes from Google to page 1 and converts on page 2, the original referrer and landing page preserve the start of the journey, while handl_ref and handl_url describe the later conversion context.

That is exactly how I think about it.

handl_original_ref tells me where the story started.

handl_ref tells me what happened near the conversion.

Both are useful.

Landing page: the page that did the introduction

I care a lot about landing page.

Sometimes more than source.

That may sound odd, but hear me out.

If a lead record says:

utm_source=google

that is useful.

If it also says:

handl_landing_page=/blog/compare-crm-integrations

now I know which page introduced the visitor.

That changes the conversation.

Maybe a blog post is doing better acquisition work than the homepage. Maybe a comparison page is quietly producing high-intent leads. Maybe an old tutorial is attracting the exact buyer the sales team wants. Maybe the paid campaign is not the only reason the lead converted.

The landing page gives the source context a place to stand.

I usually want these fields:

FieldWhat it tells me
handl_landing_pageThe first page the visitor landed on
handl_landing_page_baseThe base domain of the first landing page
handl_urlThe last-touch URL, often the conversion page
handl_url_baseThe base URL for the last-touch URL

The distinction between first landing page and conversion page is important.

If someone first lands on a blog post and later converts on a pricing page, both pages matter.

The blog post may deserve credit for acquisition.

The pricing page may deserve attention for conversion.

If your CRM only records the final form page, you may under-credit the content that created the first serious visit.

If your CRM only records the first landing page, you may miss which page actually converted the lead.

Again, the answer is not to pick one.

Capture both.

Organic source: the answer when there are no campaign tags

Organic traffic is where many UTM-only setups start to look weak.

If someone clicks a Google search result, there may be no UTMs at all.

That does not mean the lead should become invisible.

HandL UTM Grabber has organic tracking fields for this:

FieldWhat it tells me
organic_sourceThe organic source href, such as a Google URL
organic_source_strThe classified organic source, such as Google, Bing, Instagram, or LinkedIn

The organic traffic docs describe these two fields directly, and the related organic tracking values page explains how sources are classified from referrer domains.

That source list is now broader than the old search-engine-only mental model. The docs include search engines, social platforms, and newer AI referral patterns such as OpenAI, Perplexity, Claude, Gemini, and Copilot.

That is worth paying attention to.

Organic discovery is no longer just “Google or nothing.”

People now arrive from search, social, community links, AI answer engines, newsletters, partner sites, and plenty of sources that do not always carry neat campaign tags.

If you only capture UTMs, those visits often land in a vague bucket.

If you capture organic source and referrer fields, you at least have a better fallback.

My practical recommendation:

Capture organic_source and organic_source_str on lead forms, especially if content, SEO, social, or AI referral traffic matters to your acquisition strategy.

And keep expectations realistic.

You are not going to get organic search keywords from Google the way people wish they could. In support conversations, I have had to say this many times: Google does not hand over organic keyword data in the same way paid search can pass keyword context.

But knowing that the lead came from Google organic, Bing organic, LinkedIn organic, or a referral source is still much better than calling it all direct or unknown.

Traffic source: the high-level classification field

The field I think more teams should use is traffic_source.

It gives a high-level classification such as:

  • Paid
  • Organic
  • Social
  • Direct
  • Referral
  • Other

The traffic source documentation says the traffic_source cookie was introduced to capture whether traffic is paid, organic, direct, referral, social, or another category. It is a last-touch attribute, and first_traffic_source is the first-touch version.

I like this field because it gives operators a usable summary.

A CRM record with traffic_source=Paid and utm_source=Google is easier to segment than a CRM record with a dozen raw fields and no clear channel label.

That does not mean I would only capture traffic_source.

I would treat it as the channel classification layer on top of the more detailed evidence.

For example:

FieldValue
traffic_sourcePaid
utm_sourceGoogle
utm_mediumcpc
gclidPresent
handl_url/book-a-demo

That is a much clearer lead record than:

source = Google

The first one tells me this was paid Google traffic with a click ID and a conversion page.

The second one forces me to guess.

HandL also has an Auto-Populate Source/Medium feature that can set utm_source and utm_medium based on detected traffic source and organic source string when manual UTMs are not present. I like that idea because it helps reduce blank source fields for organic and referral traffic.

But I would still store the underlying fields too.

Do not just store the cleaned-up answer.

Store the evidence behind the answer.

A practical example

Here is a common path:

Day 1:

A visitor clicks a Google ad and lands on:

example.com/contractor-crm?utm_source=google&utm_medium=cpc&utm_campaign=crm_search&gclid=abc123

They read the page and leave.

Day 4:

They return from a LinkedIn post with no UTMs, read a blog post, and leave again.

Day 9:

They search the brand name, land on the homepage, visit the pricing page, and submit a demo form.

If you only capture the visible URL at the moment of form submission, you may get almost nothing useful.

If you only capture standard UTMs, you may get the latest tagged campaign but miss important surrounding context.

The stronger lead record would include:

QuestionField that helps answer it
What first introduced the person?first_utm_source, first_utm_medium, first_utm_campaign
Was there a Google Ads click?gclid
What was the first landing page?handl_landing_page
What source brought them back later?handl_ref, organic_source_str, traffic_source
What page did they convert on?handl_url
Was this paid, organic, social, direct, or referral?traffic_source, first_traffic_source

That record does not make attribution perfect.

It makes the lead harder to misunderstand.

That is the real goal.

The fields I would send to the CRM

If I were starting from scratch, I would use a two-tier setup.

Tier one is the practical minimum.

FieldWhy I want it
utm_sourceLatest tagged source
utm_mediumLatest tagged medium
utm_campaignLatest tagged campaign
utm_termKeyword, term, or audience detail
utm_contentCreative, CTA, or variation detail
gclidGoogle Ads click ID
fbclidFacebook/Meta click ID
msclkidMicrosoft Ads click ID
handl_original_refOriginal referrer
handl_landing_pageFirst landing page
handl_refLast-touch referrer
handl_urlLast-touch URL or conversion page
organic_source_strOrganic/referral source label
traffic_sourceLast-touch channel classification

Tier two is what I would add for stronger analysis.

FieldWhy I want it
first_utm_sourceOriginal tagged source
first_utm_mediumOriginal tagged medium
first_utm_campaignOriginal tagged campaign
first_utm_termOriginal term
first_utm_contentOriginal creative/content value
first_traffic_sourceFirst-touch channel classification
handl_landing_page_baseFirst landing page domain
handl_ref_domainLast-touch referrer domain
handl_url_baseConversion URL base
organic_sourceFull organic source href
gaclientidGoogle Analytics client ID, when useful
_fbc, _fbpMeta browser/click context, when useful
gbraid, wbraidGoogle Ads identifiers, when needed
handlIDHandL-generated unique ID

That is more fields than many teams need to look at every day.

That is fine.

The CRM can show the most important fields to sales and keep the deeper fields available for reporting, debugging, exports, or offline conversion workflows.

The mistake is not having the data when you finally need it.

Where people usually break this setup

The most common failure is not that the data cannot be captured.

It is that the form never sends it anywhere.

The visitor arrives with UTMs, click IDs, referrer, landing page, and organic source context.

The browser stores the values.

Then the form submits only name, email, phone, and message.

At that point, the attribution exists somewhere in the browser but never reaches the lead record.

That is a broken handoff.

This is why I care so much about hidden fields and form integrations. Whether you use Contact Form 7, Gravity Forms, WPForms, Formidable, WooCommerce, a booking tool, or a CRM embed, the conversion form has to receive the attribution data before the lead leaves WordPress.

Another common mistake is using friendly labels as field names.

Do not name the hidden field:

Google Click ID

if the integration expects:

gclid

Use clean technical field names in the form. Make them pretty later in the CRM.

The third mistake is capturing last touch only and assuming that explains acquisition.

It does not.

If someone first arrived from a Meta campaign and converted later from branded Google search, last touch alone can make the original acquisition channel disappear.

That is why I like pairing standard fields with first-touch fields, original referrer, and landing page.

You do not need to solve the attribution model before you collect the data.

You just need to stop throwing away the data.

How I would test it

I do not trust attribution setups until I test them through the whole path.

Here is the test I would run:

  1. Open a clean incognito window.
  2. Visit a tagged URL with UTMs and a fake click ID.
  3. Confirm the hidden fields populate on the form.
  4. Submit a test lead.
  5. Check the form entry, CRM, email notification, Google Sheet, or webhook destination.
  6. Confirm the standard UTMs, click IDs, referrer, landing page, URL, organic source, and traffic source fields arrived.
  7. Return through a second source and test whether last-touch fields update while first-touch fields stay intact.
  8. Test one untagged organic or referral visit so you can see what happens when there are no UTMs.

That last test is important.

A lot of teams only test the perfect campaign URL.

Real traffic is not perfect.

Some links are untagged. Some referrals are messy. Some visits arrive from organic search. Some paid clicks carry click IDs but weak UTMs. Some people come back days later from a different source.

Your setup should handle that reality.

My practical recommendation

My recommendation is simple:

Track UTMs, but do not stop at UTMs.

For a serious WordPress lead generation site, I want:

  • standard UTMs for campaign labels
  • click IDs for paid platform evidence
  • first-touch fields for origin
  • referrer fields for missing or messy tags
  • landing page and conversion page fields for page-level context
  • organic source fields for SEO, social, referral, and AI discovery patterns
  • traffic source fields for high-level channel classification

That sounds like more work than “just add UTM tags.”

It is.

But it is also the difference between thin attribution and useful attribution.

Thin attribution says:

“This lead came from Google.”

Useful attribution says:

“This lead first landed on our comparison post, originally came from Google organic, returned later through paid search, converted on the demo page, and carried a Google Ads click ID we can reconcile later.”

That second version gives a founder, CMO, or operator something they can act on.

It helps with campaign decisions.

It helps with sales context.

It helps with landing page analysis.

It helps with debugging.

And it helps prevent the lazy conclusion that every untagged or messy lead is just “direct.”

The bottom line

UTMs are still worth using.

I am not arguing against them.

I am arguing against treating them as the whole attribution system.

If you care about real lead tracking, the form should capture more than the campaign label. It should capture the evidence around the visit: click IDs, original referrer, landing page, conversion page, organic source, and traffic classification.

That is how you give your CRM a better memory.

And in attribution, better memory is usually where better decisions start.

About the Author

Haktan Suren, PhD
- Webguru, Programmer, Web developer, and Father :)

Wrap your code in <code class="{language}"></code> tags to embed!

Leave a Reply

E-mail address is required for commenting. However, it won't be visible to other users.

Loading Facebook Comments ...
Loading Disqus Comments ...