How to Track AI Search Traffic in Magento 2

Last updated: July 2026. AI platform behavior changes frequently — referrer policies, crawler names, and feed protocols may have evolved since publication.

How to track AI search traffic from ChatGPT, Perplexity, and Gemini in Magento 2 with GA4 and Search Console
Tracking AI search referrals in Magento 2 across GA4, Search Console, and server-side logs

TL;DR — 2 minute version

  • Since May 13, 2026, GA4 has a native “AI Assistant” channel that auto-detects ChatGPT, Gemini, and Claude referrals — no configuration needed, but it only catches sessions with an intact referrer
  • ChatGPT still strips referrers on most link types — clicks from in-app browsers, mobile apps, and copy-paste still appear as Direct in GA4
  • Perplexity, Gemini, and Claude have historically passed referrers more consistently than ChatGPT — a custom Channel Group still helps you catch platforms outside GA4’s documented native list, and preserves historical trend data (the native channel is forward-only)
  • The most reliable currently available method to track ChatGPT clicks in unlinked/copy-pasted contexts is still UTM parameters in your llms.txt
  • Search Console Crawl Stats show GPTBot and OAI-SearchBot activity — a leading indicator that precedes traffic by weeks
  • If AI traffic converts several times better than organic, misclassifying it as Direct means you cannot measure ROI from your AEO work

You updated your robots.txt. You generated llms.txt. You fixed your Product schema. Your AEO audit score went from 25% to 85%. And then you opened GA4 — and saw nothing unusual.

This is the most common frustration after implementing AEO on a Magento 2 store. Not because the work didn’t help, but because standard analytics tools were not built to track AI referral traffic. The signals exist — they are hidden in the wrong buckets.

Why misclassified AI traffic is a real business problem

Early anecdotal reports from eCommerce teams experimenting with AI referral tracking suggest that visitors arriving from AI recommendations may convert at significantly higher rates than standard organic traffic — in some cases 2–5× higher. Reliable industry-wide benchmark data does not yet exist, but the directional trend appears consistent across multiple early adopters. The likely reason is intent: a user who asked Perplexity “best waterproof running shoes under €150” and clicked your store has already received a personalised recommendation and done their comparison before arriving. They are not browsing — they are closer to buying.

If that traffic is invisible in GA4 — sitting inside Direct or Unassigned — you cannot justify continued AEO investment, cannot optimise for it, and cannot report on it. Fixing the tracking is not a technical exercise. It is a prerequisite for measuring whether your AEO strategy is working at all.

This guide covers several methods to surface AI search traffic in Magento 2 — from GA4’s own native classification to server-side log analysis — so you can connect your AEO work to real business outcomes.

Why AI traffic disappears in your analytics

Each AI platform handles referral data differently, which is why a single tracking method won’t cover all of them:

Platform Referrer passed? What GA4 sees by default Crawler user agent
ChatGPT ❌ No Direct / (none) GPTBot, OAI-SearchBot
Perplexity ✅ Yes Referral — unclassified PerplexityBot
Google Gemini ✅ Partial Referral from gemini.google.com Google-Extended
Claude (Anthropic) ✅ Yes Referral from claude.ai ClaudeBot
Microsoft Copilot ✅ Partial Referral from copilot.microsoft.com Bingbot (shared)
ChatGPT Shopping ❌ No Direct / (none) OAI-SearchBot
Understanding ChatGPT referrer limitations: ChatGPT’s behavior depends on where the link appears. Inline links embedded in conversational answers, and links opened via the mobile app, typically arrive with no Referer HTTP header — GA4 records these identically to someone typing your URL directly. OpenAI has been observed appending UTM parameters to some links surfaced through ChatGPT Search’s “More sources” section since mid-2025, though this isn’t documented as a guaranteed or universal behavior across all link types. In practice, most individual publishers still see a large share of ChatGPT-driven visits land as Direct. Published estimates of how many ChatGPT sessions arrive with a usable referrer vary considerably by source and methodology — some vendor analyses report figures as low as 10–15%, others closer to 30–40% — so treat any single benchmark as directional and verify against your own server logs rather than assuming a fixed percentage applies to your traffic.

