The conversion tag fires. The Google Ads conversion action is active. The Conversion Linker is in place. And yet your conversions are not being attributed to campaigns - or barely are.

If you have ruled out consent issues and your tags are technically correct, the next most likely culprit is a redirect stripping your GCLID before it can be stored.

This is one of the most common and least obvious causes of broken Google Ads attribution. It happens silently after site migrations, when landing pages redirect to a main domain, when checkout flows cross subdomains or third-party platforms, and in dozens of other everyday development scenarios.


How GCLID Attribution Is Supposed to Work

When a user clicks a Google Ad, the GCLID is appended to the destination URL:

https://yoursite.com/landing-page?gclid=Cj0KCQiA3uGgBhDdARIsAJ...

The Conversion Linker tag - which should fire on all pages - reads the GCLID from the URL and writes it to a first-party cookie called _gcl_aw. This cookie persists for 90 days.

When the user completes a conversion (purchase, form submission, phone call), your conversion tag reads the stored GCLID from the cookie and sends it back to Google Ads. Google matches it to the original click and records the attributed conversion.

The entire attribution chain depends on one thing: the GCLID surviving from the click URL to the page where the Conversion Linker fires.

If anything interrupts that journey - a redirect, a domain change, a URL rewrite - the GCLID is gone before it can be stored. The conversion tag fires later, finds no GCLID in the cookie, and records an unattributed conversion (or drops it entirely).


Why Redirects Strip the GCLID

Not all redirects strip URL parameters. But many do, and the behavior depends on how the redirect is configured.

The Core Problem

When a server issues a redirect (301, 302, or otherwise), the browser follows it to the new URL. Whether the query parameters - including ?gclid=... - survive that redirect depends entirely on how the redirect was written.

A redirect that specifies a hardcoded destination URL without forwarding parameters will drop the GCLID:

# .htaccess example  -  GCLID is lost
Redirect 301 /old-page https://newdomain.com/new-page

The browser arrives at https://newdomain.com/new-page with no ?gclid= parameter. The Conversion Linker fires, finds nothing to store, and the attribution chain is broken.

301 vs 302 Redirects

Both permanent (301) and temporary (302) redirects can strip GCLIDs. The type of redirect matters less than whether it preserves query parameters.

What matters is this: most redirect configurations written by developers do not explicitly pass query strings. Unless the developer specifically accounts for it, URL parameters are dropped.


The Most Common Redirect Scenarios That Kill GCLIDs

1. Site Migrations

This is the single most common cause. When a site migrates to a new domain or restructures URLs, developers set up 301 redirects from old pages to new ones. Unless the redirects are configured to pass query strings, every Google Ads click that hits an old URL loses its GCLID before reaching the new destination.

Example:

Old ad destination URL: https://old-domain.com/service After migration: Redirects to https://new-domain.com/service GCLID in URL: Dropped by redirect

The ads kept running. The conversion tags kept firing. But attribution stopped working the day the migration went live.

This is especially dangerous because the tracking appears to work - conversions are still recorded, they just show as (not set) for campaign attribution. Without comparing pre- and post-migration attribution rates, the problem is easy to miss.

2. Landing Page to Main Domain Redirects

Many businesses run dedicated landing pages on a separate URL (a subdomain or a separate platform) and redirect visitors to the main site after form submission or button click.

Example:

Landing page: https://landing.yoursite.com/offer?gclid=ABC123 After redirect: https://yoursite.com/thank-you GCLID: Not passed to the destination

The Conversion Linker on the landing page may have stored the GCLID, but if the conversion event fires on yoursite.com and that is a different domain, the _gcl_aw cookie from the landing page subdomain is not accessible.

3. Cross-Domain Redirects

When the click destination and the conversion page are on different domains (not just different subdomains), cookies do not transfer between them. The GCLID cookie set on landing-page.com cannot be read on checkout.yourproduct.com.

This is common for:

4. Shopify Checkout on a Subdomain

Shopify’s checkout historically ran on checkout.shopify.com or a custom subdomain like checkout.yourstore.com. The marketing site runs on yourstore.com. These are different origins.

A GCLID stored in a cookie on yourstore.com is not readable by the Shopify checkout on checkout.yourstore.com unless the cookie is set on the parent domain (.yourstore.com).

The Conversion Linker tag does attempt to set cookies at the broadest possible domain level, but this does not always work correctly across subdomain/checkout boundaries. The result: purchase conversions fire without GCLID attribution.

5. Click Tracking and Redirect Software

Some advertising tools, affiliate tracking platforms, and click fraud protection services route clicks through a redirect URL before landing on the final destination. The redirect intercepts the click, logs it, then sends the user to the actual page.

If that redirect system is not explicitly designed to pass Google’s auto-tagging parameters, the GCLID is dropped in transit.

Example:

Google Ads click destination: https://tracker.yourprovider.com/click?campaign=1 Redirect to: https://yoursite.com/landing (GCLID not forwarded)

The GCLID existed in the original click URL generated by Google. It was never passed to your site.

6. HTTP to HTTPS Redirects

