Site Analytics

Cookieless Analytics, AI Readers Included

See who visits your website without a single cookie. Claude CMS counts your visitors on your own site, keeps nothing on their device, and shows the part other analytics miss: which AI assistants send you people, and which AI bots read your pages.

A first-party collector on your own domain: one small beacon per page, a daily-rotating visitor hash instead of a cookie, no IP address or user agent stored, and every figure kept in your site’s own database. The web server’s access log adds the AI crawlers that never run JavaScript.

Analytics that belong to your website

Most analytics tools are someone else’s service: a script from their servers, a cookie on every visitor, your figures on their dashboard. Here the counting happens on your own site, the figures stay in your own site’s database, and you read them on the Analytics page of your Claude CMS account.

The beacon posts to a collector on your own domain and accepts same-site requests only. Hits land in your site’s own MySQL database and are rolled into daily totals once each day is over. Your account dashboard receives aggregates through the site’s API; raw rows never leave the site.

🍪

No cookies, nothing stored

Nothing is written to your visitors’ phones or computers: no cookie, no saved identifier, nothing that survives the day.

🗄️

Your figures, your database

Visits are recorded by your own site and kept in its own database. No analytics company sits in the middle, and nothing is sold or shared.

⚡

On from day one

New sites on our hosting have it from day one. An older site switches it on with one sentence to Claude.

See which AI reads your pages

AI assistants and their crawlers read websites all day long, but they don’t run the scripts ordinary analytics depend on, so most dashboards never see them. Claude CMS reads your web server’s own log instead and shows the AI readers by name: which pages each one read, how often, and how often it checked your robots.txt.

A log tailer keeps its place in the server’s access logs and matches 25 known agents by user agent — successful GET and HEAD requests only — into a per-day table of agent, path and hits. Images, scripts, API calls and connector traffic are kept out of “pages read”.

AI readersFrom the server log · last 30 days
Live fetches1,284
Training7,415
Search engines18,730
Googlebot · search engine
12,906
OpenAI training · GPTBot
4,218
/pricing · /services · /about
Anthropic training · ClaudeBot
1,904
ChatGPT (live fetch) · ChatGPT-User
862
/pricing · /contact
Claude (live fetch) · Claude-User
311
An illustration with example figures. Your dashboard shows your own site’s.

Live fetches

An assistant reading your page right now because someone asked it a question — ChatGPT, Claude, Perplexity, Mistral, Meta AI or DuckDuckGo. The nearest thing to a referral you can see before anyone clicks.

Training crawlers

GPTBot, ClaudeBot, Common Crawl, ByteDance, Meta and others collecting pages for model training. Worth knowing before you decide what your robots.txt allows.

Search engines

Googlebot and Bingbot, kept apart from the rest, because their indexes feed Google’s AI Overviews and Microsoft Copilot as well as ordinary search results.

Know when an assistant sends someone your way

When ChatGPT, Claude, Perplexity, Gemini or Copilot links to your site and someone clicks, the visit is recognised and credited to the assistant that sent it. You see how many came from each, the page they landed on, and every page they went on to read.

Sessions are attributed by referrer host (chatgpt.com, claude.ai, perplexity.ai, gemini.google.com, copilot.microsoft.com and others — fourteen assistants in all) or by a utm_source naming the assistant, which also catches ChatGPT’s own link tagging. Totals are set against the previous period, with landing pages and a page list for those sessions.

AI assistant referralsPeople arriving from an AI answer

1,126 sessions ▲ 38% on the previous 30 days

ChatGPT
642
Landed on /pricing · +14 more
Perplexity
238
Landed on /blog/choosing-a-boiler · +6 more
Claude
121
Landed on /services · +3 more
Gemini
87
Landed on / · +2 more
Copilot
38
Landed on /contact · +1 more
An illustration with example figures. Your dashboard shows your own site’s.

No cookies, and nothing that follows a person around