The practical upside: Perplexity, Gemini, and Claude together likely represent more trackable eCommerce referral traffic than ChatGPT at this stage — and all three are addressable right now with GA4’s native classification and a five-minute custom Channel Group.

Method 0: Start with this — GA4’s native “AI Assistant” channel

Effort: 0 minutes  |  Covers: ChatGPT, Gemini, Claude out of the box (list expanding)

On May 13, 2026, Google added a native “AI Assistant” channel to GA4’s Default Channel Group. This is a significant change from the setup most AEO guides — including earlier versions of this one — were written around. You no longer need to build a custom Channel Group from scratch just to see ChatGPT, Gemini, and Claude traffic separated from generic Referral.

When GA4 detects a referrer matching a recognized AI assistant, it now automatically assigns:

  • Medium: ai-assistant
  • Campaign: (ai-assistant)
  • Default Channel Group: AI Assistant — appearing alongside Organic Search, Direct, Referral, and Paid Search in standard Acquisition reports
  • Source: remains the originating AI platform’s domain (for example, chatgpt.com or gemini.google.com) — so you can still break results down by individual platform within the AI Assistant channel

No configuration is required. If your GA4 property hasn’t received the update yet, nothing is broken on your end — Google rolled this out gradually across properties, with wider availability reached over the following weeks into early June 2026.

Current limitations of the native AI Assistant channel:
  • It is not retroactive. Historical traffic before May 13, 2026 stays classified as it was — Direct or Referral. You will not get clean year-over-year AI traffic comparisons from this channel alone for some time.
  • It still depends entirely on the referrer header being present. Traffic from mobile apps, in-app browsers, and copy-pasted links still lands in Direct — the structural gap described throughout this guide has not gone away, it’s just easier to see what you’re missing now.
  • Google’s published documentation focuses on ChatGPT, Gemini, and Claude. Some third-party sources suggest broader coverage (Perplexity, Copilot, Grok, DeepSeek and others), but this is not consistently documented in Google’s own materials and coverage may vary or change. Treat Perplexity attribution via the native channel as unconfirmed until you verify it in your own data.
Recommended approach for the next quarter: Keep your custom “AI Search” Channel Group (Method 1 below) running in parallel with the native channel. This preserves your historical trend line, catches platforms outside Google’s confirmed list, and lets you sanity-check that both definitions are counting sessions consistently before you rely on the native channel alone.

How to verify the AI Assistant channel is working on your property

  1. Reports → Acquisition → Traffic acquisition

    Open the standard Traffic acquisition report in GA4.

  2. Set the primary dimension to “Session default channel group”

    This is the dimension dropdown at the top of the report table.

  3. Look for a row labeled “AI Assistant”

    If it’s present, the channel is live on your property and already capturing qualifying sessions.

  4. If it’s missing, check date range first

    Expand to the last 30–90 days. If it’s still absent, the rollout may not have reached your property yet, or you may genuinely have zero qualifying sessions in that window — both are normal at this stage.

Native channel vs. custom Channel Group, side by side

Capability Native AI Assistant channel Custom Channel Group
Setup effort None — automatic Manual — ~5 minutes
Historical data No — forward-only from May 13, 2026 Yes — as far back as you configure it
Platform coverage Documented: ChatGPT, Gemini, Claude Unlimited — any domain you add, including Perplexity
Referrer required Yes Yes
Retroactive reclassification No No
Maintenance None — Google maintains the referrer list You update the domain list as new platforms emerge
When should you rely only on the native channel?

The native AI Assistant channel may be sufficient on its own if:
  • you only care about reporting going forward, not historical comparisons
  • your AI traffic mainly comes from platforms Google’s documentation confirms — ChatGPT, Gemini, or Claude
  • you don’t need to isolate individual AI platforms beyond what the Source dimension already shows you

Otherwise — if you need Perplexity coverage, a continuous historical trend line, or reporting for a client who wants year-over-year AI traffic numbers — keep both the native channel and a custom Channel Group running in parallel.

