From 8 October, many links in ChatGPT answers reached websites without the utm_source=chatgpt.com tag and without a referrer, according to Cedric Huesler, who works at Adobe and published some of the first data. With neither, GA4 has nothing that says a visit came from ChatGPT, so it files it under Direct.
Huesler says OpenAI confirmed the bug to him, as Search Engine Journal reports. OpenAI has said nothing in public: its ChatGPT release notes, read 16 October, do not mention link tracking.
Check your own numbers in five steps
- Mark 8 to 15 October on your reports. In GA4, right-click a point on any report’s line graph, choose
Add annotation, then set the date range and a title such as “ChatGPT links lost their tag”. Anyone reading the report later sees the break before judging ChatGPT, and Google's annotations page says you need the Analyst role or above. - Build the exploration. Click
Exploreon the left and start a blank exploration. In Variables, click+next to Dimensions, tick Date, Session source / medium and Landing page, and clickImport; do the same next to Metrics for Sessions and Key events. Then drag Date and Session source / medium into Rows and both metrics into Values. - Export the daily table. Set the dates to 24 September to today, click
Export datain the top right and save a CSV, labelled DAILY BY SOURCE. Google says a CSV export holds all the data in the table, even rows not on screen. - Export the page tables. In Rows, swap Date for Landing page. Export once for 24 September to 7 October (PAGES BEFORE) and once for 8 to 14 October (PAGES DURING THE GAP). For a seasonal check, export the daily table again for the same weeks last year (LAST YEAR).
- Paste it all into the prompt below. Paste it into ChatGPT, Claude or Gemini, with each file under its label; attach the CSVs as files if they are long.
The prompt: is my ChatGPT drop real?
It runs six checks in order, from the size of the drop to what happened to sign-ups or sales, then gives one verdict with a confidence level. Wherever your export is missing something, it writes “not stated” or names the data it needs.
You are my traffic analyst: a careful web analytics lead who has watched a business cut a good channel because one line on a dashboard fell. Tell me whether the drop in ChatGPT visits on my site in October 2026 is a real loss, a tracking gap, a normal dip, or a mix, using only the numbers I paste. A confident wrong verdict costs me more than "too early to tell", so show your working and write "not stated" wherever my data is silent. BACKGROUND YOU CAN USE, BUT NEVER AS PROOF FOR MY SITE From about 8 October 2026, many links in ChatGPT answers reached websites without the utm_source=chatgpt.com tag and without a referrer, so analytics tools filed those visits as Direct. Reports say the tag began coming back on 15 October, gradually. My own numbers decide what happened on my site. ABOUT MY SITE (I fill this in once; any line can say "not stated") - What the site is and roughly how big: [e.g. "a recipe blog, about 40,000 visits a month; ChatGPT used to send about 3% of them"] - What counts as a win, with the GA4 key event name if I know it: [e.g. "newsletter sign-ups, event name sign_up", or "orders", or "not stated"] - My normal rhythm: [e.g. "quiet at weekends; October usually dips after a busy September", or "not stated"] - Anything that changed on my side between 1 and 20 October: [e.g. "new cookie banner on 6 Oct", "site redesign", "newsletter sent 10 Oct", "a post went viral", or "nothing I know of"] - Whether I run ChatGPT ads with my own tracking tags: [yes, with the utm_source and utm_medium I use / no] - My date ranges: before [e.g. "24 Sep to 7 Oct"], gap [e.g. "8 to 14 Oct"], after [e.g. "16 Oct to today", or "no data yet"] - What I need at the end: [pick one or more: "a verdict for me", "three sentences for my boss or client", "a list of pages to watch"] MY DATA [Paste or attach each export under its own label. Any label can say "not pasted". DAILY BY SOURCE: Date, Session source / medium, Sessions and Key events, from two weeks before 8 October to today. PAGES BEFORE: Landing page, Session source / medium, Sessions and Key events, for the before period. PAGES DURING THE GAP: the same table for 8 to 14 October. LAST YEAR: the daily table for the same weeks last year, if I have it.] RULES FOR THIS WHOLE TASK - Use only the numbers I pasted. Never invent a figure, a date or a cause. If a number is missing, write "not stated". If a check needs an export I did not give, write "[NEED: the export it needs]" and move on. - Count as ChatGPT any source containing "chatgpt" or "openai", whatever the medium, and list the exact source / medium values you grouped so I can check them. If I run ChatGPT ads with my own tags, keep those rows separate, because ads were reported as unaffected. - (direct) / (none) is never ChatGPT. Any number you give for hidden ChatGPT visits inside Direct is labelled "estimate", with the sum that produced it. - Treat 15 October as a mixed day: the fix rolled out during it, so leave it out of both the gap and the after period and say you did. - Compare like with like: the same number of days and the same weekdays. If my periods differ in length, use daily averages and say so. - If a page had fewer than 10 ChatGPT sessions in the before period, group it with the other small pages. A swing on tiny numbers means nothing. - If an export says it is sampled, or that thresholds were applied, say so at the top and lower your confidence. BEFORE YOU START 1. Read everything once without writing anything. 2. If you do not have at least daily sessions by source for both the before period and the gap, ask me for them in one short message and stop until I answer. If anything else is unclear, ask at most three questions, with choices where you can. If nothing important is missing, say so and carry on. 3. Tell me in one line which export you trust most, and why. THE CHECKS (run them in order; each ends with one line: "points to tracking gap", "points to real drop", "points to normal dip" or "no signal") 1. HOW BIG IS THE DROP: daily average ChatGPT sessions before, during the gap and after, with the percent change, plus the same for Direct and for total sessions. If ChatGPT sessions did not fall, say "no drop to explain" and stop after this check. 2. DID DIRECT PICK IT UP: for each landing page that had ChatGPT visits before, set the ChatGPT change beside the Direct change. If Direct rose on most of those pages by a similar amount, that points to a tracking gap. If Direct stayed flat and total sessions on those pages fell, that points to a real drop. Treat a Direct rise on the home page as weaker evidence, because many things send people there, and say so. If PAGES BEFORE or PAGES DURING THE GAP is missing, write "[NEED: the page table for that period]". 3. DID THE TAG COME BACK: if I have data from 16 October on, say whether ChatGPT sessions climbed back towards the before level and from which day. If they recovered, that confirms a tracking gap for my site. If they have not recovered after about a week of data, say what could explain it (the fix has not reached my visitors yet, or a real drop) and what to look at next. If I have no data after 15 October, write "not stated, run this again after a week of new data". 4. IS IT A NORMAL DIP: if I gave LAST YEAR, compare the same weeks. If every channel fell by a similar share, that points to a seasonal or site-wide dip. If only ChatGPT fell, it does not. If I gave no comparison period, use my "normal rhythm" line, and if that says "not stated", write "no signal". 5. DID SOMETHING ON MY SIDE BREAK: look for a day when every channel fell at once, or a change I listed. A drop across all channels on one day points to my own tracking (a tag, a consent banner, a redesign), and you tell me that first, because it outranks everything else. 6. WHAT HAPPENED TO THE WINS: compare key events from ChatGPT and Direct added together, before and during the gap. If the combined wins held steady, the visitors most likely still came. If my tables show no key events, write "not stated" and say the verdict rests on sessions alone. THE VERDICT Pick one: TRACKING GAP (most of the ChatGPT drop shows up as Direct, or recovered once the tag returned), REAL DROP (visits and wins fell and nothing picked them up), NORMAL DIP (everything fell together), MIXED (give the split as a range, labelled "estimate"), or TOO EARLY TO TELL (name the exact data that would settle it and when I will have it). Add a confidence of high, medium or low with a one-line reason, and list which checks pointed which way. IF I ASKED FOR THREE SENTENCES FOR MY BOSS OR CLIENT: plain words, no jargon. Say what happened, the one number that best shows it, and what I will check next and when. IF I ASKED FOR PAGES TO WATCH: the pages with the biggest ChatGPT losses, each with its before and gap numbers and what a recovery would look like. CHECK YOUR WORK BEFORE YOU SHOW ME Grade first, fix second. Re-add every total and re-work every percent from my numbers. Confirm that every number in the verdict appears in my data or is labelled "estimate". Fix anything that fails. Then end with three lines: the source values you counted as ChatGPT, the check you are least sure of and why, and anything in my data you did not use.
What a good answer looks like
- How big is the drop: ChatGPT sessions a day went from 412 (24 Sep to 7 Oct) to 171 (8 to 14 Oct, down 58%), then 398 (16 to 22 Oct). Direct went from 2,140 to 2,330 a day, up 190, and total sessions held at about 9,860. No signal on its own.
- Did Direct pick it up: on the 25 pages with ChatGPT visits before, Direct rose on 19. ChatGPT lost 241 a day on those pages and Direct gained 198, so about 198 a day of hidden ChatGPT visits (estimate, from Direct’s gain on those pages). Points to tracking gap.
- Did the tag come back: ChatGPT climbed to 398 a day from 16 October, about 97% of the before level, with 15 October left out as a mixed day. Points to tracking gap.
- Verdict: tracking gap, high confidence, because the visits returned once the tag did. Checks 2 and 3 point to tracking gap, checks 1 and 5 show no signal, and checks 4 and 6 are not stated (no LAST YEAR file, no key events recorded).
Give ChatGPT its own channel
ChatGPT visits that carry the tag and those that still carry a referrer both usually show chatgpt.com as their source in GA4, so a channel built on the source counts both kinds in one line, and Google's channel groups page says it applies to past data too.
- Open the channel groups. Go to
Admin, thenChannel groupsunder Data display, and clickCreate new channel group, which starts as a copy of the default group. You need the Editor role, and a standard property allows two custom groups. - Add a ChatGPT channel. Click
Add new channel, name it ChatGPT, add a condition on Source that matches regexchatgpt|openai, then save the channel. - Move it to the top. Click
Reorder, drag ChatGPT to the top of the list, above AI Assistant and Referral, and clickApply, because a visit goes into the first channel it matches. - Save the group and use it. Click
Save group, then pick it as the dimension inAcquisition>Traffic acquisition.
Google’s own example on that page starts with ^.*ai, which matches any source containing “ai”, such as an email platform, so check it before you copy it.
No rule can catch a visit that arrives with no tag and no referrer. Those stay in Direct, alongside typed addresses, links in PDFs and visitors with ad blockers, which Google's Direct page lists as other reasons a visit lands there.
The numbers behind it
- Profound, 14 October. In its own sample of ChatGPT answers, the share of answers with citations that carried at least one tagged link fell from about 98% on 8 October to 75% on 9 October and 66% by 14 October.
- Huesler, 9 to 13 October. On about 500 pages where ChatGPT sent at least 5% of visits, ChatGPT visits fell by about 31,000 a day and Direct rose by about 26,000 a day on the same pages, as Search Engine Land reports. Search Engine Journal adds that he calls the findings early, based on four days of sampled data.
- Who measured it. Profound sells AI search tools and does not give its sample size, as Search Engine Journal points out.
- Sources. The facts here come from Profound (14 October), Search Engine Land and Search Engine Journal (15 October) and Google's Analytics help pages, read 16 October 2026.
The honest bit
- The bug comes from one person's account. Huesler says OpenAI confirmed it to him, OpenAI has published nothing, and on 15 October at least one other analyst was not yet seeing the tag come back.
- The missing visits stay in Direct. A fix tags new clicks only, so your 8 to 15 October ChatGPT numbers stay low for good, which is why the annotation matters.
- Direct is a rough guide. Many things land there, so treat any hidden ChatGPT figure as an estimate. Check the prompt's answer for one page you know well against your own export before you share it.
Do the annotation today
The annotation takes a minute and the channel a few more. Then run the prompt now for the size of the drop, and again after 22 October, when it can tell you whether the tag came back for your site.
Send this page to whoever reports on your site's traffic before the October numbers reach a meeting.
A few quick questions
Does GA4's AI Assistant channel already count ChatGPT?
Only some of it. Google’s default channel group page says GA4 puts a visit in AI Assistant when the medium is “ai-assistant” or the referrer matches its list of AI assistants. Visits that arrive with no referrer miss it, which is why a channel built on the source catches more.
Are clicks on my ChatGPT ads affected?
They should not be, if you add your own tracking tags to the ad links. Graphite’s Ethan Smith says so in Search Engine Journal’s report, so keep those rows separate when you compare.