Unassigned and Direct traffic in GA4 typically means your tracking setup is incomplete or misconfigured. A sudden spike in either category is a red flag that visitor behavior is not being attributed correctly. This breaks downstream decisions because you cannot see which campaigns, sources, or pages actually drive conversions.
The fix depends on identifying where the gap exists: missing UTM parameters, broken redirect chains, cookie domain mismatches, or improper cross-domain tracking. This post walks you through the diagnosis and correction steps.
What Unassigned and Direct Traffic Mean in GA4
Direct traffic is visits with no referrer source. The browser does not send a source signal to GA4, so the session defaults to direct. This includes bookmarks, typed URLs, and some app-to-web transitions.
Unassigned traffic is visits where GA4 received a source signal (referrer, UTM parameter, or cross-domain link) but could not classify it into a standard channel. This happens when UTM parameters are malformed, when a referrer domain is not in your referrer list, or when GA4 encounters an unrecognized source.
A healthy GA4 property has Direct and Unassigned traffic below 5–10% of total sessions. If either exceeds 15–20%, your tracking is missing coverage.
Common Causes of Spikes
Missing or Malformed UTM Parameters
The most frequent cause. If you send traffic from a paid campaign, email, or social post without UTM parameters, GA4 classifies it as Direct. If UTM parameters are present but misspelled or use inconsistent capitalization, GA4 may route the session to Unassigned.
Example: A campaign URL with utm_source=facebook utm_medium=paid is correct. A URL with utm_source=Facebook (capital F) or utm_sourc=facebook (typo) creates a new source dimension value and may not match your channel grouping rules, landing in Unassigned.
Broken Redirect Chains
When a URL redirects (301, 302, or JavaScript redirect), GA4 tracks the final landing page URL, not the original referrer. If the redirect chain breaks or the intermediate page does not pass referrer headers, GA4 sees no source and assigns the session to Direct.
Example: A link shortener or ad platform redirects to your site. If the shortener does not preserve the referrer header, GA4 records Direct traffic instead of the ad platform as the source.
Cross-Domain Tracking Not Configured
If you own multiple domains (e.g., example.com and checkout.example.com) and a user moves between them, GA4 may treat the transition as a new Direct session if cross-domain tracking is not set up. GA4 will not recognize the session as a continuation from the first domain.
Cookie Domain Mismatch
GA4's cookies must be set on a domain that both your main site and any subdomains can access. If the cookie domain is set too narrowly (e.g., only www.example.com), traffic to blog.example.com or shop.example.com will not share the same session ID and will appear as Direct.
Referrer Policy or Third-Party Cookie Blocking
Modern browsers restrict referrer headers for security. If your site or the referring site uses a strict referrer policy, or if third-party cookies are blocked, GA4 may not receive the referrer signal and defaults to Direct. This is increasingly common as browsers tighten privacy controls.
How to Diagnose the Source
Check the Referrer Report
In GA4, go to Reports > Traffic acquisition > Source/medium. Filter for Direct or Unassigned. Then look at the secondary dimension: Landing page. This tells you which pages are receiving Direct or Unassigned traffic. If it is a checkout or thank-you page, the issue is likely a broken redirect from an external source. If it is your homepage, the issue is likely missing UTM parameters on links pointing to your site.
Inspect URLs in Real Time
Use the Real Time report to watch sessions as they arrive. In Reports > Real Time, look at the incoming URL and referrer. If you see Direct traffic arriving at a checkout page, but the page is normally reached through a campaign, the redirect chain is broken. If you see Unassigned traffic with a UTM parameter visible in the URL, check the parameter spelling.
Review UTM Parameter Consistency
Export a list of all campaign URLs you are using. Check for capitalization differences (e.g., utm_source=facebook vs. utm_source=Facebook), typos, or missing parameters. GA4 is case-sensitive; facebook and Facebook are two different source values.
Test Cross-Domain Journeys
If you have multiple domains, manually visit your site from one domain and navigate to another. Check in the Real Time report whether GA4 records one session or two. If it records two sessions, cross-domain tracking is not configured.
Check Referrer Policy Headers
Open your site in a browser, right-click, and select Inspect. Go to the Network tab and load a page. Look at the response headers for Referrer-Policy. If it is set to no-referrer, GA4 will not receive referrer information from external sources. If it is strict-origin-when-cross-origin (the default for many sites), referrer is preserved for same-site navigation but stripped for cross-site navigation.
Fixes for Each Cause
Add or Correct UTM Parameters
Use a URL builder tool (Google's Campaign URL builder or your marketing platform's built-in tool) to generate consistent UTM parameters. The five standard parameters are:
utm_source: Where the traffic comes from (google, facebook, email, newsletter)utm_medium: The channel type (organic, paid, email, social, referral)utm_campaign: The campaign name or IDutm_content: Optional; differentiates variants (button text, ad creative)utm_term: Optional; for keyword tracking in paid search
Apply the same source and medium values across all campaigns. If you use facebook for one campaign and Facebook for another, GA4 treats them as separate sources. Standardize on lowercase for all UTM values.
Example correct URL: https://example.com/?utm_source=facebook&utm_medium=paid&utm_campaign=summer_sale
Fix Redirect Chains
Test each redirect in your chain using a tool like redirect checker or your browser's Network tab. Ensure each step preserves the referrer header. If a link shortener or ad platform is breaking the referrer, switch to one that preserves it (most modern platforms do by default).
If you control the redirect, add the Referrer-Policy: no-referrer-when-downgrade header to preserve referrer information when redirecting from HTTPS to HTTP (rare now) and Referrer-Policy: strict-origin-when-cross-origin for cross-site redirects.
Set Up Cross-Domain Tracking
In GA4, open Admin > Data streams > Web > Configure tag settings > Configure your domains. Add all domains you own (example.com, shop.example.com, blog.example.com). GA4 will automatically add your domains to the referrer exclusion list so traffic between them is not counted as referral traffic; instead, it is attributed to the original source.
If you use Google Tag Manager (GTM), you can also configure cross-domain tracking at the GTM level by setting the cookieDomain parameter in the GA4 configuration tag to a shared parent domain (e.g., example.com instead of www.example.com).
Fix Cookie Domain Settings
By default, GA4 sets cookies on the current domain. If you have subdomains, ensure the cookie domain is set to the parent domain so all subdomains share the same session. In GTM, edit your GA4 configuration tag and set cookieDomain to example.com (not www.example.com). This allows www.example.com, blog.example.com, and shop.example.com to share session IDs.
Adjust Referrer Policy if Needed
If your referrer policy is too strict, consider relaxing it to strict-origin-when-cross-origin (the browser default). This preserves referrer information for same-site navigation and strips it only for cross-site navigation, balancing privacy and tracking accuracy. Add this header to your site:
<meta name="referrer" content="strict-origin-when-cross-origin">
Do not use no-referrer unless privacy is a strict requirement; it breaks GA4 attribution for external traffic.
Update GA4 Channel Grouping Rules
Even with correct UTM parameters, GA4's default channel grouping may not match your internal naming. In Admin > Channel groups, review the rules for each channel. If you use utm_source=organic_search but GA4 does not recognize it as Organic Search, add a custom rule: If Source matches organic_search, assign to Organic Search channel.
Custom channel rules prevent new or non-standard UTM values from landing in Unassigned.
Reality Check: When Direct Traffic Is Legitimate
Not all Direct traffic is a tracking error. Bookmarks, typed URLs, and app-to-web transitions legitimately show as Direct. Some Direct traffic is normal and expected. The issue is a sudden spike or an unexplained increase.
If Direct traffic rises 50% in one week but your bookmark traffic has not changed, the spike is a sign of a tracking problem, not user behavior. Focus on the timing and magnitude of the change, not the absolute percentage.
Also note: iOS app traffic often appears as Direct in GA4 because the app does not pass referrer information by default. If you have a mobile app, configure app-to-web measurement in GA4 to attribute app-driven web visits correctly.
What to Do Next
Start with the Real Time report. Watch one session arrive and note the URL, referrer, and assigned channel. If the channel is Direct or Unassigned but should be something else, trace the URL back to its source. Check UTM parameters first (easiest to fix), then referrer headers, then cross-domain tracking. Most spikes resolve after one of these three corrections.
If you need help auditing your tracking setup or ensuring all campaigns are properly tagged, a GA4 audit can identify gaps before they distort your data.
FAQs
Why did my Direct traffic spike after I launched a new campaign?
The campaign URL likely lacks UTM parameters or has a typo in them. Check the URL in your campaign platform and regenerate it using a URL builder with consistent parameter values.
Can I fix Direct traffic retroactively in GA4?
No. GA4 does not allow you to reclassify historical sessions. Fixing the tracking setup prevents future spikes, but past Direct traffic remains. Focus on correcting the source now and monitoring going forward.
Is Direct traffic always a problem?
No. A small percentage of Direct traffic (5–10%) is normal from bookmarks and typed URLs. A sudden spike or a consistently high percentage (above 20%) signals a tracking issue.
How do I know if my referrer policy is blocking traffic?
Check your site's referrer policy header in the browser Network tab. If it is set to no-referrer, GA4 will not receive referrer information. Change it to strict-origin-when-cross-origin to preserve referrer data while respecting privacy.
People Also Ask
What is the difference between Direct and Unassigned traffic in GA4?
Direct traffic has no referrer source detected. Unassigned traffic has a source signal but does not match any standard channel. Both indicate tracking gaps, but Unassigned is often easier to fix (check UTM spelling).
How do I set up UTM parameters correctly?
Use a consistent naming convention for utm_source and utm_medium across all campaigns. Use lowercase, avoid spaces, and use hyphens or underscores as separators. Google's Campaign URL builder enforces consistency automatically.
Do I need to configure cross-domain tracking for subdomains?
Only if you want to track them as a single property. If you have www.example.com and blog.example.com, cross-domain tracking ensures a user moving between them is counted as one session, not two. If you treat them as separate properties, you do not need it.
Why is my checkout page showing Direct traffic when users came from a paid ad?
The redirect from the ad platform to your checkout page is breaking the referrer chain. Test the ad platform's redirect to confirm it preserves referrer headers. If not, switch to a platform that does or add a tracking parameter to the redirect URL.
Can privacy-focused browsers cause Direct traffic spikes?
Yes. Browsers like Firefox and Safari with strict privacy settings block referrer headers by default. If your audience uses these browsers, expect a higher percentage of Direct traffic. This is not a tracking error; it is a privacy feature.
How do I attribute app-to-web traffic correctly in GA4?
Configure App + Web measurement in GA4 Admin settings. This allows the mobile app to pass a parameter (like a campaign source) to the web property when opening a link. Without this, app-driven web traffic appears as Direct.
What should I do if Direct traffic is high but I cannot find the cause?
Use the Real Time report to inspect individual sessions. Note the landing page and the URL. If the URL has UTM parameters, check the spelling. If the URL is clean, check your referrer policy. If both are correct, the Direct traffic may be legitimate (bookmarks, typed URLs, app traffic).
Can I exclude Direct traffic from my GA4 reports?
Yes. You can create a filter in your GA4 view or report to exclude Direct traffic. However, this hides the problem instead of fixing it. Only exclude Direct traffic after you have confirmed the spike is not caused by a tracking error.
If this post is wrong, outdated, or you would take a different path
I write from work I have done on real sites. Search products change, and a step that was right when I published can go stale. I can also be wrong about the method.
If you disagree with the approach, the facts, or the outcome, I want the detail. Tell me what is off, what you would do instead, and where you saw it. I use that to correct the post so the next reader is not stuck.
This is not a comment thread. Use Contact me so the note is tied to this post and I can reply.
You are sending feedback for
Fix Unassigned and Direct Traffic Spikes in GA4
Tracking & Attribution
https://hammadshk.com/blog/fix-unassigned-and-direct-traffic-spikes-in-ga4