Skip to content

Reader analytics

Cookieless by design, and there is nothing to consent to.

Every published site records how it is read. There is no third-party script and no analytics vendor.

SignalWhat you get
Page viewsViews, unique visitors and sessions, per page.
Search eventsEvery query, its result count, and the result chosen.
Missed pathsRequests that returned nothing, so you can add a redirect.
FeedbackHelpful or not, and any text. See Feedback.

Filter by 24 hours, 7 days, 30 days, 90 days, or a range you choose.

This is not a privacy setting you switch on. It is how the code works.

No cookie, no storage, nothing survives the page. So there is nothing to consent to and no banner.

No reader’s address is stored. The route hashes it and discards it before the rest of the product sees it. There is no code path from a request to a stored address.

The salt rotates daily. Yesterday’s visitor cannot be joined to today’s.

A session is derived, never stored. There is no session identifier anywhere, because one would have to live in a cookie or a durable hash. A session is defined as a run of one visitor’s views with no gap longer than a fixed interval, and counted at query time.

Stated plainly, because these are consequences and not oversights:

  • no reader identity, of any kind: no cookie, no fingerprint, no durable hash;
  • no funnel across days, because the daily salt makes it impossible on purpose;
  • no funnel across sites.

Note

Every one of those is the feature. They are what let you put this on a documentation site without asking your legal team first.

You choose it, per project. 90 days by default, and anything from 1 to 400.

Shortening the window destroys what is already past it, in the same transaction. The audit log records analytics.retention and says how much of each kind of row went.

The no-result searches. Each one is a reader who came looking for something in their own words and left with nothing.

Two things to do with the list:

  1. Add the words to search.yaml as synonyms, where the page exists.
  2. Write the page, where it does not. Repeated failures are clustered with a count and become inbox items.

Analytics limits rise with your plan. See Limits.

Deleting a workspace destroys its analytics, and the deletion is recorded. It is not a slow background sweep that half-happens.