Method 1: Custom Channel Grouping in GA4

Effort: 5 minutes  |  Covers: Perplexity and other platforms outside GA4’s native list, plus historical trend continuity

Even with the native AI Assistant channel now live (see Method 0 above), a custom Channel Group is still worth setting up — mainly to cover platforms Google hasn’t officially added yet (Perplexity is the most common gap), and to keep a continuous trend line since the native channel doesn’t apply retroactively. Think of this as a complement to the native channel, not a replacement for it.

  1. GA4 Admin → Data display → Channel groups → Create new channel group

    This is in the Property column of GA4 Admin, not the main left nav.

  2. Name the group “AI Search” and set condition type to Session source

    Use contains as the operator — one rule per domain.

  3. Add all known AI referrer domains from the table below

    New AI platforms appear regularly — revisit this list quarterly.

  4. Save and wait 24–48 hours

    Channel groups apply to new sessions only — historical data is not reclassified.

Add to Session source — containsPlatform
perplexity.aiPerplexity
gemini.google.comGoogle Gemini
bard.google.comGoogle Bard (legacy)
claude.aiAnthropic Claude
copilot.microsoft.comMicrosoft Copilot
bing.com/chatBing Chat
you.comYou.com AI
phind.comPhind
poe.comPoe
kagi.comKagi AI
GA4 Admin → Data display → Channel groups → Edit “AI Search” Group name AI Search CONDITION 1 Session source contains perplexity.ai CONDITION 2 Session source contains gemini.google.com + Add condition for each domain in the table above. Operator: OR between rules.

Demo: GA4 Custom Channel Group setup — add one condition per AI domain with OR logic between them.

After saving: Go to Reports → Acquisition → Traffic acquisition and switch the primary dimension to your new Channel group. You will likely see Perplexity referral traffic you didn’t know existed — it was sitting in Referral all along.

Method 2: UTM parameters — attributing at least part of ChatGPT traffic

Effort: 30 minutes  |  Covers: ChatGPT (partial attribution)

Since ChatGPT strips referrer headers on most link types, the most practical currently available method to attribute at least part of ChatGPT-driven traffic is adding UTM parameters to URLs exposed through AI discovery layers — such as llms.txt and experimental commerce feeds. When a user clicks a UTM-tagged link, GA4 receives the attribution string regardless of the missing referrer. This captures confirmed intentional clicks, not total AI-influenced traffic.

Note on llms.txt: The llms.txt format is used by various AI-focused discovery tools and some crawlers as a structured content discovery layer. Adoption is still developing and individual AI platforms vary in how — or whether — they consume it. Treat it as a best-practice signal layer rather than a guaranteed crawler instruction standard. Adding UTM parameters to your llms.txt URLs is low-effort and worth doing — just don’t expect uniform behavior across all platforms.

Add UTMs to llms.txt

# llms.txt — with UTM tracking on product and category URLs # Products – [Wireless Headphones XM5](https://store.com/headphones-xm5?utm_source=chatgpt&utm_medium=ai_referral&utm_campaign=aeo) – [Running Shoes ProGrip](https://store.com/shoes-progrip?utm_source=chatgpt&utm_medium=ai_referral&utm_campaign=aeo) # Categories – [Headphones](https://store.com/headphones?utm_source=chatgpt&utm_medium=ai_referral&utm_campaign=aeo)
Known limitation: ChatGPT sometimes renders a URL as text in its response rather than a clickable hyperlink. In that case, users copy-paste the URL — and most browsers strip UTM parameters on paste. UTM tracking captures confirmed intentional clicks, but it will undercount total AI-influenced traffic. There is currently no reliable client-side method to close this gap entirely. Server-side log analysis (Method 4) provides a more complete picture of AI crawler activity.

Add UTMs to OpenAI experimental commerce feeds

If you are testing OpenAI-compatible commerce integrations or experimental shopping feeds — where your product data is submitted directly to OpenAI infrastructure — those product URLs should also carry UTM parameters. This is an evolving area and OpenAI has not published a stable, widely-documented merchant onboarding standard as of 2026, so treat any integration here as experimental:

