Visitors & retention
The Visitors page has three parts: a list of visits you can open one by one, a heatmap of when people visit, and a retention table that answers “do they come back?”.
The visit list#
Each row is one visit (a run of activity that ends after 30 minutes of quiet), newest first, 25 per page. A row shows the place, device, operating system and browser, how many pages and events it had, how long it lasted, and when it was last active.
- Search matches city, country, browser and operating system.
- Open a row for the visit's profile: device, language, screen size, first seen, how many visits that visitor has had, where they came from, and a timeline of every page and event in order, with times in the site's time zone (up to 500 entries).
- Visitors are anonymous. There are no names or emails, only a hashed id that you never see.
When people visit#
A grid of weekdays (Monday to Sunday) by hour of the day, shaded by distinct visitors in the selected range. Darker is busier. Hours use the site's time zone. Use it to pick when to publish or ship.
Do they come back?#
Retention groups visitors into cohorts by the day they first visited (in the selected range, at least the last 14 days). For each cohort, Day N is the share of that cohort who visited again exactly N days later, for N from 0 to 7.
- The sentence above the table summarises next-day and 7-day return rates, using only cohorts old enough to have a full week behind them. Before that it says it is too early to tell.
- The table shows the 14 most recent cohorts. Hover a cell for the real counts.
- Cells for days that have not happened yet stay blank.
Common issues#
- The list says “visitors” but shows the same place twice
- Each row is a visit, not a person. The same visitor on two days appears as two rows.
- Retention says “Not enough visits yet”
- It needs at least a day of data. Come back after a few days of traffic.
- The heatmap looks empty
- It counts distinct visitors per hour in the selected range. Pick a longer range.
- No city in the list
- City needs location headers from your host. See self-hosting for Cloudflare.