About reader stats
The small line above an article shows engaged reads, not unique people. A read qualifies after at least 10 seconds of active reading with article text on screen, a visible and focused tab, recent scrolling or another interaction, and successful Cloudflare Turnstile verification.
This filters much automated traffic, but it cannot prove that every visit is human. Privacy tools, blocked scripts and failed verification can also mean genuine readers are not counted. Reading the article never requires completing a challenge.
What the numbers mean
- Engaged reads: once per article in a 30-minute browser session. Different browsers or later sessions may count again.
- Average active time: approximate time with article text visible and recent activity, capped at 30 minutes. Hidden or unfocused tabs do not accumulate time. After 60 seconds without interaction, counting pauses. The final partial reporting interval may be missed.
- Top source: a broad referring-site category, not a full URL. Direct includes visits without a supplied referrer.
Average time appears after 10 engaged reads. A leading source appears only after 10 reads overall and at least five from that source. The summary refreshes roughly every three minutes. On smaller screens the source is omitted to keep the line readable.
These totals begin when this feature starts collecting data. Older Umami pageviews are separate and are not retrospectively described as verified reads.
Privacy
A random browser identifier is stored locally for a 30-minute session. The database retains hashed read receipts for up to 24 hours and hourly salted network hashes for abuse prevention. Expired records are removed when subsequent visits start. No raw IP addresses, full referring URLs, names or browser fingerprints are stored in this feature's database. Article totals and broad source counts remain.
Do Not Track and Global Privacy Control disable engaged-read collection. Cloudflare processes network requests and Turnstile verification under its own policies. Existing Umami analytics remain separate and private. The public API exposes only the aggregate summary; administration stays in Cloudflare.