// Experimental OpenAI commerce feed — product entry with UTM { “id”: “sku-001”, “name”: “Wireless Headphones XM5”, “url”: “https://store.com/headphones-xm5?utm_source=chatgpt_shopping&utm_medium=ai_feed&utm_campaign=aeo”, “price”: {“amount”: 249.00, “currency”: “EUR”}, “availability”: “InStock” }

Using distinct utm_source values (chatgpt vs chatgpt_shopping) lets you separate organic ChatGPT referrals from any feed-driven product clicks in GA4.

Method 3: Search Console Crawl Stats — AI bots as a leading indicator

Effort: 2 minutes  |  Covers: All major AI crawlers

Search Console does not show AI referral traffic directly. What it does show is AI crawler activity — and crawler visits are a leading indicator that precedes recommendation traffic by days or weeks. When GPTBot crawls a product page, it is building or updating its knowledge of your catalog.

  1. Search Console → Settings → Crawl stats

    Bottom-left Settings panel, not the main navigation.

  2. Click “See all crawl requests” and filter by user agent

    Look for the agents in the table below.

User agentPlatformWhat increasing crawl frequency means
GPTBotChatGPT (OpenAI)Your pages are significantly more likely to be considered for ChatGPT answers
OAI-SearchBotChatGPT SearchOpenAI is indexing you for real-time results
Google-ExtendedGoogle GeminiGemini training and AI Overviews data collection
PerplexityBotPerplexityYour content may appear in Perplexity answers
ClaudeBotAnthropic ClaudeClaude retrieval and training data
Search Console → Settings → Crawl stats → All crawl requests (filtered) USER AGENT REQUESTS (28d) RESPONSE (avg ms) STATUS GPTBot 847 312 ms ✓ 200 OAI-SearchBot 412 289 ms ✓ 200 PerplexityBot 94 401 ms ✓ 200 Google-Extended 61 344 ms ✓ 200

Demo data — illustrative crawl stats. GPTBot and OAI-SearchBot returning 200 status confirms your pages are accessible to OpenAI crawlers.

Positive signal to watch for: After unblocking AI bots in robots.txt and publishing llms.txt, you should see GPTBot crawl frequency increase within 1–2 weeks. This is your first measurable confirmation that AEO changes are working — before any traffic appears in GA4.

Method 4: Server-side access logs

Effort: 15 minutes  |  Covers: Everything, including ChatGPT — most accurate method

Server logs capture every HTTP request — including AI crawler visits and (where available) referrer headers from AI platforms. This is the most complete data source and the only one that can confirm GPTBot activity independently of Search Console.

# Count AI bot requests in the last 30 days grep -E “(GPTBot|OAI-SearchBot|PerplexityBot|Google-Extended|ClaudeBot)” /var/log/nginx/access.log \ | awk ‘{print $1}’ | sort | uniq -c | sort -rn | head -20 # Which pages is GPTBot crawling most? grep “GPTBot” /var/log/nginx/access.log \ | awk ‘{print $7}’ | sort | uniq -c | sort -rn | head -20 # Confirm Perplexity referral clicks (real users, not bot) grep “perplexity.ai” /var/log/nginx/access.log \ | grep -v “PerplexityBot” | wc -l
$ grep “GPTBot” /var/log/nginx/access.log | awk ‘{print $7}’ | sort | uniq -c | sort -rn | head -5 312 /headphones/wireless-xm5/ 189 /running-shoes/progrip/ 147 /category/headphones/ 94 /blog/wireless-headphones-guide/ 61 /category/running/ # GPTBot is heavily crawling your top product and category pages — good signal

Demo output — illustrative. High GPTBot frequency on product pages indicates those pages are strong candidates for ChatGPT recommendations.

For Hypernode hosting, logs are at /var/log/nginx/access.log with daily rotation. The same commands above work without modification. You can also use the Hypernode Control Panel under Logs → Access logs for a browser-based view.