If your site has automatic HTTP-to-HTTPS redirection but your ad destination URLs still use http://, every click goes through a redirect before reaching the actual page. Depending on how the redirect is configured, this can drop the GCLID.

Most modern web servers handle this correctly, but legacy configurations and some hosting platforms do not forward query parameters reliably.

7. Trailing Slash Redirects

Some servers redirect /page to /page/ (or vice versa) to enforce URL canonicalization. This is a server-side redirect that may not preserve query strings depending on configuration.

A destination URL like yoursite.com/landing?gclid=ABC123 redirected to yoursite.com/landing/?gclid=ABC123 should preserve the parameter - but a misconfigured server may redirect to yoursite.com/landing/ and lose it.


How to Diagnose a Redirect GCLID Problem

Step 1: Simulate an Ad Click

Manually append a fake GCLID to your destination URL and load it in a browser:

https://yoursite.com/landing-page?gclid=test_gclid_value

Watch the URL bar. If the URL changes (redirect occurs), check whether ?gclid=test_gclid_value is still present in the final URL.

If it disappears, you have confirmed a redirect is stripping the GCLID.

Step 2: Check Network Requests

Open browser DevTools (F12) → Network tab. Load your ad destination URL with a GCLID appended.

Look at the chain of HTTP requests:

A status 301 or 302 with a Location header that does not include gclid= confirms the problem.

After loading the page via a GCLID URL (real or simulated), check for the presence of the _gcl_aw cookie:

  1. Open DevTools → Application → Cookies
  2. Select your domain
  3. Look for a cookie named _gcl_aw

If the cookie is missing after the page loaded, either:

You can also check via console:

document.cookie.split(';').find(c => c.trim().startsWith('_gcl_aw'))

Step 4: Check Attribution Rate in Google Ads

In Google Ads, navigate to Campaigns → Conversions. Look at the conversion data and check how many conversions show campaign attribution vs. appear as unattributed.

A high proportion of conversions with no campaign, ad group, or keyword data - especially if they coincide with a site change or migration - is a strong signal that GCLID is being lost.

Step 5: Check Google Analytics Source Data

In GA4, look at your sessions from paid search. If a large percentage of sessions that arrive from Google Ads are being attributed to (direct) / (none) instead of google / cpc, this can indicate that redirects are breaking the parameter chain - which affects both GCLID and UTM parameters simultaneously.


How to Fix It

Fix 1: Update Ad Destination URLs

The cleanest fix is to ensure your ad destination URLs point directly to the final page - no redirects involved.

In Google Ads, update your final URLs to match exactly the page users actually land on after all redirects complete. Use the URL you observed at the end of the redirect chain in Step 1.

This eliminates the redirect from the attribution chain entirely. The GCLID in the ad click URL loads directly on the final page, and the Conversion Linker stores it immediately.

Limitation: This is easy for simple redirects but impractical when redirects are structural (e.g., the site has hundreds of ad destinations and the redirect logic is baked into the platform).

Fix 2: Configure Redirects to Pass Query Strings

Work with your developer to update redirect rules to forward all query parameters, including gclid.

Apache (.htaccess):

# Forward query string through redirect
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^old-page$ /new-page?%1 [R=301,L]

Or more broadly, to preserve all parameters for all redirects:

RewriteRule ^(.*)$ https://newdomain.com/$1 [R=301,QSA,L]

The QSA flag (Query String Append) tells Apache to forward all query string parameters to the destination.

Nginx:

# Pass query string through redirect
rewrite ^/old-page$ /new-page$is_args$args permanent;

The $is_args$args variables forward the query string to the new location.

Verify the fix using the simulation from Step 1: load the redirect URL with ?gclid=test_value and confirm the GCLID appears in the final URL.

Fix 3: Enable Parallel Tracking in Google Ads

Parallel tracking is a Google Ads feature that decouples click measurement from the user’s browser journey. Instead of the user’s browser loading any click trackers before reaching the landing page, the browser goes directly to the destination URL and click measurement happens in parallel (server-to-server).

This does not directly fix redirect-based GCLID loss, but it ensures that the GCLID Google generates at click time is correctly associated with the landing page URL before any redirect handling.

To enable parallel tracking:

  1. Go to Google Ads → Settings → Account settings
  2. Find TrackingParallel tracking
  3. Enable it

Parallel tracking is now required for most Google Ads campaign types. If you have not enabled it, do so.

Fix 4: Use the Final URL Suffix for Parameter Preservation

In Google Ads, you can use the Final URL suffix to append parameters that survive redirects more reliably than GCLID alone.

Setting the Final URL suffix to track all necessary parameters ensures Google appends them directly to the landing page URL at the point of click - separate from the GCLID, but providing a fallback for attribution.

However, this is supplementary. The GCLID in the URL is still what powers attribution. Fixing the redirect is the real solution.

Fix 5: Implement Cross-Domain Linker for Cross-Domain Redirects

When the user’s journey crosses domains (not subdomains, but entirely different domains), you need cross-domain tracking in addition to GCLID preservation.