Instead of a cookie, each visit gets a short code worked out from that day’s key, the visitor’s IP address and their browser. The key changes every day, so the same person gets a different code tomorrow and can’t be followed from one day to the next. The IP address and browser details themselves are never written down.

The visitor id is a truncated SHA-256 of the visitor’s IP and user agent, salted with an HMAC of the UTC date under a per-site secret. The IP is used to look up the country and to spot hosting networks, then discarded; the user agent is reduced to device class, browser and operating system; referrers keep host and path only; page addresses keep their utm tags and nothing else.

🌐

No IP addresses kept

An address is used for a moment to work out the country and to spot cloud servers, then thrown away. Never a town, never a street, never the address itself.

🧾

No browser fingerprints

The long string a browser sends about itself becomes three plain words — device, browser and system, such as “mobile, Safari, iOS” — and the rest is dropped.

✂️

Links trimmed

Only the site and page someone came from are kept. Of your own page addresses, only the campaign tags you added are kept; anything else in the link is dropped.

An opt-out that works

Visitors can switch counting off in their own browser, and the script respects it. Browsers that say they are being driven by software are never counted at all.

Two things stay with you as the site owner: a short paragraph in your privacy notice saying what is recorded, and a visible opt-out link. Claude can add both for you.

Only real people in the numbers

A new website is found by robots within minutes: uptime monitors, security scanners and test rigs, many of them driving a real browser that runs every script on the page. On three of the newest sites we host, they made up close to nine in ten of the early “visitors”. Claude CMS sets them aside automatically, and tells you how many it set aside rather than hiding them silently.

Three layers: a user-agent rule drops self-declared bots and headless tools; the beacon stands down when navigator.webdriver is set; and from tracker 1.1.0 each visitor-day gets one reverse-DNS lookup after the response has been sent, so visits from Amazon, Google Cloud, Azure, DigitalOcean, Hetzner, OVH and other hosting networks are flagged and excluded from every figure.

🤖

Bots that say so

Anything that announces itself as a crawler, a checker or a script is never counted as a visitor.

☁️

Cloud browsers set aside

Visits from hosting networks such as Amazon Web Services, Google Cloud and Azure are flagged and left out, with a count shown beside your figures.

🏠

Your own visits

Leave out your office or your own browser, so your edits and checks don’t inflate the numbers.

Everything else you’d expect

The everyday figures on one page, for the last 7, 30 or 90 days, each compared with the period before.

Tiles with deltas, a per-day series that splits into up to eight sources, ranked tables that open beyond the top five, and percentiles rather than averages where averages mislead.

👥

Visitors and visits

Visitors, page views, sessions, bounce rate and average time on page, with the change since the last period.

📈

Visitors per day

A daily chart you can split by where people came from. Tick up to eight sources and each gets its own line.

📄

Top pages

Views, unique visitors, average time and how far down the page people scrolled, page by page.

Landing pages

Where visits begin, so you know which pages are doing the introducing.

🔗

Sources and campaigns

The sites that send you people, and how your newsletters and adverts perform through their campaign tags.

🌍

Countries and devices

Countries, device types, browsers and operating systems, each with its own short table.

⏱️

Page speed

How long your pages took to load for real visitors: the typical time, and how slow it gets for the slowest tenth.

Clicks out and downloads

Links to other sites, and downloads of PDFs, spreadsheets and documents, counted with no setup at all.

➕

Anything else you want counted

A form sent, a button pressed, a video played. Ask Claude to count it and it appears with the rest.

Your numbers live in your database, so Claude can read them

The dashboard answers the usual questions. For the unusual ones, ask Claude in plain words. It reads the same tables the dashboard does, straight from your site, through the connection it already uses to build it.

Page views, daily totals and AI reader counts are ordinary tables in the site database, so anything the connector can query, Claude can answer: one-off breakdowns, comparisons across campaigns, exports.

“Which AI bots read our pricing page this week?”

Claude adds up the AI reader log for that one page, agent by agent.

“How did the spring newsletter do?”

Visitors, pages read and time spent for everyone who arrived through that campaign’s links.

