Home / RankReady / AI referral tracking
AI referral tracking for WordPress

Your ChatGPT traffic
is hiding inside Direct.

AI engines send clicks from their own interface, not from a results page, and most analytics setups have no bucket for that. RankReady watches the referrer server side and counts visits from ChatGPT, Perplexity, Gemini, Claude and Copilot as their own segment. No JavaScript, no third party, no cookie. About five minutes to set up.

v1.3.1 · 300 active installs · Tested to WordPress 7.1 · Runs alongside Yoast, Rank Math, AIOSEO and SEOPress

What it counts and how

Server side, before
any script gets a chance to fail.

Detection runs on the init hook, so an ad blocker or a consent banner that stops an analytics script has no effect on it. Bot requests, admin requests, REST, AJAX, cron and your own internal referrers are all skipped before anything is counted.

The AI Referral Traffic card in RankReady, counting real visitors sent from AI applications over the last 30 days.

Five sources, matched on host

chatgpt.com and chat.openai.com, perplexity.ai, gemini.google.com, claude.ai, and copilot.microsoft.com with m365.cloud.microsoft, so subdomains count too.

Deliberately thin data

A date, a source name and a count, aggregated into a single options row on a rolling 30 day window. Older days are pruned automatically.

No IP, no path, no cookie

DNT and Sec-GPC are honoured, so a visitor who has asked not to be tracked is not counted at all.

Why the number is usually small

Single digits in month one
is normal, not broken.

AI answers are mostly read without a click. The useful reading is not the absolute number, it is the ratio between crawler activity and referred visits, and the direction of travel across weeks.

The AI Referral Tracking card in RankReady, with a toggle that records visitors arriving from AI apps, logged server side rather than by a script in the page.

Crawler hits and referrals are opposite ends

A crawler fetching your page and a human clicking through from an answer are different events. Conflating them is the most common mistake in this category, so they are counted separately.

A site fetched constantly and referred never

That is telling you something specific, and it is not the same message as a site nobody fetches at all.

Counts start at zero on install

No backfill and no modelled estimate. The screen says so rather than showing you a number it invented.

It runs alongside your analytics

Google Analytics, Plausible, Matomo and Fathom keep doing their job. This counts what they are designed not to see.

No account, no external service

The counts live in your own database and go nowhere.

Nothing to configure

Turn it on and wait. There is nothing to tag and nothing to instrument.

Honest scope

Treat the number
as a floor, never a total.

Read this before the feature rather than after, because it decides whether the numbers are worth acting on.

It undercounts, and that cannot be fixed from WordPress

A referrer header arrives or it does not. Mobile apps often send nothing, some engines route clicks through a redirect that strips it, and privacy settings remove it too.

It cannot tell you which page got the click

No path is stored. That is a privacy decision rather than an oversight, and landing page attribution is what your analytics tool is for.

Thirty days, and no history before install

The window rolls. There is no way to look back at a quarter.

A visit is not a citation

Somebody clicked a link in an answer. That tells you an answer existed and contained your link. It does not tell you how often you were mentioned without a click, which is most of the time.

Questions people actually ask

The honest answers,
before you have to ask.

Q. Does this need a cookie banner?

Tracking a source name and a date, with no IP, no path, no cookie and no identifier, is about as light as web measurement gets, and DNT and Sec-GPC are honoured. Your own compliance position is still your lawyer's call rather than ours.

Q. Why does my analytics tool show a different number?

Different measurement points. This counts server side on every qualifying request. A JavaScript tool misses blocked scripts and counts sessions rather than requests. Two methods, two numbers, neither wrong.

Q. Can I see which post the visitor landed on?

No. No path is stored. That is a deliberate privacy limit, and if landing page attribution matters, use your analytics tool for it.

Q. Why is my count zero?

Either nobody has clicked through yet, which is common and normal, or referrers are being stripped before they reach you. Check whether crawlers are even reaching your site first.

Q. Does it slow the site down?

One header check and, on a match, one options update on qualifying requests only. Bots, admin, REST, AJAX and cron are skipped before any of that runs.

Q. Does it touch my SEO plugin?

No. Yoast, Rank Math, AIOSEO and SEOPress do not track referrers and none of their output is modified. Setup takes about five minutes.

Free on WordPress.org

Make your site readable
to the things reading it.

RankReady is a WordPress AI SEO plugin. It runs alongside Yoast, Rank Math, AIOSEO and SEOPress rather than replacing any of them, and setup takes about five minutes from your dashboard.

Free, no account, no credit card · GPL-2.0 · About five minutes from your dashboard