Is ChatGPT using my website? How to measure AI visibility, from crawler to customer
Search Console tells you how often Google shows your pages and how often people click. For ChatGPT, Claude, Perplexity and Gemini there is no such report. You can't see the questions people ask or how often you are mentioned. You can, however, see four things that leave traces on your own site, and together they answer most of the question "is AI using my website, and is it worth anything?"
The four steps you can measure
- Read. An AI company's crawler downloads your page to train a model or to build a search index.
- Used in an answer. While answering someone's question, the assistant fetches your page live.
- Visit. A person clicks a link to your site in the answer.
- Revenue. That person signs up or buys.
Each step has a different source of data. Steps 1 and 2 are visible only on your server; steps 3 and 4 are visible in your analytics.
Step 1 and 2: who's who among AI bots
The major AI companies publish the user agents of their bots and what each one is for. The useful split is between bots that collect pages in the background and bots that fetch a page because someone asked a question right now.
| Company | Reads (training, search index) | Fetches for an answer |
|---|---|---|
| OpenAI | GPTBot, OAI-SearchBot | ChatGPT-User |
| Anthropic | ClaudeBot, Claude-SearchBot | Claude-User |
| Perplexity | PerplexityBot | Perplexity-User |
| Meta | Meta-ExternalAgent | Meta-ExternalFetcher |
| Mistral | MistralAI-User | |
| DuckDuckGo | DuckAssistBot |
Google is the exception. AI Overviews and AI Mode use the normal Googlebot, and Google-Extended is only a robots.txt token, not a separate crawler. So you can't separate Google's AI use of your pages from ordinary search crawling.
A visit from ChatGPT-User or Claude-User is the closest thing to a signal that your page took part in an answer. Two caveats keep it honest:
- A fetch means the assistant opened your page while answering. It doesn't prove the answer quoted or linked you.
- Assistants also answer from their search index without fetching anything live, so some answers that cite you leave no trace. Treat the count as a minimum.
Why your analytics doesn't show bots
Google Analytics, Plausible, PageLens and other script-based tools count visitors through JavaScript running in the browser. Most AI crawlers download the HTML and never run that JavaScript, and tools that do see them filter bots out on purpose so they don't inflate visitor numbers. To see AI bots, you need data from the server or the CDN that served the page.
The do-it-yourself way: server logs
If you run your own server, your access log already has this data. Count requests per AI bot:
grep -oE "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User|Meta-ExternalAgent|Meta-ExternalFetcher" access.log \
| sort | uniq -c | sort -rn
And list the pages assistants fetched to answer questions (in the common Nginx and Apache log format the path is the 7th field):
grep -E "ChatGPT-User|Claude-User|Perplexity-User" access.log \
| awk '{print $7}' | sort | uniq -c | sort -rn | head -20
Where this falls short:
- Hosted sites have no logs. Wix, Squarespace, Webflow, Framer, Shopify and most Vercel or Netlify setups don't give you raw access logs, or keep them only briefly.
- Caches hide requests. If a CDN serves the page from cache, your origin server never sees the bot.
- User agents can be faked. Anyone can send
GPTBotin a request. OpenAI and Perplexity publish the IP ranges of their bots if you need to verify them. - It's a one-off. A grep tells you about today's log file, not the trend over months.
Step 3: visits from AI assistants
When someone clicks a link in an answer, the visit usually arrives with a referrer such as chatgpt.com, perplexity.ai, claude.ai or gemini.google.com. Most analytics tools lump these into Referral. Group them into their own channel; for Google Analytics 4, the steps are in How to track ChatGPT, Perplexity and Claude traffic in GA4.
Links opened from the desktop and mobile apps sometimes arrive without a referrer and are counted as Direct, so this number is a minimum too.
Step 4: do AI visitors pay?
The last step needs your signups or payments tied to the visit they came from. For a SaaS product, the reliable way is to pass the signed-in user's ID to your payment provider and match it on the webhook. The setup is in Stripe revenue by traffic source, without cookies. Then you can compare revenue per visitor from AI assistants with Google search and paid ads.
Reading the numbers together
Each step alone is a curiosity. Put side by side, page by page, they point to something you can act on:
| What you see | What it usually means |
|---|---|
| No reads at all from one company | Check robots.txt: a broad Disallow or a CDN bot-protection setting may be blocking it. Blocking OAI-SearchBot keeps you out of ChatGPT search results. |
| Pages read often, never fetched for answers | The assistant knows the page but doesn't consider it the best source for any question it gets. |
| Fetched for answers, few visits | Normal. Many people take the answer and don't click. These pages still shape what the assistant says about you, so keep them accurate. |
| Visits that convert above your average | Find which landing pages they enter on and make more pages like them. |
To check which AI bots your robots.txt lets in, use the free AI Crawler Checker. For deciding which ones to block, see GPTBot, ClaudeBot, PerplexityBot: which AI crawlers to block.
All four steps in one report
We built AI Visibility in PageLens around this funnel. It shows, per assistant and per page, how often AI read your site, fetched it for answers, sent visitors and earned revenue, along with the robots.txt status of each company's bots.
- Visits and revenue work as soon as the normal PageLens script is on your site.
- Bot reads and answer fetches need one server-side step, because bots don't run the script: the
pagelens-nextpackage for Next.js (one line of middleware), a WordPress plugin, or a one-click Cloudflare Worker for Wix, Squarespace, Webflow, Framer and Shopify sites on Cloudflare. A Check connection button requests your site as a test bot and confirms it was recorded.
PageLens is cookieless, so it doesn't need a consent banner, and bots are kept out of your visitor numbers.