Direct traffic jumped after the redesign.
- “direct traffic increased after website redesign”
- “ga4 direct traffic too high”
- “why did direct traffic spike in ga4”
Diagnosis
(direct) is what GA4 records when a session arrives with no referrer it can read. A spike right after a redesign almost never means more people typed your URL. It means the rebuilt site is losing the referrer on a redirect: a payment or marketing hop that strips the query string, a cross-domain jump whose _gl linker did not carry across, or a returning visitor whose GA cookie the rebuild reset. The visits are real. The referrer is what got lost, and with it the channel that earned them.
A close cousin hides next door. When your own checkout or payment domain returns with a referrer, GA4 files it under Referrals, not direct. Same root, different bucket, and the fix overlaps.
| STEP | PAGE | REFERRER GA4 SEES | SESSION |
|---|---|---|---|
| 1 | /product | google / organic | S-1 |
| 2 | /checkout | (same site) | S-1 |
| 3 | pay.provider.com, then back | stripped on the redirect | — |
| 4 | /thank-you | (none) | S-2 · new, (direct) |
The purchase on step 4 still counts. But the redirect handed the browser back with no referrer and no _gl linker, so GA4 starts a fresh session it can only label (direct). The campaign on step 1 gets none of the credit.
Where it shows
GA4 Traffic acquisition: a fat (direct) / (none) channel that steps up the exact week the new site shipped, not gradually. Check Referrals too, for your own domain or payment provider turning up where they should not. Conversions pile onto direct while the campaigns that earned them go quiet.
℞ The fix
- Fix cross-domain and keep the
_gllinker alive. List every domain in the data stream’s domain configuration, then confirm the payment or redirect step does not drop the query string the linker travels on. This is what holds one journey together as one session. - Add your own and payment domains to unwanted referrals. GA4’s “unwanted referrals” setting stops a return from your checkout or provider being recorded as the source, carrying the prior campaign forward instead. The fresh session itself is prevented by step 1’s
_glcontinuity, not by this list. - Check the tag fires on every rebuilt page, and carry UTMs through redirects. A missing GA4 tag on the new thank-you step, or a redirect that eats the query string, resets the source to direct.
Once the journey holds together as one session, direct settles back to its real size within a day or two, and the credit returns to the channels that earned it. If the numbers still do not reconcile, the rest is filed under F-204 .