Questions & answers

How VitalsDesk measures, what it stores, and what you pay for. If something here isn't answered, the honest version is that we haven't been asked yet — ask and it'll end up on this page.

Getting started

Do I have to list every page I want tracked?
No. You add a domain, and real-user tracking covers every page on it automatically — subdomains included. The only list you maintain is the small set of pages a lab report tests, and we suggest those from your actual traffic.
How long until I see numbers?
The first measurements appear within minutes of your first visitor. Percentiles need a day or two of traffic before they settle down — a p75 over forty visits moves around, a p75 over four thousand doesn't.
What if my site is low-traffic?
That's exactly where this helps most. Google's public field data only exists for sites with enough traffic for it to measure, so a small site gets nothing from it. Your own script starts collecting from the first visit.
My app creates a new URL per session. Won't that be a mess?
It's handled. We look at the shape of each part of a path: ids and hashes get grouped, so /chat/8f3a… and /chat/2b1c… rank as one /chat/* row. Readable slugs like /blog/how-to-make-coffee stay separate, because those really are different pages. You can override either.
Can I track more than one site?
Yes. Your plan sets how many: 1 on Free, 3 on Beginner, 10 on Startup and 20 on Agency. Each website gets its own script, its own pages, its own alerts and its own client-facing dashboard, so an agency can keep one client's data entirely separate from another's. The pageview allowance is shared across all of them rather than being divided up, so a quiet site costs you nothing and a busy one can use what the others do not.

The measurements

Why don't your numbers match Search Console or PageSpeed Insights?
Because they are measuring something different, and both are right. Google's field data is Chrome-only, averaged over a rolling 28 days, and mostly for your whole origin rather than a page. Ours is every browser your visitors actually use — including iOS Safari, which Google's data excludes entirely — and it is current, so a fix shows up tomorrow instead of in a month. Expect our number to differ; if your iPhone traffic is slower than your Chrome traffic, ours will be the higher one, and it is the one your visitors experienced. The dashboard shows both side by side so you can see the gap rather than wonder about it.
What's the difference between real-user data and a report?
Real-user data comes from the script on your site and reflects what your visitors actually experienced. A report is measured from the outside, needs no script, and works on any URL — including sites you don't control. Most people want both: the report is the deliverable, the real-user data is the truth.
Is p75 exact?
The pass/fail split is exact — we store measurements in buckets whose edges sit precisely on Google's thresholds, so "how many visits were Good" is a count, not an estimate. The p75 figure itself is interpolated inside its bucket, which puts it within about 50ms of the true value for LCP. That is smaller than the run-to-run variation of any single measurement, and we never print more precision than the bucket has — you'll see "2.5s", never "2,483ms".
Can you tell me which deploy made my site slower?
Yes, if you stamp the release. Add data-release with your commit SHA to the script tag — one attribute, about 50 bytes on the wire — and each release is compared against the one it replaced, so a regression arrives as "LCP got worse after deploying 2414721" instead of "LCP got worse this week". Google's public data cannot do this at all: it has no concept of a release. Two honest caveats. A verdict needs a full day of traffic on each release, so a Monday-morning deploy is judged Tuesday — this is a next-morning report, not an instant alert. And we will say "not enough data to tell" rather than guess: if the two releases were mostly seen at different times of day, they were seen by different people, and no honest comparison exists.
Does the script slow my site down?
It's a single small file loaded asynchronously, and it sends its measurements with the browser's own background-send API, so nothing blocks your page and nothing delays a navigation. VitalsDesk sells speed; a heavy tracker would be an odd way to do it, so the size is checked automatically on every build.

Privacy and data

What does the script collect?
Timings, and the context needed to make sense of them: the page URL, Core Web Vitals measurements, and which element or script was responsible for the slowest one. Alongside that, the coarse things that explain a difference — country, browser, operating system, device type and connection class.
What does it not collect?
No cookies, no localStorage, no fingerprinting, no cross-site identifier. Nothing that outlives the browser tab: the session id lives in sessionStorage and is gone when the tab closes. No IP address is ever written to our database — the country comes from a header the edge network already added and the address itself is discarded. No form contents, no clicks, no keystrokes, no session recording. We could not build a profile of one of your visitors if we wanted to, because we never hold anything that identifies one.
Do I need a cookie banner for it?
We are not lawyers and this is not legal advice, so check with yours. What we can tell you factually is that the script sets no cookies and stores no identifier that persists beyond the tab, which is the basis on which similar tools are commonly treated as not requiring consent in the EU.
How long do you keep the data?
Per-page metric history is kept for 14 days on Free, 40 days on Beginner, 90 days on Startup and 180 days on Agency, then pruned automatically. If you cancel or move to a smaller plan, the history your previous plan included is kept for 30 more days, so coming back inside that window loses nothing. The recent-visits feed keeps only the newest couple of thousand events — it is a debugging view, not an archive.
How do I delete everything?
Delete the website. Every measurement, page, report and alert belonging to it goes with it, immediately and by database constraint rather than by a cleanup job that might not run. Removing the script stops collection instantly.

Plans and billing

What am I actually paying for?
Real-user pageviews per month across your account: 3,000 on Free, 100,000 on Beginner, 500,000 on Startup and 2 million on Agency. More websites, longer history, more pages tracked, more team seats, and alerts, scheduled reports and the live client dashboard come with the paid plans.
What happens if I go over the pageview allowance?
We keep measuring. Past the allowance we keep one visit in ten instead of all of them, so your percentiles stay accurate with a little more margin for error and your charts never go flat — visit counts will read low until the meter resets on the 1st. Nothing is deleted and nothing switches off. You get an email when you pass 80%, so it isn't a surprise.
What happens if my site has more pages than my plan tracks?
Past the ceiling — 100 pages on Free, 1,000 pages on Beginner, 5,000 pages on Startup and 10,000 pages on Agency — new pages are counted under their route group rather than getting a row of their own. No traffic is lost from your site totals; you lose per-URL detail on the long tail, which is the part nobody ranks by anyway.
How often are my pages lab-tested?
Each lab test is a full Lighthouse run of one page, on mobile and desktop. Plans include 100 a month on Free, 1,000 a month on Beginner, 5,000 a month on Startup and 20,000 a month on Agency. On Free you run them by hand. Paid plans test on a schedule you pick per website, as often as daily on Beginner, every 12 hours on Startup and every 6 hours on Agency. If your schedules need more tests than your plan has left, we spread the rest evenly across the month instead of stopping early.
Is there a trial?
Beginner has a 7-day free trial. A card is required to start it and the first charge of $19 falls automatically the day it ends, so cancel before then if it isn't for you. Free has no trial because it needs none — it is free indefinitely, not a countdown.
How do I cancel?
From the billing page, any time, in one click. Cancelling takes effect at the end of the period you have already paid for rather than immediately, and the history your plan included is kept for 30 days after that — come back inside that window and it is all still there.

For agencies

Can I hand this to my own client?
That's what it's for. Your website gets a live dashboard at its own unguessable link: your logo, your name, current Core Web Vitals, no login and no mention of us. Plus the monthly report as a link you forward and a PDF you attach.
Does my client need an account?
No. The link is the access — anyone you send it to can open it, and nobody else can find it. You can rotate or revoke it whenever you like, and revoking is never gated behind a plan.
Will my client see your branding?
No. Not on the report, not on the live dashboard. They see your logo and your name; VitalsDesk appears nowhere on either.

Try it on your own site

The speed test needs no account and gives you the full analysis of any page. The real-user numbers need one script and start arriving the same day.