Why GA4 landing pages show "(not set)"
The landing page is derived from the first page_view of a session. If that first event never reached GA4, the landing page is blank, (not set), even though the visit clearly happened. It is one of the most telling tracking symptoms there is.
The mechanism
GA4 builds the landing page dimension from the first page_view's location. No first page_view, no landing page. So (not set) here almost always means the opening event was delayed, dropped, or fired without a URL.
The specific causes
- Consent delay: the GA4 tag is gated behind the cookie banner and only fires after a click, so the entry page_view is lost. Extremely common.
- Redirect on entry: a landing URL that 301/302s before GA4 loads, so the first measured page is the second page.
- Events before config: a conversion or custom event fires before the GA4 configuration tag, starting a session with no page context.
- SPA routing: a single-page app that fires page_view before the route and title are ready.
How to fix it
Load GA4 in a consent-aware way with Consent Mode so you still get a modelled first hit, ensure the config tag fires before any other event, and eliminate pre-measurement redirects. If your (not set) landing pages are a big share, you are mis-attributing a big share of your traffic. A free check shows the firing order in seconds.
Want us to check your tracking in 10 seconds?
Pop in your domain and we will show you what is firing, what is not, and where data is leaking. Free, no signup.
Check my tracking freeGet a plain-English audit
We check your live GA4, Google Tag Manager and consent setup by hand and tell you exactly what is wrong. The audit comes off any build.
See how it works & pricingDatahound are analytics and ad-tracking specialists. We fix broken GA4, Google Tag Manager and server-side tracking so every sale, form and call gets counted. Back to datahound.agency · All tracking guides · Why GA4 is full of (not set)