Honest analytics for people without an ads budget
One script tag, 2.9 KB over the wire, one first-party cookie — or none at all. And the one panel no other analytics tool ships.
14 days, no card. No free tier, no ads, no reselling your traffic.
news.ycombinator.com10,165
Google7,976
GitHub7,618
Reddit3,686
ChatGPT3,236
bsky.app1,815
- /docs/quickstart13,801 uniq22,259
- /blog/shipping-weekly13,386 uniq21,590
- /12,732 uniq20,536
- /docs/api6,889 uniq11,112
- /changelog4,767 uniq7,689
- /pricing4,319 uniq6,966
- /blog/why-we-count-bots3,236 uniq5,220
The panel continues past this — open the live demo for the whole thing, on our own traffic.
Sample data from a demo site — the components are the real dashboard. Crawler identity is checked against forward-confirmed reverse DNS, and an impostor is labelled as spoofed.
How the traffic splits
Every request is sorted before it reaches a chart
23 operators send bots to your pages, and we name 59 of their crawlers. Each is checked against the address the operator publishes, then sorted by what it came to do — so “AI traffic” is never one undifferentiated number. When an operator publishes nothing to check against, the visit is still counted and labelled a claim rather than guessed at.
Operators · verified
TrueStat · server-side
crawler visits this week
- Forward-confirmed reverse DNS
- Verdict stored, never deleted
- Counted on the meter, honestly
Sorted into
- operators named
- crawlers, each one a page
- of hits confirmed genuine
every one on the directory
user-agent, ranges, robots.txt
by the operator's own records
See every crawler we name, and how each one is verified
The same sorting runs on your site the moment the tag is in.
Start the 14-day trialAI visibility
Find out which AI assistants read you
A crawler never runs your JavaScript, so a normal analytics tool records none of it. TrueStat reads it server-side and tells the four apart — three robots and the readers they send you — because each deserves a different robots.txt decision.
87% of crawler visits were confirmed as genuinely from that operator, by checking the address against what the operator publishes.
OpenAI214
Perplexity156
Anthropic89
Meta12
Sample data · the card’s own tabs switch the category
This panel is the reason the product exists, and no other analytics tool ships it.
Start the 14-day trialNumbers you can act on, and check
Visitor counts say who came. These say what happened, who sent them, and whether it was worth it.
Verified, not taken at its word
Reverse DNS both ways, then the operator's published ranges. A name that does not round-trip is labelled an impostor rather than counted as the operator it claims to be.
One tag, under three kilobytes
Paste it once. It is asynchronous, it blocks nothing, and the weight is measured from the file that ships rather than rounded down for a landing page.
Funnels without a tag manager
Define a goal from a rule on the events you already send, and the same goals become funnel steps. No second script, no container, no waiting on someone else's deploy.
When your readers are actually there
Every hour of every day, filtered by channel. The pattern is what tells you when to publish, and when a drop is just a weekend.
Which channels actually convert
Four signals side by side rather than one weighted score that hides which of them moved. A channel is judged by what it brought in, not by how many people it sent.
Live, and honest about it
Views, visitors, AI crawlers and attributed revenue on one canvas — bars for the money, lines for the people — with the newest bucket drawn as still filling.
Nine things the panel does, without a redeploy
One frame, hairline-divided. The top row drifts one way, the bottom the other — hover to hold it.
- Goals
Goals. Write visited /thanks as a rule — it counts retroactively.
- -87.2% →-60.0% →LandingPricingSignup
Funnels. The same goals become steps. Hover one to see who survived to it.
- Direct$1,919Organic Search$1,162Referral$781Unattributed$302
Revenue. Every Stripe payment names its channel. Untraceable ones get their own row.
- 93online nowWindowlast 30 minBounce rate—Newest bucketstill filling
Live view. A rolling window that admits what it doesn't know yet.
- QueryImpr · Clicksai crawler analytics4,210 · 188gptbot traffic2,904 · 141cookieless analytics1,873 · 96
Search Console. Impressions and clicks beside the visitors they became.
- PublishedViewers can look backThe last monthLink expiresNever
Shared boards. A dashboard by link, no login. The demo above is one.
GET /v1/sites/ts_8f2a/crawlers ?from=2026-08-01 &purpose=answers mcp truestat.crawlers({ operator: "anthropic" })
API & MCP. Read-only REST and an MCP server so your assistant can ask.
- CNAMEa.yourdomain.com → proxy.truestat.io✓ verifiedserves t.js first-party
Proxy. One CNAME, and the script serves from your own domain.
- GPTBotverifiedClaudeBotverified"GPTBot" · 45.13.9.2spoofedPerplexityBotunverified
Verdicts. Bots are flagged, never deleted. Flip the filter and the window replays with them in.
- Goals
Goals. Write visited /thanks as a rule — it counts retroactively.
Pricing
Two plans, and a ladder that gets cheaper as you climb
No free tier and no ad network — the price on the card is the whole business model.
Up to 10k monthly events
Slider position 1 of 9, 0% along the traffic range.
An event is a pageview or a custom event you send. AI and search crawlers do not count — they have their own allowance, the same on every plan. Going over never adds a charge and never costs you data: collection continues, and past a 10% grace band your reports pause until you move up a step.
Starter
/month
Billed monthly, cancel whenever.
Pay yearly and 2 of the 12 months are free.
- Events
- 10k/mo
- Websites
- 1
- Team members
- 1
- History
- 3 years
Pro
/month
Billed monthly, cancel whenever.
Pay yearly and 2 of the 12 months are free.
- Events
- 10k/mo
- Websites
- 30
- Team members
- 30
- History
- 5 years
Every feature is on every plan, at every step
- AI crawler reportingWhich assistants read which pages, verified by reverse DNS.
- Read-only API and MCPPull your own numbers into a warehouse, a spreadsheet or your own agent.
- Public dashboardsPublish a board at a shareable URL without handing out a login.
| Starter | Pro | |
|---|---|---|
| WebsitesSeparate sites, each with its own dashboard and script. | 1 website | 30 websites |
| Team membersPeople who sign in as themselves. Share links do not use a seat. | 1 team member | 30 team members |
| Alert rulesCounted across the account, not per site. | 3 alerts | 30 alerts |
| Social mentionsPosts about you on your chart, with the visits each one sent. | — | |
| History keptHow far back a year-on-year comparison can reach. | 3 years | 5 years |
Every rung on the ladder
9 steps, from 10k to 10M+ events a month. The price per event falls at every step, and the price you subscribe on is the price you keep.
| Events per month | Starter | Pro |
|---|---|---|
| 10k | $5 | $9 |
| 100k | $12 | $24 |
| 250k | $19 | $39 |
| 500k | $29 | $59 |
| 1M | $49 | $99 |
| 2.5M | $69 | $139 |
| 5M | $99 | $199 |
| 10M | $139 | $279 |
What it measures, what it costs, and what it will not do
The answers that usually live in a support thread, said here instead.
By reverse DNS, both ways. The address that made the request is looked up, the name that comes back is looked up again, and the answer has to be the same address. A name that does not round-trip is an impostor wearing someone else's user-agent, and the panel labels it as spoofed rather than counting it as the operator it claims to be. Where an operator publishes address ranges instead, those are checked too.
That depends on the mode you choose, and the choice is yours per site. The default sets one first-party cookie, and a persistent analytics cookie usually needs disclosure — in the EU and UK, usually consent. The two cookieless modes set nothing on the device and need no banner for us; they give up returning-visitor accuracy in exchange. The trade is stated on the screen where you pick it, not in a footnote.
Collection does not stop and the panel does not lock. Events keep being recorded and you are told where you are against the plan, with the tier that lifts the limit and what it costs. Holding a paying customer's own data hostage at a threshold is a thing competitors do and this product will not.
Under three kilobytes over the wire, measured from the file that ships rather than rounded down for a landing page. It is one tag, it is asynchronous, and it does not block rendering.
It is counted and labelled unverified. Some operators publish neither reverse DNS nor address ranges, so nobody can prove the claim either way — and quietly dropping those visits, or quietly trusting them, would both be wrong. The panel shows the claim as a claim.
No. Your visitors' data is never sold, shared or used for advertising, and the tag you install calls nothing but our own collector. That is also why there is no free tier: the price on the card is the whole business model. This marketing site is a separate matter and says so in the privacy policy — we buy ads, so it carries the advertiser's pixel. Your site does not.
Yes, and without asking. The API is on every tier, dashboards can be made public, and the export is yours. A tool that measures honestly should not need a lock-in to keep customers.
Yes. Route changes are tracked without a reload, and custom events can be sent from your own code for the things a page view cannot describe — a signup finished, a plan chosen, a payment taken.
111,580
agent requests since we started counting, across every site on TrueStat
59
crawlers named, from 23 operators
13
of those operators publish an address we can check against
Counted server-side, no site or visitor identifiable. The full figures, updated hourly
Put the tag on, and see who is really reading
14 days, no card, and the AI panel from the first request. If it does not tell you something you did not know, leave — nothing is held hostage.
Or open the live demo first — it is the same panel, on our own traffic.