ChatGPT Traffic Showing as Direct in GA4: What Changed and What to Do
From about October 8, 2026, many ChatGPT links stopped carrying utm_source=chatgpt.com and arrived with no referrer, so GA4 counted those visits as (direct) / (none). Reports say OpenAI treated it as a bug with a fix rolling out around October 15, but there is no public statement yet. Compare ChatGPT and Direct sessions on the same deep landing pages to confirm it and size the gap, then annotate the week.
If your ChatGPT referrals in GA4 fell off a cliff around October 8 or 9, 2026, while your Direct traffic quietly rose by about the same amount, you did not lose those visitors. You lost the label on them. Starting with the GPT-6 rollout, many links clicked inside ChatGPT stopped carrying the utm_source=chatgpt.com tag that OpenAI had been adding since June 2025, and reports say the links were also opened in a way that strips the referrer. With no tag and no referrer, GA4 has nothing to go on, so it files the session under (direct) / (none).
The size of the shift was measured by Cedric Huesler at Adobe across roughly 500 pages where ChatGPT normally sends at least 5% of visits. Comparing October 9 to 13 with the week before, ChatGPT visits fell by about 31,000 a day and Direct rose by about 26,000 a day, and two thirds of the pages that lost ChatGPT visits gained Direct visits at the same time. Search Engine Roundtable flagged it on October 14. Later reports, citing Huesler again, say OpenAI told contacts it was a bug and that a fix was rolling out around October 15. As of today, October 19, OpenAI has not posted a public statement, so treat the fix as likely but not confirmed and check your own numbers rather than trusting either headline.
This post walks through how to confirm what happened on your site, how to put a number on the missing week, and how to set up GA4 so the next time an AI tool changes how it links out, you see it in minutes instead of weeks.
Confirm it on your own site in five minutes
Open GA4 and go to Reports > Acquisition > Traffic acquisition. Change the primary dimension from Session default channel group to Session source / medium. Set the date range to September 28 through October 18, 2026, and switch the chart to daily.
Type chatgpt into the table search box. You are looking for chatgpt.com / referral and, on many sites, chatgpt.com / (not set) as well. If the daily line runs steady, drops sharply between October 8 and 10, then climbs back after October 15, you are looking at the tracking change, not a real loss of interest.
Now clear the search box and type direct. Look at (direct) / (none) over the same dates. If Direct bumps up in the same window that ChatGPT dips, and then settles back down when ChatGPT recovers, that is your answer. On a small site the numbers can be single digits, so look at the shape of the two lines together rather than percentages.
If ChatGPT dropped and did not come back after October 16, and Direct did not rise either, that is a different problem. Either ChatGPT stopped citing your pages, or your GA4 tag is not firing on the pages it does cite. Check the second one first: load one of your top landing pages in a private window, open Admin > Data display > DebugView (or use Realtime), and confirm a page_view arrives within a minute.
Why deep pages give it away
Real direct traffic, the kind where someone types your address or uses a bookmark, almost always lands on your home page or a short URL. Nobody types /blog/how-to-fix-ads-txt-not-found-on-cloudflare-pages from memory. So when Direct suddenly shows up on long, deep article URLs, it is almost always unlabeled traffic from somewhere else: an app, an email client, a chat tool.
That gives you a simple way to estimate how much ChatGPT traffic was hidden. Go to Explore, start a Free form exploration, and set it up like this:
- Dimensions: Landing page + query string, Session source / medium, Date
- Metrics: Sessions, Engaged sessions
- Rows: Landing page. Columns: Session source / medium.
- Filter: Session source / medium matches regex
chatgpt|\(direct\)
Run it twice: once for September 28 to October 7 (before) and once for October 8 to 15 (affected). For each page that had ChatGPT sessions in the before period, compare the two columns. The pages where ChatGPT fell and Direct rose by a similar amount are your hidden ChatGPT visits. Add up the Direct increase on those pages only, not across the whole site, and you have a reasonable estimate of what was mislabeled. On a site getting 40 ChatGPT visits a day, a gap of 25 to 30 a day during that week would match the pattern Adobe saw.
Mark the week so it does not fool you later
Three months from now you will compare October to January, see a dip in AI referrals, and forget why. Add a note now. In GA4, go to Admin > Data display > Annotations, create one dated October 8, 2026, and write something like: ChatGPT links lost utm_source and referrer after GPT-6. Visits counted as Direct until about Oct 15. Annotations show on the time series charts in your reports, so anyone reading the data later sees the explanation right on the line.
If you send reports to a client or partner, add a sentence there too. Something like: AI referral numbers for October 8 to 15 are undercounted because of a ChatGPT tracking change, and Direct is overcounted by roughly the same amount. That one line prevents a lot of wrong conclusions.
Build an AI traffic channel group
By default GA4 lumps most AI referrals into Referral, which makes them easy to miss next to forums and directories. A custom channel group fixes that and applies to past data too, so you can look back at this whole episode in one view.
- Go to Admin > Data display > Channel groups and click Create new channel group.
- Name it something like
Channels with AI. - Click Add new channel, name it
AI assistants, and set the condition to Source matches regex:^(chatgpt\.com|chat\.openai\.com|perplexity\.ai|www\.perplexity\.ai|gemini\.google\.com|copilot\.microsoft\.com|claude\.ai|chat\.deepseek\.com)$
- Drag the new channel above Referral in the list. GA4 assigns a session to the first channel that matches, so if Referral sits above it, your AI channel will stay empty.
- Save, then in Traffic acquisition switch the dimension to your new channel group.
Check your own Session source list for any AI source not in the pattern and add it. The list of tools changes often, and a source that is not in the regex simply falls through to Referral.
What you can and cannot control
You cannot force ChatGPT to tag its links or send a referrer. Whatever it does with outbound clicks is up to OpenAI, and this episode shows it can change without notice. What you can control is how fast you notice and how well you can reconstruct what happened. Three habits cover most of it:
- Watch ChatGPT and Direct together. A drop in one paired with a rise in the other on the same pages almost always means a labeling change, not a demand change.
- Keep a list of your AI-cited pages. Export the landing pages that get ChatGPT, Perplexity or Gemini sessions once a month. When attribution breaks, that list tells you exactly where to look for the missing visits.
- Make sure every page fires the tag. If a page is missing the GA4 snippet, the visit is not mislabeled, it is gone. A quick way to spot pages with missing analytics, broken canonicals or other structural gaps is to run your site through the free site checker, which looks at 30 basics in about ten seconds.
Also keep in mind that GA4 only counts visitors who allow analytics in your consent banner. Reports on this change noted that a larger share of ChatGPT visitors saw a consent banner as new visitors, so if your banner blocks analytics until consent, some AI traffic was never going to show up in GA4 at all. Your server or Cloudflare logs count every request, but they cannot tell you the source either once the referrer is stripped.
If your numbers have not recovered
Look at October 16 through 18 in Traffic acquisition. If chatgpt.com sessions are back near their late September level, the fix reached you and you only need the annotation and the one-week estimate above. If they are still low and Direct is still elevated on deep pages, the fix may not cover every link type yet. The Profound data cited in these reports showed the share of ChatGPT answers with at least one tagged link falling from about 98% on October 8 to about 66% on October 14, alongside a rise in a newer answer layout, so some formats may stay untagged longer than others. Keep the annotation open-ended, check again in a week, and report ChatGPT plus deep-page Direct as one combined number until the split looks normal again.
Where this question came from
- Search Engine Roundtable: OpenAI Removes UTM Parameters From ChatGPT Results
- Search Engine Land: ChatGPT appears to drop UTM tracking
- Relevant Audience: ChatGPT UTM bug confirmed secondhand, fix rolling out
Questions about ChatGPT visits counted as Direct
Did I actually lose ChatGPT visitors in October 2026?
Probably not. Across about 500 pages measured by Adobe, ChatGPT visits fell by about 31,000 a day from October 9 to 13 while Direct rose by about 26,000 a day on the same pages. The visitors kept coming, they just arrived without a label.
Has OpenAI fixed the missing UTM tags?
Reports citing Adobe's Cedric Huesler say OpenAI called it a bug and began rolling out a fix around October 15, 2026. OpenAI has not posted a public statement, so check whether chatgpt.com sessions in your own GA4 returned to their late September level.
Where do I add an annotation in GA4?
Go to Admin, then Data display, then Annotations, and create a note dated October 8, 2026 explaining the ChatGPT tracking change. It will appear on the time series charts in your reports.
Can I recover the mislabeled sessions in GA4?
No. GA4 cannot reassign past sessions to a different source. You can only estimate the gap by comparing the rise in Direct on pages that normally get ChatGPT visits, and note that estimate in your reports.