Putting it together: AI traffic dashboard in GA4

  1. GA4 → Explore → Blank exploration → name it “AI Search Performance”
  2. Add dimensions: Session default channel group, Session source, Landing page
  3. Add metrics: Sessions, Engaged sessions, Conversions, Revenue
  4. Add a filter group with two conditions (OR logic): Session default channel group exactly matches “AI Assistant” OR Session default channel group exactly matches “AI Search” (your custom group). This surfaces both native and custom-tracked AI sessions in one view without double-counting, since a session can only belong to one channel group definition at a time.
  5. Add date comparison: this month vs last month to track growth over time — keep in mind the native channel’s comparison will be limited until it has accumulated a few months of history
StageWhere to measureWhat it means
AI bots crawling pagesSearch Console → Crawl StatsYou are indexed and eligible for AI recommendations
AI referral sessions (ChatGPT, Gemini, Claude)GA4 → native “AI Assistant” channelUsers are clicking through from AI answers — no setup needed, forward-only
AI referral sessions (Perplexity + other platforms)GA4 → custom “AI Search” channel groupCoverage for platforms outside GA4’s documented native list
ChatGPT UTM sessionsGA4 → utm_source=chatgptConfirmed ChatGPT-driven clicks, including copy-pasted links
Conversions from AIGA4 → AI Assistant + AI Search channels → Purchase eventRevenue attributable to AEO work
Advanced: GA4 → BigQuery for AI attribution modelling. If you are exporting your GA4 data to BigQuery (available on all GA4 properties at no cost), you can build more sophisticated AI traffic attribution models than the GA4 UI allows. For example: correlate GPTBot crawl events from your server logs with session spikes in the following 48 hours, or segment AI-source sessions by product category to identify which parts of your catalog are being recommended most. BigQuery gives you full SQL access to session-level data — useful once your AI traffic volumes grow large enough to warrant it.

How much AI traffic should you expect? Benchmark by store type

One of the most common questions after setting up AI tracking is: “Are these numbers normal?” Here are approximate ranges based on community reports and early data from stores that have implemented AEO. Treat these as directional benchmarks, not guarantees — this space is moving quickly.

Store profile AI traffic share of total sessions Primary source Notes
No AEO work done 0.1–0.5% Perplexity (passes referrer) Mostly untracked — sitting in Direct
Basic AEO (robots.txt fixed, llms.txt present) 0.5–2% Perplexity, Gemini Visible in GA4 after Channel Group setup
Strong AEO (schema complete, rich descriptions, UTMs) 2–6% Perplexity, ChatGPT (UTM-tracked) Measurable ROI from AEO investment
Niche authority store (topic leader, cited in AI answers) 5–12% Multiple AI platforms AI becoming a primary acquisition channel
B2B / specialist (narrow topic, strong llms.txt) 3–10% Perplexity, Claude High conversion rate; smaller absolute volume
The floor is rising. Stores that ran the same GA4 Channel Group setup in early 2025 and again in early 2026 anecdotally report meaningful growth in absolute AI session counts — even without changes to their AEO setup. The channel appears to be growing independently as AI search adoption increases. The stores with tracking in place now will have a baseline to measure from when AI traffic becomes a standard reporting line.
Example (anonymised): One Magento apparel store tracked AI Search sessions growing from approximately 0.3% to 2.1% of total traffic over ~90 days after implementing four changes: allowing GPTBot in robots.txt, adding llms.txt, rewriting supplier-copy product descriptions, and fixing Product schema completeness. Perplexity accounted for the majority of measurable referrals in the first weeks — ChatGPT attribution remained partial and dependent on UTM-tagged URLs. The growth trend was clear; exact attribution remained probabilistic.

AI attribution will remain partially probabilistic

It is worth being clear about what this guide can and cannot give you. Setting up all methods described here will give you a significantly better picture of AI-driven traffic — but it will not give you perfect attribution. That gap is structural, not a setup problem.