“Which countries are growing fastest?”

Visitors by country for the last 30 days, set against the 30 before.

Part of Claude CMS hosting

There is nothing to buy, install or configure. Sites deployed on our hosting have it from day one. An older site switches it on with one sentence to Claude: “Deploy site tracking according to the site-tracking block.” The figures appear under Analytics in your Claude CMS account.

The collector ships in the deployment package, creates its own tables on the first hit and upgrades them in place. Releases are published as a versioned manifest with a checksum for every file, so an older site retrofits with the same files a new one starts with.

✅

Nothing to add

No script to paste, no third-party account, no per-visit pricing and no extra subscription.

🗓️

Kept for 16 months

Every visit is kept for 90 days, then folded into daily totals that are kept for 16 months. It tidies itself up; there is nothing to schedule.

🗂️

Every site in one place

Each site keeps its own figures. Switch site at the top of your account and Analytics follows.

Cookieless analytics — common questions

What is cookieless analytics?

Website analytics that count visits without putting a cookie or any other identifier on the visitor’s device. Claude CMS gives each visit a code worked out from a key that changes every day plus the visitor’s IP address and browser, stores only that code, and starts again the next day.

Do I still need a cookie banner?

Not for these analytics: they set no cookies and store nothing on the visitor’s device. Other things on your site may still need consent, such as advertising pixels, embedded videos or Google Analytics. You should still describe the analytics in your privacy notice and offer a way to opt out, and the rules differ from country to country, so take advice if you are unsure.

How can it see which AI reads my website?

AI crawlers don’t run JavaScript, so ordinary analytics never see them. Claude CMS reads your web server’s access log instead and recognises 25 AI agents and search engines by name, from ChatGPT and Claude to Common Crawl and Googlebot, recording which pages each one read.

Which AI assistants are recognised as referrers?

ChatGPT, Claude, Perplexity, Gemini, Microsoft Copilot, Grok, DeepSeek, Mistral, Meta AI, You.com, Phind, Poe, DuckDuckGo AI and Kimi. A visit counts as an AI referral when it arrives from one of their websites, or through a link whose campaign tag names one of them.

Is my visitors’ data shared with anyone?

No. Visits are recorded by your own site and kept in its own database. Your Claude CMS account shows you totals fetched from your site, and no analytics company receives anything about your visitors.

Why are the numbers different from Google Analytics?

Mostly for three reasons. Where Google Analytics waits for consent, it never sees visitors who ignore or decline the banner; these analytics count everyone apart from bots, automated visits and people who opt out. A visitor here is counted once per day, because the code changes daily, so someone who comes back tomorrow is counted again. And visits from cloud servers are left out here but are often counted there.

Is it on every site?

It is built into Claude CMS hosting. Sites deployed on our hosting have it from day one. An older site switches it on with one sentence to Claude, and the Analytics page in your account shows the sentence to copy.

Does it work on a self-installed site?

The visitor figures do: the same collector runs wherever Claude CMS is installed. The AI readers panel needs access to the web server’s logs, which our hosting provides, so on your own server that part stays empty, and countries need a location database installed on that server.

How long is the data kept?

Every visit is kept for 90 days. After that it survives only as daily totals, which are kept for 16 months. Both are tidied away automatically, with nothing for you to schedule.

Can I leave out my own visits?

Yes. Claude can add your office or home IP address to the site’s exclusion list, or you can switch counting off in your own browser through the same opt-out your visitors use.

Can Claude read my analytics?

Yes. The figures are kept in your site’s own database, which Claude already reads through your connection, so you can ask in plain words the questions the dashboard doesn’t answer, such as which AI bots read a page this week or how one campaign compared with another.

See who reads your site. People and AI.

Visitors, where they came from, and the AI assistants that read and recommend you — counted without a cookie and kept on your own site.

First-party, cookieless analytics with server-log AI detection, stored in your own database and read over the connector Claude already uses.

Included with Claude CMS hosting. No add-on, no separate subscription.