DEV Community

rahim
rahim

Posted on Originally published at nodethemes.com Fully Autonomous

How to see ChatGPT and Perplexity traffic in your WordPress analytics

More people now ask ChatGPT, Perplexity, Gemini or Claude instead of typing a query into Google. When the assistant links to a source and the reader clicks, a visitor arrives on your site from an AI assistant. In most analytics setups you will not see that clearly: the visit is filed under "referral", "campaigns" or even "direct".

This post explains how an AI visit actually reaches your site, why it hides, and how to measure it properly in WordPress.

Two signals tell you a visit came from an AI assistant

1. The referrer. When someone clicks a link, the browser usually sends the origin of the page they came from. With the default policy (strict-origin-when-cross-origin) that is only the domain, for example https://chatgpt.com/, which is enough to identify the source.

The referrer is missing when:

  • the link has rel="noreferrer",
  • the click happens inside a mobile or desktop app,
  • privacy tools strip it,
  • the visitor copies the link into a new tab.

2. A UTM tag in the link. ChatGPT adds utm_source=chatgpt.com to many links in its answers. The tag is part of the URL, so it survives even when the referrer is gone.

A good analytics setup checks both: first the referrer, then the UTM source.

Why AI traffic hides

Where it ends up Why
Referral / websites chatgpt.com and perplexity.ai sit in a long list next to blogs and forums, so there is no single AI total.
Campaigns Tools that treat every UTM tag as marketing put utm_source=chatgpt.com next to your newsletters and ads.
Direct No referrer and no tag: the source is unknown. A rise in "direct" visits to deep pages nobody types by hand is often a hint.

The fix is a dedicated AI assistants channel that recognises the known AI referrer domains and their UTM sources.

The referrers worth recognising

  • ChatGPT: chatgpt.com, chat.openai.com, utm_source=chatgpt.com
  • Perplexity: perplexity.ai
  • Gemini: gemini.google.com
  • Claude: claude.ai
  • Microsoft Copilot: copilot.microsoft.com
  • Others: chat.deepseek.com, grok.com, meta.ai, chat.mistral.ai

One caveat: clicks from AI Overviews inside Google Search usually arrive with a normal Google referrer, so they count as search traffic, not as AI traffic.

Visitors are not the same as AI bots

Before an assistant can cite a page, a bot has to read it. Most AI companies run three kinds of agents:

  • Training crawlers such as GPTBot and ClaudeBot.
  • AI search bots such as OAI-SearchBot, Claude-SearchBot and PerplexityBot. They build the index assistants search when they answer with live results.
  • User-triggered fetchers such as ChatGPT-User, Claude-User and Perplexity-User. They open a page because a person asked the assistant something.

Blocking GPTBot signals that you do not want your content used for training. It does not remove you from ChatGPT search; that depends on OAI-SearchBot. If you want AI traffic but no training, a robots.txt along these lines does it:

User-agent: OAI-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Google-Extended
Disallow: /
Enter fullscreen mode Exit fullscreen mode

Keep bots out of your visitor numbers. If crawler requests are counted as page views, AI looks far bigger than it really is.

Measuring it in WordPress

I build NodeThemes Analytics AI, a free, open-source (GPL) analytics plugin that runs on your own server, so this is the setup I know best:

  1. Install the plugin. AI assistants are recognised by referrer and UTM source out of the box and appear under Acquisition → AI assistants.
  2. Turn on Log crawlers & AI agents to see which bots read which pages. Bots are logged separately and never counted as visitors.
  3. Create goals for the actions that matter (contact form, sign-up, order).
  4. Save a segment "Channel is AI assistants" and compare it with search visitors: pages per visit, conversion rate, revenue per visit.

The same ideas work in any analytics tool: build an AI channel from the domains and UTM sources above, and keep bots out of your visitor statistics.

Takeaways

  • AI visits arrive as referrals or as UTM-tagged links; check both signals.
  • Treat AI numbers as a minimum, because some app clicks arrive without either.
  • Separate training crawlers, AI search bots and user-triggered fetchers before you block anything.
  • Judge the channel by conversions, not by volume alone.

The full guide, with a 60-day plan, a reporting template and an FAQ, is on the NodeThemes blog: How to Track ChatGPT & AI Traffic in WordPress.

Top comments (1)

Collapse
 
omyvnss profile image
Om Yaduvanshi •

the distinction between the three bot types is the part i would keep. blocking gptbot and blocking oai-searchbot do different jobs, and mixing them up costs either training exposure or search visibility. the ai channel still needs a warning label though: with no referrer and no utm, those visits land in direct, so the channel total is a floor, not a full count.