Concepts
UsherStats sorts every visit into one of three lanes and counts each one separately, because one combined number answers none of the questions worth asking.
| Lane | Who | Where you see it |
|---|---|---|
| People | Readers in real browsers | People, Behaviour |
| Crawlers | Search engines, AI fetchers, SEO tools, scrapers, scripts | Crawlers, Bot protection |
| Internal | Your own team, tools and checks | Internal |
What counts as a pageview
A pageview is counted when a real browser confirms it: the snippet reports the page when it is hidden or closed (or after five minutes, for a tab left open), with how long it was open, how far it was scrolled and whether the reader did anything. A request a crawler makes is never a pageview, because a crawler does not run the script.
A confirmed pageview counts under People unless it is one of these, which go to Crawlers or Internal instead:
- it came from your own team (see internal traffic);
- it came from a hosting network: cloud and server providers, where people rarely browse from, but scripts with browser-like names often do;
- the browser reported a server's clock (
UTCrather than a place) as its time zone; - it is past the twentieth page of one session: no person reading at a human pace goes that deep in one tab, but a scripted browser touring the site does;
- bot protection judged the visitor to be automated, even if it was only logging that decision.
Browsers that send Global Privacy Control are not recorded at all, so they appear nowhere.
The snippet currently reports one pageview per full page load. Route changes inside a single-page app are not reported as separate pageviews.
Sessions
A session is a browser tab's visit: it starts on the tab's first page and lasts as long as the tab stays on your site. A page opened in a new tab from one of your own pages belongs to the visit it was opened from.
UsherStats keeps nothing between visits: no cookie, no identifier that lasts beyond the tab. The page counter lives in the tab's session storage, which the browser clears when the tab closes. A person who comes back tomorrow, or opens your site in a second tab from elsewhere, is a new session. That is the price of storing nothing about people, and it is the same for every site, so comparisons hold.
Internal traffic
Your own visits while you build and check your site are not readers. UsherStats recognises them three ways, per site:
- Tools: scripts, smoke tests and uptime checks that send a signed
x-usher-internalheader. The site's settings show how to sign it; a signature is good for ten minutes, on the one hostname it was made for. - Browsers: a team member can mark their browser from the site's settings. Through a first-party path, this sets a cookie on your own domain, in that browser only, and its visits count as Internal.
- Networks: an office or VPN network you list in the site's settings. The weakest of the three, because readers can share a network with you.
Internal traffic is counted, just not as readers: the Internal view shows it.
Bots
With the Worker SDK or proxy mode, UsherStats sees every request your site answers, not only the ones that run a script. Each request is classified:
- Search engines: Googlebot, Bingbot and others, verified by Cloudflare where possible. A request using a search engine's name without being verified is an impersonator.
- AI fetchers: GPTBot, ClaudeBot, PerplexityBot and others, both the crawlers that gather training data and the fetchers that read a page because someone asked an assistant about it.
- SEO tools, monitors, feed readers, link previews and scrapers, each by name where it gives one.
- Unnamed automation: browser-like requests from hosting networks, or with the marks of software that never runs a page's scripts.
The Crawlers view shows who came, how often, and what they read.
AI referrals
A reader who arrives from an AI assistant is a person, counted under People, with the assistant as the source:
ChatGPT, Perplexity, Claude, Gemini and Copilot are recognised by the referring site, and also by the utm_source tag
they add to links, because many of those visits arrive with no referrer at all.
Sources
Every People visit has a source and medium: search, social, referral, campaign (from utm_source, utm_medium and
utm_campaign), AI, or direct. Only those three campaign tags are taken from a page's address; the rest of the query
string is never sent. A link from one of your own hostnames to another is the same site, not a referral.
Data retention
UsherStats keeps your data for as long as your account exists, on every plan: the raw records and the daily totals built from them. You can delete a site's data, or set a shorter retention for it, in the site's settings, and export everything at any time.