VisitorType
Early access

Not all of your visitors are human anymore.

VisitorType tells humans, AI crawlers, and AI agents apart — then lets you serve each one differently. One snippet, GTM-style rules, zero deploys.

HumanGPTBotClaudeBotChatGPT-UserPerplexityBotVisitorTypeclassify → match rulesAnalytics pixelhumans onlyllms.txt pointerAI agentsClean reportswho reads what
35+
known AI agents detected
6
visitor types classified
3 kB
dependency-free snippet
1
line of code to install
The problem

The web grew a second audience, and your stack can't see it.

Your analytics are lying to you

GPTBot, ClaudeBot, Perplexity, and dozens of agentic browsers hit your site every day. Your analytics either count them as people or drop them entirely — both are wrong.

Agents are your new visitors

People increasingly ask their assistant instead of visiting you. When ChatGPT or Claude fetches your pricing page on a customer's behalf, that is a sales visit — and you can't see it.

One page for two audiences

Humans want design and storytelling. Agents want facts, structure, and canonical answers. Serving both from one undifferentiated page shortchanges both.

The solution

Detect. Target. Measure.

1Detect

Every visit is classified — human, AI crawler, AI search bot, assistant fetcher, or agentic browser — using a curated agent registry plus behavioral signals. Server-side tracking catches the crawlers that never run JavaScript.

2Target

GTM-style rules on top of the classification. Fire your analytics for humans only. Point AI agents at llms.txt. Inject canonical facts for AI search bots. Publish versioned configs — no deploys, no code changes.

3Measure

Which agents visit, what they read, which tags fired. Watch AI traffic like you watch human traffic — or skip the dashboard and ask your own AI through the built-in MCP server.

<script async src="https://visitortype.ai/tms.js" data-container="AITM-XXXXXXX"></script>

// then, in plain English rules:
//   if visitor_type is ai_search    → inject canonical facts
//   if visitor_type is human        → fire analytics pixel
//   if agent_name is ChatGPT-User   → count an assistant referral
FAQ

Fair questions.

How is this different from Google Tag Manager?

GTM assumes every visitor is a human in a browser. VisitorType classifies each visit first — human, AI crawler, AI search bot, assistant fetcher, or agentic browser — and makes that classification available to every trigger. Same mental model (tags, triggers, versions, publish), new audience dimension.

AI crawlers don't run JavaScript. How can a snippet see them?

It can't — that's exactly why there's a second pipeline. Your backend or edge reports requests to the server-collect API (copy-paste adapters for Next.js, Cloudflare Workers, and Express included). The snippet catches assistants and agentic browsers; the server-side reporter catches the crawlers.

Will it slow down my site?

The snippet is ~3 kB, loads async, and makes a single request. Tags fire after classification, and a failing tag or unreachable API never breaks the page. Server-side reporting is fire-and-forget and adds zero response latency.

Can I block AI crawlers with it?

Blocking belongs in robots.txt or your WAF — and our detection data tells you exactly who to name there. What the tag manager does is subtler: serve each audience differently. Many teams want AI agents reading more (accurate, structured facts), not less.

Can my AI assistant manage it for me?

Yes. Every account gets an MCP server endpoint. Connect Claude, ChatGPT, Cursor, or any MCP client with an API key and ask it things like “which AI agents hit my pricing page this week?” or “create a tag for Perplexity visitors and publish it.”

What does early access cost?

Nothing. Create a free account and you get the full platform — containers, detection, rules, analytics, AI referrals, and the MCP server. Paid plans arrive later with generous grandfathering for early users; the free tier stays.

Your site already has AI visitors.

Find out who they are — and decide what they see. Free during early access.

No credit card · 5-minute install · cookieless & GDPR-friendly by design