Visitor analytics
Read who visits your published site, where they came from, and what they looked at.
On this page
Every project has an Analytics tab in the editor. It counts real visits to your published site, it is on by default, and it costs nothing on any plan. The tracking is cookieless, so your site needs no consent banner for it anywhere in the world.
Where to find it
Open a project and click the chart icon in the tab strip at the top of the editor. It sits between CMS and Storage, and its tooltip reads Analytics. The address is /dashboard/projects/<project>/analytics.
The tab has two sub-tabs: Data for the numbers and Settings for the collection toggle, the export and the reset.
Do not confuse this tab with the Analytics sub-tab inside Storage. That one reports CDN file usage, not visitors.
What is counted
Only the published site. The preview is not a public address and nothing there is measured. Until your first publish, a banner reads "This site needs publishing before analytics can start collecting visitors." and every card is empty.
Collection is wired into the site when it is built, so a change to the toggle only reaches visitors on your next publish. That means there are four states the banner can describe:
| State | What the banner says |
|---|---|
| Never published | This site needs publishing before analytics can start collecting visitors. |
| Collection off, published site still carries the script | Collection is off, but your published site keeps collecting until you publish again. |
| Collection off and no longer on the published site | No new visitors are being collected while analytics collection is off. |
| Collection on but not yet shipped | This site needs republishing before analytics can start collecting visitors. |
When none of those apply, no banner appears.
The live counter
Next to the period picker sits a green dot and a count, reading for example 12 online. That is the number of people active on the published site in the last five minutes. It is independent of the period you picked, and the whole panel refreshes every five seconds once the site has been published at least once.
The six metrics
Six stat cards run across the top. Each one is a button: click it and the chart below re-plots to that metric. Unique visitors is selected by default.
| Card | What it counts |
|---|---|
| Unique visitors | Distinct people in the selected period |
| Total visits | Sessions, so one person returning later counts twice |
| Total pageviews | Every page load, including repeat views in one visit |
| Views / visit | Pageviews divided by visits, shown to two decimals |
| Bounce rate | Percentage of visits that left after a single page, shown as a whole number |
| Visit duration | Average time on the site, formatted as 2m 14s |
If a request fails, the cards show a dash and the chart offers a Try again button under "Could not load analytics". Your visits keep being counted while that is on screen.
Time ranges
The period picker sits in the top right. Today is the default.
The presets are Today, Last week, Last month, Month to date, Last 6 months, Last year and All time. Below the presets is a two-click calendar: pick a start and an end date, then press Apply for a custom range. Whenever you are on anything other than Today, an X button appears next to the picker to reset back to it.
The chosen period lives in the page address, so an analytics view is a link you can send to a teammate or bookmark.
Chart granularity
The chart header reads <metric> over time, and a second picker to its right sets the bucket size. Which sizes are offered depends on the range, and the picker is hidden when there is only one sensible option.
| Range | Granularity options |
|---|---|
| Today | Hours |
| Last week, Last month, Month to date | Hours, Days |
| Last 6 months, Last year | Days, Months |
| All time | Months |
| Custom, up to 1 day | Hours |
| Custom, up to 31 days | Hours, Days |
| Custom, up to 92 days | Days |
| Custom, up to 366 days | Days, Months |
| Custom, longer | Months |
The chart is a filled area chart. Hover any point for a small tooltip with the bucket label and the value in that metric's own units. The bucket that is still in progress is drawn as a dashed line, so a half-finished hour or month never looks like a real drop. Times are shown in your own timezone.
When the range holds no traffic yet, the chart is replaced by an empty state reading "No visits" with the line "Trends appear here once traffic starts arriving."
Breakdowns
Six cards sit under the chart, each listing the top eight rows for the selected period, ranked by unique visitors. A pale bar behind each row shows its share of the top row.
- Top pages, by path on your site
- Top sources, where the visit came from, with the referrer's favicon
- Countries, with the country flag and full country name
- Browsers
- Operating systems, with the platform logo
- Devices, split into desktop, mobile and tablet
A row with no recorded value shows as (none). A card with nothing in it yet reads "No data yet".
Settings
The Settings sub-tab holds three sections.
Collection
One switch, Collect visitor analytics, described as injecting the privacy-friendly tracking script on your published site. Turning it off writes the change immediately, but the live site keeps collecting until you publish again. Existing data is always kept.
Export
Export .csv downloads all-time stats for every page, source, country, browser, operating system and device, with a visitors and a pageviews column per row. The file is named after your project slug, for example my-site-analytics.csv.
This one is paid only. On a free workspace the button is disabled and its tooltip reads "Exporting your analytics requires a paid plan."
Danger zone
Clear data permanently resets every visitor stat for the site back to zero. Tracking keeps working for new visits. A confirmation asks "Clear analytics data?" before anything happens, and the action button reads Clear data.
Clearing needs project delete permission in the workspace. Members without it see the button disabled.
Asking the AI about your traffic
You can ask about traffic in chat rather than reading the tab. The AI can pull totals for any of the six metrics, a ranked breakdown by page, source, country, browser, operating system or device, a custom date range, or the live count. It cannot flip the collection toggle, export the CSV or clear the data. Those three are yours.
From an AI client over MCP
get_site_analytics returns the headline numbers, get_site_realtime_visitors the live count, and check_analytics_installation whether the script is in place. query_site_analytics answers anything else: top pages, sources, countries, browsers, operating systems, devices, or a series over time. All four need analytics:read, which is ticked by default.
set_analytics_enabled turns collection on and off, and clear_site_analytics erases the whole history. See MCP tools.
Next
- Publish a site explains why nothing is counted before your first publish.
- SEO and AI search covers being found in the first place.
- Add a third-party tracker runs Google Analytics or a pixel alongside this.