For the GA4 side, configure cross-domain measurement in the GA4 Admin to include all domains that are part of the user journey.

For the Google Ads side, the Conversion Linker tag in GTM has a cross-domain linker option. When enabled, it appends a _gl parameter to links that cross domain boundaries, carrying the GCLID information across the domain hop.

To configure in GTM:

  1. Open your Conversion Linker tag
  2. Enable “Enable linking across domains”
  3. Add all domains that are part of the conversion path
  4. Ensure the Conversion Linker fires on all pages on all relevant domains

For this to work, the Conversion Linker tag must be deployed on all domains in the journey - including the checkout domain, the landing page domain, and the main site.

Fix 6: URL Passthrough as a Fallback

URL passthrough (enabled in your Google tag settings) stores GCLID information in the URL itself rather than relying solely on cookies. When a user navigates to a conversion page, the GCLID travels with the URL.

This helps in scenarios where cookies are blocked or not persisted, but it does not help if the URL parameter is stripped by a redirect.

URL passthrough is a complement to fixing redirects, not a substitute.


The Site Migration Scenario in Detail

Site migrations deserve special attention because they cause GCLID loss at scale and the damage often goes unnoticed for weeks.

What Typically Goes Wrong

A site migrates from old-domain.com to new-domain.com. The developer sets up 301 redirects:

old-domain.com/* → new-domain.com/*

The Google Ads account still has old-domain.com landing page URLs in hundreds of ads. Every click goes:

  1. User clicks ad → old-domain.com/page?gclid=ABC123
  2. Server redirects → new-domain.com/page (GCLID dropped)
  3. Conversion Linker fires on new-domain.com/page - no GCLID to store
  4. User converts later - no GCLID in cookie - conversion recorded unattributed

The Google Ads account shows conversion volume roughly unchanged (the conversion tags still fire), but campaign attribution collapses. Smart Bidding begins making poor decisions based on signals that are nearly all unattributed.

The Detection Signal

In Google Ads, pull a campaign performance report and add the Conversion source column. Compare the proportion of attributed conversions (tied to a specific click) vs. view-through or unattributed conversions week-over-week around the migration date.

In GA4, check the Session source/medium for your paid search sessions. A sudden spike in sessions attributed to (direct) / (none) or a collapse in sessions tagged as google / cpc around the migration date confirms parameter loss.

The Fix for Migrations

  1. Immediately update Final URLs in Google Ads to point to the new domain - this is the fastest fix and should be done before or on the day of migration
  2. Update redirect rules to use QSA / $args to pass query strings during the transition period
  3. Verify with simulated GCLID clicks before and after the migration goes live

Post-migration verification is not optional. A 10-minute check - simulating a GCLID click to every major landing page and confirming the cookie is set - prevents weeks of broken attribution.


What Happens to Conversions That Are Already Lost

Conversions that have already fired without GCLID attribution cannot be recovered retroactively. Once the attribution window passes without a GCLID being matched, the conversion remains unattributed.

Google Ads conversion modeling can fill in some of the gap - if your conversion volume is high enough and enough of your clicks have GCLID data - but this is statistical estimation, not actual attribution recovery.

For ongoing data quality, the priority is fixing the redirect problem going forward and auditing ad destination URLs to ensure they point to final pages directly.


Pre-Launch Tracking Checklist for Site Changes

Any time a redirect is added, removed, or modified - migration, landing page launch, checkout platform change, domain restructure - run this checklist before it goes live:

Five minutes before launch prevents weeks of broken attribution.


Key Takeaway

GCLID loss from redirects is invisible in diagnostic tools. Your tags fire. Your conversions record. Everything looks correct - except campaign attribution has quietly collapsed.

The mechanism is simple: if the GCLID appended to the click URL does not survive to the page where the Conversion Linker fires, it cannot be stored, and conversion attribution fails. Every redirect that does not explicitly forward query strings is a potential break in that chain.

The fix is equally simple in principle: ensure redirects pass all query parameters, update ad destination URLs to point to final pages, and verify with a simulated GCLID click before any site change goes live.

For site migrations specifically - where dozens or hundreds of redirects are put in place at once - this check is not optional. It is the difference between your Google Ads account having attribution data and running blind.

Related Posts

What Is GCLID? Google Click Identifier Explained (2026 Guide)

6 min read read

Google AdsConversion TrackingGCLIDAttributionGTM Advanced Series

How to Import Offline Conversions to Google Ads Using Google Sheets

9 min read

Offline Conversion ImportGoogle AdsGoogle SheetsConversion TrackingGCLIDServer-Side Tracking Series

How Google Ads Tracks Sales Across Multiple Sessions: Attribution Windows Explained

Google AdsConversion TrackingAttributionEcommerceGoogle Ads Strategy Series
Adnan Agic

Adnan Agic

Google Ads Strategist & Technical Marketing Expert with 5+ years experience managing $10M+ in ad spend across 100+ accounts.

Need Help With Your Google Ads?

I help e-commerce brands scale profitably with data-driven PPC strategies.

Get In Touch
Back to Blog