Your plan's traffic step is a limit on events per month, not on visitors. This page says exactly what is counted and what is not.
What is counted
| Thing | Counts |
| A page load | 1 event |
| An in-app navigation in a single-page app | 1 event each |
| A custom goal event | 1 event |
| A scroll event | 1 event |
| An outbound link click | 1 event |
| A file download | 1 event |
| An AI or search crawler fetching a page | not an event — see below |
A fetch of llms.txt or another machine-readable surface | 1 event |
Outbound clicks and downloads are recorded without you tagging anything — see What the script counts on its own. A site with many outbound links will use its allowance faster than its page-view count alone suggests.
What is not counted
| Thing | Why |
| A page view from an excluded path | Never stored |
| A page view from an excluded IP | Never stored |
| A page view from an excluded country | Never stored |
| A page the browser loaded ahead of the click | Never sent — see below |
| A visit from a browser with the ignore flag set | Never sent |
A view on localhost without data-allow-localhost | Never sent |
| A visitor with an ad blocker | Never reaches us |
| A rejected event — bad name, oversized payload | Not stored, so not counted |
| A dashboard load, an API call, an export | Reading is free |
Pages the browser opens before the visitor does
Browsers load a linked page ahead of time so it appears instantly if the visitor clicks. Sometimes they go further and render it — Chrome describes this as an invisible background tab, which means your page runs, scripts and all.
Those are not visits, and we do not count them. The script waits until the page is actually shown before recording anything. If the visitor then clicks and the page becomes visible, that is a real visit and it is counted normally.
Nothing to configure. It matters because the alternative is a page-view count inflated by clicks nobody made, a bounce rate computed from them, and an event allowance spent on visits that never happened.
Excluded traffic is genuinely free. Path, country and IP exclusions are applied before the row is written, so an excluded view never enters the counter. That makes exclusions a real cost lever, not a display preference — if a large share of your traffic is your own admin area, excluding it directly reduces your usage. See Excluding your own visits.
Crawler traffic has its own allowance
AI and search crawler views are not counted against your plan's events. They are metered separately, against an allowance that is the same on every plan.
The reason is that you do not choose it. How often GPTBot or ClaudeBot fetches your pages is their decision. Crawler volume follows how many pages a site has rather than how popular it is, so the share varies enormously: across our own sites, one was 91.5% crawler over thirty days and another 0%. A small site can easily see more crawler views than human ones. Charging your plan for that would mean charging you for somebody else's behaviour.
They are still recorded. Other analytics products discard crawler hits as they arrive, which is why crawler traffic costs them nothing — and why they can never show you which assistants read your site. A hit that was never written cannot be reported later. See Why other analytics tools cannot show you this.
When the crawler allowance runs out
Crawler collection pauses until your next period. Your site analytics are unaffected — human events keep being collected, your dashboard stays open, and nothing about your plan changes.
What you lose is the crawler data for the rest of that period, and it cannot be recovered afterwards. That is why the warning arrives at 80%, and why you can add more if you need it. The allowance is deliberately generous: our busiest site uses under a fifth of it.
Adding more
A crawler pack adds 1,000,000 crawler events a month. You buy it from your billing page, and it is billed on the same cycle as your plan: $5 a month on monthly billing, or $60 a year on annual. Several packs can be added, and each one adds another million a month.
It appears on your existing invoice rather than as a separate charge, on the same renewal date. The first one is prorated, so you pay only for the part of the period that is left.
Removing a pack keeps the allowance until the end of the period you have already paid for — crawler visits refused after it runs out are never recorded, so the allowance is not withdrawn the day you cancel.
Packs are available once your trial converts to a paid plan. The included allowance is five times what our busiest site uses, so a trial is very unlikely to reach it.
What single-page apps cost
A visitor moving through five routes generates five events. Their session is one visitor and five page views, and your quota sees five.
That is the same accounting every analytics product uses, but it is worth stating, because SPA traffic can be several times the event count you would estimate from page loads.
Navigations are debounced at 100 ms, so a router calling replaceState
immediately after pushState is one event, not two. See
Single-page apps.
Checking your usage
Your billing page shows events used against your limit for the current period, and when the period rolls over.
The meters update while the page is open, so a spike is visible without a reload. The API's usage endpoint returns the same numbers if you would rather watch them from your own tooling — see Endpoint reference.
Reducing your usage
In order of how much each typically saves:
Exclude your admin area and any staging paths. Free, and often the largest single reduction.
Exclude your own IP, or set the ignore flag in the browsers you use to check the site.
Check for a double install. Two tags on one page doubles every number, including your usage. See Duplicate events.
Reconsider scroll tracking on long pages. Each tracked element fires once per page visit, so a page with ten tracked sections can cost eleven events per visitor.
The period
Your event count resets at the start of each billing period, which runs from your subscription date rather than from the first of the month. Your billing page shows the exact boundary.