ChatGPT's utm outage hid far more clicks than it lost, logs show

Tagged ChatGPT clicks vs Verified ChatGPT-User fetches

Summary

At one large shop, tagged ChatGPT clicks fell three to four times further than ChatGPT's own reading of the site during last week's utm_source outage, so most of the reported loss was missing tags rather than missing visitors.

Before reporting lost AI traffic for Oct 8 to 15, count ChatGPT-User fetches from OpenAI's published IP ranges as the tag-independent check.

Tagged ChatGPT clicks at one large online shop fell 73 percent in the days after Oct 8, while fetches from ChatGPT’s live user agent fell about 20 percent over the same days. The figures come from an hour-by-hour log analysis posted to r/TechSEO by u/DrKJING, who had server logs and GA4 for the shop through the week ChatGPT stopped adding utm_source to its outbound links.

Both measures in that analysis are indexed against the same hour of day in the Oct 1 to 7 baseline week.

MeasureOct 9 to 12Oct 13 to 15
Tagged ChatGPT clicks-73%-79%
Verified ChatGPT-User fetches-20%-23%

Anyone reporting that week from utm_source=chatgpt.com rows alone books a loss three to four times the drop in ChatGPT’s actual reading of the site. Tagged clicks per 100 fetches ran at 34 before the break and 9 by the end of the window.

The break itself fits inside one hour, starting at 21:00 UTC on Oct 8. The ratio of tagged clicks to fetches fell to a quarter of its level within three hours. That timing sits within about an hour of the 2 pm PT break reported by Cedric Huesler of Adobe, whose figures across thousands of domains the post cites. A second, smaller step followed around 14:00 UTC on Oct 12, which fits a staged rollout rather than one switch.

Everything about the drop after 21:00 points at missing tags. Mobile, desktop, every language version and product pages all fell between 65 and 83 percent at the same moment, tagged Perplexity clicks did not move at all, and no new user agent, parameter or alternative spelling turned up to replace the tag. Earlier that same day the picture was different: clicks and fetches fell together and the ratio between them held near 33, so the daytime dip on Oct 8 was genuinely less traffic.

Some of the lost clicks kept arriving without a label. In parts of the shop, direct mobile entries on product pages rose by roughly 55 percent of the lost ChatGPT product entries in GA4 between Oct 9 and 14, though direct was too noisy to read in the largest section. Untagged ChatGPT visits land in direct because the links carry noreferrer, which is harmless while a campaign parameter is present, since GA4 only falls back to the referrer when there are none.

Counting fetches is a trend line and not a stand-in for clicks. In the clean baseline week only about 2.5 percent of tagged product clicks had a ChatGPT-User fetch of the same URL in the ten minutes before, so nearly every fetch ends without a visit and nearly every click arrives with no live fetch in front of it. In the comments, DrKJING ties that to a remark by Huesler that OpenAI uses ChatGPT-User less as ChatGPT answers more from its own index, which means a falling fetch count over a longer window can mean cached answers rather than lost interest. Across these eight days it is still the only signal the broken tag cannot touch.

Recovery did not arrive everywhere at once. Tagged clicks at this shop started climbing around 14:30 UTC on Oct 15 and were still near a third of the prior week at 16:00 UTC, against the near-total recovery Huesler reported across thousands of domains by that hour. In DrKJING’s own spot checks of the ChatGPT interface from Germany, every link carried a tag on Oct 3, none did on Oct 15, and tagging was back but still incomplete on Oct 16.

What to do

  • Annotate Oct 8 to 15 in GA4 and in any dashboard built on it, and leave channel definitions alone. The outage is a reporting gap in a fixed window, not a change in how ChatGPT traffic should be classified.
  • Count utm_source=openai alongside utm_source=chatgpt.com. Answers served through the OpenAI API carried the openai value before, during and after the outage, though not on every link, so a filter keyed on chatgpt.com misses them.
  • Pull ChatGPT-User hits from server logs for the same window and verify them against OpenAI’s published IP ranges rather than trusting the user agent string, which anyone can copy. An unverified count is worth little.
  • Keep GPTBot and OAI-SearchBot out of that count. The training crawler and the search bot move for their own reasons, while ChatGPT-User fires because a person asked something.
  • Split Oct 9 to 12 from Oct 13 to 15 rather than averaging the window. The Oct 12 step means a single before-and-after comparison blends two different states.

Sites without server log access have no independent signal for that week. The honest reporting line there is that ChatGPT traffic was unmeasurable from Oct 8 to 15, not that it collapsed.