Attribution gapWhy it happensWorkaround
Dark traffic from ChatGPT No referrer passed; copy-paste strips UTMs UTMs catch intentional clicks; server logs catch crawl activity
Safari / privacy browser stripping Browser policy removes Referer on cross-site navigation UTM parameters bypass browser referrer policy
In-app browsers ChatGPT iOS app, Perplexity app may not pass referrers No reliable workaround — contributes to Direct
Cross-device journeys User sees recommendation on mobile, converts on desktop GA4 User ID if logged in; otherwise unattributable
URL canonicalisation by AI ChatGPT may surface a clean URL, stripping UTMs Use short, memorable UTM values; monitor server logs for pattern
The practical implication: think of AI traffic measurement as a directional signal, not a precise channel count. If your “AI Search” channel group shows 80 sessions this month and 140 next month, that trend is real and meaningful — even if the absolute number understates total AI-influenced traffic by 40–60%. The goal is to make the invisible visible enough to act on, not to achieve perfect attribution.

What to do if you see no AI traffic at all

First: check the obvious AEO gaps

  • robots.txt is blocking GPTBot or OAI-SearchBot — fix guide →
  • llms.txt does not exist or returns 404 at yourdomain.com/llms.txt — generation guide →
  • Product schema is missing offers.availability — ChatGPT Shopping skips these products — schema guide →
  • Product descriptions are supplier copy — AI models cannot form a confident recommendation — description guide →
  • AEO audit score above 70% and Channel Group set up — give it 4–8 weeks; AI crawl-to-traffic lag is real

Why AI traffic still shows as Direct (even after setup)

If you have confirmed AI bots are crawling your store but sessions are still landing in Direct rather than an AI channel, the issue is almost always one of these:

Browser / privacy stripping

  • Safari strips referrer by default for cross-site navigations
  • Firefox with Enhanced Tracking Protection removes referrer headers
  • Privacy extensions (uBlock, Brave Shield) strip referrers
  • iOS in-app browsers (including ChatGPT app) may not pass referrers

Server / infrastructure

  • Cloudflare Page Rules or Transform Rules stripping Referer headers
  • Magento full-page cache serving redirects that drop the referrer
  • 301/302 redirect chains — referrer is dropped on redirect hops
  • HTTPS → HTTP redirect (rare but strips referrer by browser policy)

GA4 configuration

  • Google Consent Mode blocking session data before consent
  • Channel Group condition using wrong match type (exact vs contains)
  • GA4 referral exclusion list accidentally including AI domains
  • GA4 data stream not firing on the landing page template

UTM issues

  • UTM parameters stripped by Magento URL rewrite rules
  • User copy-pasted URL without UTM (ChatGPT text display, not link)
  • UTM not present in llms.txt (added to product pages but not discovery file)
  • utm_source value not matching Channel Group condition string exactly
Quick diagnostic: Add ?utm_source=test_ai&utm_medium=debug to a product URL and visit it yourself from an incognito window. Check GA4 Realtime → Traffic sources. If the UTM shows up correctly, your GA4 setup is fine and the issue is upstream (browser stripping or redirect chain). If it doesn’t appear, the issue is in your GA4 data stream or Magento URL handling.

Complete AEO implementation guide — all steps

1. Fix robots.txt for AI bots → 2. Generate llms.txt for Magento 2 → 3. Product schema + JSON-LD for AI → 4. Rewrite product descriptions for AI → 5. Full Magento 2 AEO guide → 6. Free AEO audit — check your score →

Not sure where to start?

Run a free automated AEO audit — get a score, identify the exact gaps, and see a prioritised fix list in under 2 minutes.

Run free AEO audit →

Frequently asked questions FAQ schema

