One tag, everything.
ninelytics
Analytics, search, speed, uptime, revenue, AI. Hosted. No cookies unless you want them.
Start free7-day trial. No card. Free plan included.

Visitors, everywhere
One map for every site you run. Close to the people on the page, close to the data you already have.
See them live
Who is on the site right now. Pages, devices, and a feed that updates without a refresh.
Down to the city
A map on MaxMind, not a country pie. Drill from the world to a city when you need it.
Share the number
Public links and embeddable widgets. Hand someone the view without handing them the account.
Stop stacking tools
What used to be seven tabs is now one login
Most teams run a site from a pile of free dashboards that do not talk to each other. Ninelytics puts the operator view in one hosted product.
- Google Analytics
- Search Console
- Bing Webmaster
- Uptime monitors
- Core Web Vitals labs
- Stripe dashboards
- A separate AI chat
- Replaced by Ninelytics
The product
Built for people who operate sites, not for ad networks
One script on the page. A real dashboard on the other side. The same account covers a county site, a SaaS marketing page, and a shop.
The morning check, in one screen
Today against yesterday across every site, the last seven days, and the charts you pinned, dragged into the order you read them.

What you get
A full operator stack, not a pageview counter
Privacy-first analytics is the floor. The product is everything you open after you look at the chart.
Traffic
See the visit, not a warehouse
Live visitors, sessions, identified people, channels, campaigns, and AI-assistant mentions. Funnels and goals when a pageview is not the point. Export CSV, Excel, or JSON if someone still wants a sheet.
Search and speed
GSC, Bing, and real vitals in the same login
Queries next to the sessions they produced. LCP, INP, CLS from people, not a lab. Vitals never hit the events meter. New URLs leave the sitemap and go to Google and IndexNow.
Money and uptime
Know it is up. Know it is paying.
Down, slow, SSL, content change. Alerts in the app, email, SMS, Telegram, Slack. Stripe, Polar, Paddle, Lemon, Creem, Dodo on the same chart family. A public status page per site.
Cookieless, or a banner
Daily server-side hash by default. Consent in the same tag if the rest of the site needs it.
Teams and roles
Admin, owner, viewer. Per-site access. Organizations. Optional white-label name and logos.
Share and embed
Public links and widgets. Hand someone the number without handing them the account.
A real API
Keys on /api/v1 and a typed @ninelytics/api-client for native apps.
Leave without a hole
Import GA4, Cloudflare, PostHog, Fathom, Umami, Simple Analytics, or a CSV zip. Live days are never overwritten.
We run the boxes
Hosted. Backups, upgrades, queues. Optional GitHub or GitLab PR that installs the snippet.
AI over your data
An analyst that already has the numbers
Claude, by Anthropic, in a panel next to every page. It reads analytics, Search Console, speed, and Stripe. You are not exporting a CSV into another tab.

Press Ctrl+J on any page. It already sees what you see: the week, the queries, the vitals, and the charges. When it wants to change something, it shows you the change and waits for your yes.
Try asking
- Why did Tuesday drop?
- Compare this week with last week
- Which queries have impressions and no clicks?
- Is mobile LCP the problem?
Anomalies
Spikes and drops in the last 30 days, found from the data, with the day and the size of the change.
Forecasts
Ask about next week and it runs a statistical forecast on the site's own history, not a guess.
Recommendations
What to fix first. High bounce, short sessions, a mobile LCP problem, in plain language.
Metered, honestly
20 to 2,000 messages a month depending on the plan. The meter is visible.
Speed Insights
Core Web Vitals from people, not a lab
Five metrics fire on a page view. We keep a sample and never bill you for them. Charging for vitals would pad every invoice by about half for a number the customer cannot see.
Real Experience Score
A 0 to 100 score from all five vitals at p75. One number, then drill into the page.
Page and device
Find the slow URL. Split mobile from desktop. Fix the one that is actually hurting people.
Native APIs
Uses the browser Web Vitals APIs. Loaded only when you turn Speed Insights on for that site.
Search and indexing
New pages reach Google and Bing without a checklist
Ship the URL. The sitemap changes. We notice, inspect, and submit. You get a per-URL status instead of a spreadsheet of “did we ping this”.
Sitemap poll
Every 6 hours
Diff new URLs
Skip what is already in
Push
Google + IndexNow
Google Indexing API
New URLs go to Google with a 200/day quota and retries. Inspection runs first so you do not burn quota on pages already indexed.
IndexNow
Bing, Yandex, and the rest of the IndexNow network get the same URLs. Batched, no daily cap from our side.
Open Graph checker
See the card a share will render before you ship the page. Less “why is the image missing on Slack”.
Ahrefs Domain Rating
Optional badge when an Ahrefs key is set. Useful as a pulse, not a substitute for doing the work.
Reliability and money
Know it is up. Know it is paying.
Analytics without uptime is a diary. Analytics without revenue is a hobby. Both live on the site, next to the traffic that caused them.
Uptime checks
Down, slow, SSL about to expire, and unexpected content changes. The same worker that drains the rest of the queue.
Alerts where you already are
In-app, email via Resend, SMS via Twilio, Telegram, or a Slack incoming webhook. Set once on the account.
Public status page
Every site can have /status/:id. Hand it to a client instead of “it looks down on my phone”.
Revenue on the same chart family
Stripe plus Polar, Paddle, Lemon Squeezy, Creem, and Dodo. Daily revenue, refunds, charges, customers. Each provider tagged so you can tell them apart.
Leave without a blank chart
Import history. Connect the rest.
Traffic imports write a prefixed source. Re-sync deletes only that prefix. A source never writes a day that already has live tracking or another import, so charts do not double-count. Search Console, Bing, and revenue use their own tables.
Google Analytics 4
LiveUp to 364 days of history. Live days are never overwritten.
Cloudflare Analytics
LiveZone token. Fills empty days. Live tracking wins.
Google Search Console
LiveQueries, clicks, impressions, CTR, position.
Bing Webmaster
LiveSearch insights next to the Google ones.
PostHog
LiveHogQL traffic import for empty days.
Fathom / Umami / Simple Analytics
LiveBring the old privacy tool with you.
CSV archive
LiveA zip of daily CSVs when that is all you have left.
Stripe
LiveRestricted key. Revenue, refunds, charges, customers.
Polar, Paddle, Lemon Squeezy, Creem, Dodo
LiveSame revenue series, tagged per provider.
Sitemap, IndexNow, Google Indexing
LiveNew URLs leave the sitemap and arrive at the engines.
Telegram and Slack
LiveUptime alerts on the account, not a third pager.
Ahrefs Domain Rating
LiveOptional badge when you have a key.
Privacy
No third-party cookies. Consent only if you need it.
We do not sell visitor data, do not share it between customers, and do not build a profile across sites. Exclude /admin/* and it never hits the meter.
Cookieless by default
A daily server-side visitor hash. Nothing stored on the device. Fine for most sites that only need analytics.
Banner in the same script
Turn it on per site. Categories, dark and light, no extra request and no layout shift from a second vendor.
Choices stay on the device
Consent is kept in localStorage and is not sent to us. Reset it from the dashboard or analytics.resetConsent().
You stay the controller
For visitor data you are the controller and we are the processor. The DPA is on this site. Export or delete a site any time.
How it works
Live in the time it takes to deploy a tag
No tag manager required. Works on any host: Next, Astro, WordPress, a static file, a government CMS.
Add the site
Sign up. Paste the domain. You get a tracking code. First account on a fresh instance is admin; here it is just your account.
Drop one script
Under 10kb gzipped, deferred. SPA navigations, sessions, and the consent gate live in that file. Engagement and vitals load only if you turn them on.
Operate from one dashboard
Live visitors, search, speed, uptime, revenue, AI. Import GA or Cloudflare if you are coming from somewhere else.
<script
src="https://dash.ninelytics.com/analytics.js"
data-tracking-code="YOUR_CODE"
defer
></script>Why this, not another counter
GA4 is a warehouse. A privacy clone is a counter. This is the desk.
If you only need page views, plenty of tools will do. If you run sites, you also need search, speed, uptime, and money in the same login.
| Capability | Google Analytics 4 | Privacy analytics only | Ninelytics |
|---|---|---|---|
| Privacy-first page views | No | Yes | Yes |
| Real-time + geo map | Partial | Sometimes | Yes |
| Search Console + Bing | Separate | No | Yes |
| Core Web Vitals (RUM) | No | No | Yes |
| Uptime + public status | No | No | Yes |
| Revenue (Stripe and others) | No | No | Yes |
| AI chat on your data | No | No | Yes |
| Import GA / CF / PostHog / Fathom | n/a | Rare | Yes |
| Sitemap auto-indexing | No | No | Yes |
| Starts at | Your data | $9+ | $0 |
Full table on the compare page.
Pricing
Simple plans. The numbers the product enforces.
Every plan starts with a 7-day trial. No card. Web vitals never count as events. Limits are per account, per calendar month in UTC.
Free
Enough to see whether it fits.
10,000 events / month
- +1 website
- +1 team member
- +20 AI messages
- +30 days of history
Starter
Most usedFor a site that has started to matter.
100,000 events / month
- +3 websites
- +2 team members
- +200 AI messages
- +180 days of history
Growth
A portfolio of sites and a team.
1,000,000 events / month
- +20 websites
- +10 team members
- +600 AI messages
- +2 years of history
Scale
The ceilings come off.
5,000,000 events / month
- +Unlimited websites
- +Unlimited team members
- +2,000 AI messages
- +Unlimited history
On every plan
- +Real-time dashboard and geo map
- +AI chat, forecasts, anomalies
- +Goals, funnels, custom reports
- +CSV, Excel, JSON export
- +Core Web Vitals (never billed)
- +Cookieless mode or consent banner
- +GA4, Cloudflare, PostHog, Fathom, Umami, Simple Analytics import
- +Search Console and Bing
- +Sitemap auto-indexing
- +Uptime checks and status page
- +Stripe and other revenue providers
- +Share links, widgets, API keys
Hit the events cap and collection keeps running for 7 days while the dashboard locks. Data is kept 90 days after an account goes inactive. Paying clears the lock for every site at once.
Questions
The ones worth asking before the tag goes on
What counts as an event?
Do I need a cookie banner?
What happens when I hit my plan limit?
Can I import history from Google Analytics?
Is there a free trial?
Will it slow my site down?
Can I exclude my own traffic?
Whose data is it?
Ready when you are
Put the tag on.
Free plan to try it. Paid plans from $9. Trial is 7 days, no card.