Yes, but it is not tracked by default. When a user clicks a link recommended by ChatGPT, the request often arrives without a Referer HTTP header — GA4 records it as Direct traffic. The most reliable currently available method to track these visits is embedding UTM parameters in the URLs you expose to ChatGPT through your llms.txt file and any experimental commerce feed integrations.
Perplexity passes a referrer header, so its traffic already lands in GA4 as a referral from perplexity.ai. Perplexity is not currently part of GA4’s documented native “AI Assistant” channel, so the reliable way to isolate it is a Custom Channel Group. Create one in GA4 Admin → Data display → Channel groups, add a rule for Session source contains “perplexity.ai”, and name the group “AI Search”. After 24–48 hours, Perplexity traffic will appear in its own channel.
GPTBot is OpenAI’s web crawler, used to index content for ChatGPT’s knowledge base and search results. Allowing GPTBot significantly increases the likelihood that your content can be discovered and considered for ChatGPT recommendations — OpenAI does not formally document a direct guarantee, but blocking it effectively removes your store from the pool of indexable sources. Default Magento 2 installations often block it. To allow it, add “User-agent: GPTBot” followed by “Allow: /” to your robots.txt in Magento Admin → Content → Design → robots.txt.
Typically 4–8 weeks from the time you allow AI bots and publish llms.txt. AI crawlers index your store within 1–2 weeks of being unblocked — confirm this in Search Console Crawl Stats. The transition from indexing to appearing in AI recommendations takes additional time as the models update. Perplexity and Gemini referrals tend to appear faster than ChatGPT-attributed traffic.
Yes — AI referral traffic tends to convert at higher rates than standard organic search because users arrive after receiving a specific recommendation. Even 30–50 AI sessions per month can be commercially significant. More importantly, establishing your baseline now means you can measure growth as the channel matures — which is happening fast across most verticals.
Partially. GA4’s native AI Assistant channel and the Custom Channel Group both require no code changes — just GA4 configuration, and the native channel requires none at all. Search Console Crawl Stats requires no changes either. Adding UTM parameters to llms.txt requires editing that file, but it is a static text file at your domain root — no Magento module or deployment is needed.
Several things can cause this. Safari and privacy-focused browsers strip referrer headers by default, so users arriving via those browsers will always appear as Direct regardless of the source. Cloudflare transform rules and Magento redirect chains can also strip referrer data before it reaches GA4. UTM parameters in llms.txt are the most robust solution because they do not rely on the browser passing a referrer header at all.
llms.txt is a plain text file placed at your domain root (yourdomain.com/llms.txt) that provides AI systems with a structured summary of your site’s content — key pages, product categories, and context about what your store sells. It is used by various AI-focused discovery tools and some crawlers as a content discovery layer, similar to how sitemap.xml helps search engines. Adoption is still developing and AI platforms vary in how they consume it, but adding UTM parameters to the URLs inside your llms.txt is currently the most reliable way to track ChatGPT-attributed clicks. For Magento 2, llms.txt can be generated automatically — see the llms.txt generation guide.
Partially, and better than before. Since May 13, 2026, GA4 has a native “AI Assistant” channel that automatically classifies ChatGPT, Gemini, and Claude sessions when a referrer header is present — no setup required. The gap that remains is structural: ChatGPT still doesn’t pass a referrer for most inline and mobile-app links, so a meaningful share of ChatGPT-driven visits still land in Direct regardless of the native channel. To close that gap further, add UTM parameters to the URLs ChatGPT surfaces (via llms.txt), and consider keeping a custom Channel Group running in parallel to catch platforms outside Google’s confirmed list and to preserve historical trend data, since the native channel only applies going forward.
Yes, for now. GA4’s native AI Assistant channel (launched May 13, 2026) is documented by Google as covering ChatGPT, Gemini, and Claude. Coverage of other platforms, including Perplexity, has not been consistently documented and may vary — don’t assume it’s included without checking your own data. The native channel is also forward-only: it does not reclassify historical sessions, so your month-over-month and year-over-year AI traffic comparisons will show gaps until enough native-channel history accumulates. Running a custom Channel Group in parallel for at least one quarter lets you cover platforms Google’s documented list doesn’t include and keeps your historical trend line intact.
The core reason is intent at the point of arrival. When someone clicks an organic search result, they may still be in research mode — comparing options, reading reviews, deciding whether to buy at all. When someone clicks a link recommended by an AI assistant, they have typically already received a personalised answer to a specific question (“best waterproof running shoes under €150 for wide feet”) and the AI has already filtered and recommended your store. They arrive at your product page with a much higher purchase intent. This is the same dynamic that made price comparison site traffic convert better than generic organic in the 2010s — the filtering happened before the click.