Netlify Analytics: What It Counts, What It Costs, What It Misses

Netlify Analytics (now called Web Analytics in the Netlify dashboard) is a server-side traffic report built from Netlify’s own CDN logs. You switch it on with one click, add no script, and get pageviews, unique visitors, top pages, top sources, locations, 404s and bandwidth for up to the last 30 days. It is accurate for counting requests and blind to ad blockers, but it has no events, goals or conversions.
This guide covers what it shows, what it costs on today’s plans, exactly how it counts, why its numbers never match Google Analytics, and how to get from “people visited” to “people converted, and here is what that was worth.”
What Netlify Analytics Shows
The dashboard is a single page of charts. Each one answers one question:
| Chart | What it counts | What you can use it for |
|---|---|---|
| Pageviews | HTML pages served, plotted per day (per hour on the 24-hour filter) | Traffic trend, launch spikes, seasonality |
| Unique visitors | Distinct IP addresses per day (per hour on the 24-hour filter) | A rough audience size, not people |
| Top locations | Pageviews by location, on a map | Where your audience is |
| Top pages | Pages with the most pageviews | Which content gets read |
| Top resources not found | Requests that returned a 404 | Broken links, old URLs to redirect |
| Top sources | Referring URLs that sent the most traffic | Which sites and search engines link to you |
| Bandwidth used | Data served by the CDN, per day | Spotting heavy files and usage spikes |
The default view is the last 30 days. You can switch to 7 days or 24 hours and step back with “Previous” to earlier periods inside that 30-day window. Data refreshes hourly, so today’s numbers fill in through the day. In Top pages and Top sources you can click a URL to open it.
How Netlify Web Analytics Works
Instead of a JavaScript tag in the browser, Netlify reads the HTTP requests its CDN already handles for your site. Three consequences follow:
- No performance cost. Nothing is added to the page, so there is no script to download or execute.
- Ad blockers and disabled JavaScript do not matter. The server answered the request either way, so the visit is counted.
- No cookies. Netlify describes the data as collected anonymously, without cookies, and says its server-side collection complies with GDPR. As always, your own privacy obligations depend on your whole site, not one tool.
The trade-off is that a server only knows what was requested. It cannot see clicks, scrolls, form fills that happen in the browser, or anything a visitor does after the page loads.
How to turn it on (and off)
- Open your project in the Netlify dashboard and go to Analytics & metrics, then Analytics.
- Select Enable Analytics. Collection starts from your deploys, and Netlify backfills up to 30 days of history into the charts.
- To stop it, go to the same page, open the Danger zone and select Cancel Web Analytics service. The charts disappear.
Netlify Analytics Pricing on Current and Legacy Plans
Most pages that rank for this topic still quote the 2019 launch price. That is only half the picture now, because Netlify moved new accounts to credit-based plans on September 4, 2025, and the two plan families handle analytics differently.
| Plan | Web Analytics | History you can see |
|---|---|---|
| Free (credit-based) | Included | Current and previous day |
| Personal (credit-based) | Included | Past 24 hours |
| Pro (credit-based) | Included | Past 30 days |
| Starter or Pro (legacy) | Add-on, $9 per site per month | Last 30 days |
| Enterprise | Included | Depends on your contract |
Sources: the credit-based plan limits in Netlify’s docs and the legacy plan comparison, which lists Web Analytics at $9 per site per month as an add-on. Netlify’s usage and billing page adds that the add-on price is affected by your project’s pageviews, so a high-traffic site on a legacy plan can pay more than the base figure. If your account predates September 4, 2025, you are on a legacy plan unless you switched, and Netlify warns that switching to credit-based billing cannot be undone.
Exactly What Counts as a Pageview and a Visitor
The Netlify docs on how web analytics works define the two headline numbers precisely, and the definitions explain most of the confusion people report.
- Pageview: a response with
Content-Type: text/htmland a status of 200, 201 or 304. Errors, redirects and non-HTML files (images, scripts, text files) are not counted. - Unique visitor: a distinct IP address. On the daily charts, an IP that returns on three different days counts once per day. On the 24-hour filter, it counts once per hour.
- Total unique visitors for a period counts each IP once across the whole range, so it is usually lower than the sum of the daily values.
Worked example: why the daily bars do not add up (illustrative)
Say the same three IP addresses visit over three days. A visits on Monday and Tuesday, B on Tuesday, and C on Monday, Tuesday and Wednesday. The daily chart shows Monday 2, Tuesday 3, Wednesday 1, a sum of 6. The total for the period is 3, because there are only three distinct IPs. Neither number is wrong: they answer different questions.
What an IP-based visitor count gets wrong
- Shared IPs undercount. Everyone in one office, school or household behind the same address can look like a single visitor.
- Changing IPs overcount. One person reading on office Wi-Fi in the morning and on mobile data at night is two visitors.
- Single-page apps lose pageviews. In a React, Vue or Next.js site that navigates client-side, only the first HTML load reaches the server. Later route changes are rendered in the browser, so Netlify never sees them as pageviews. A content site built as static HTML pages does not have this problem.
- Automated traffic is an open question. A server-side counter sees requests from crawlers and scripts that would never run a JavaScript tag. Netlify’s Web Analytics docs do not describe a bot filter, so do not assume one. Netlify’s separate Observability dashboard explicitly includes bots.
What Netlify Analytics Cannot Do
Compared with a client-side tool, these are the gaps you will hit first:
- No history beyond 30 days in the dashboard, and less on Free and Personal plans.
- No bounce rate, engagement, time on page or scroll depth, because the server never sees the visitor after the response.
- No segmentation: you cannot filter by page, see the sources for one page, or compare two date ranges side by side.
- No user agents, devices or browsers. Netlify support staff confirmed on its forum that user-agent details are not in Analytics.
- No events, goals, funnels or revenue.
- No way to see who a visitor was. That is by design, and true of any privacy-respecting analytics.
Campaign tags and AI assistants
Top sources lists referring URLs, so a link from google.com, a blog or Hacker News shows up by domain. Two common traffic types do not:
- UTM-tagged campaigns. The dashboard has no campaign report, so
utm_source=newslettervisits only appear under their referrer, or as no source at all when the email client strips it. - AI assistants that send no referrer. Visits from ChatGPT, Perplexity and others appear as a source only when the browser passes a referrer. When it does not, the visit has no source and blends into what other tools call direct traffic. Our guide to tracking ChatGPT referral traffic covers what is and is not measurable.
Why Netlify Analytics and Google Analytics Never Match
Expect a gap, often a large one. Netlify’s support forum has several threads from people comparing the two. The causes push in different directions:
| Cause | Which tool shows more | Why |
|---|---|---|
| Ad blockers and privacy browsers | Netlify | They block the GA4 script; the server still answers the request |
| Declined cookie banner | Netlify | GA4 sends no or limited data without consent; Netlify reads server logs |
| Crawlers and scripts | Netlify (likely) | They fetch HTML but rarely run JavaScript, and Netlify documents no bot filter |
| Single-page app navigation | GA4 | GA4 can count history changes as page views; Netlify only sees the first HTML request |
| Visitor definition | Either | Netlify counts IPs per day; GA4 counts browser identifiers stored in a cookie |
| Time zone of the report | Either | A day boundary in a different zone shifts traffic between days |
A practical rule: use Netlify to answer “how many requests for real pages did we serve,” and use a client-side tool to answer “what did people do once they arrived.” Do not average the two.
Can Netlify Analytics Track Conversions?
Not directly. There are no events or goals. There is one workaround if you use Netlify Forms: give the form a custom success page with the action attribute, and every completed submission produces an HTML pageview of that page.
<form name="contact" method="POST" data-netlify="true" action="/thanks">
<!-- your fields -->
</form>Now /thanks appears in Top pages, and its pageview count is a rough count of form completions. Netlify’s Forms docs describe this setup; forms submitted with AJAX need their own redirect or success message instead.
Worked example: from thank-you pageviews to lead value (illustrative)
The method for picking those inputs is in our guide on how to calculate conversion value. The number is useful, but notice what it cannot tell you: which landing page the 42 people entered on, and whether they came from Google, Bing, ChatGPT or a newsletter. Netlify reports pages and sources in separate lists that never join, and the thank-you page has no source of its own because the visitor arrived there from your form. Refreshes and direct visits to /thanks also inflate it.
That join, conversions and value by landing page and channel, is the question most site owners actually have, and it needs a tool that follows the visit from entry to submission. SEOConversion is one option built for that: a single script that autocaptures form submits and reports conversions and their value by landing page for organic search and AI assistants. Our SEO conversion tracking guide explains the method with any tool.
Keeping More Than 30 Days of Data
Netlify does not offer an official export for Web Analytics. The dashboard loads its charts from an internal analytics API, and some developers have scripted it with a session token to save daily numbers locally. It is undocumented and unsupported, so it can break without notice. Safer options:
- Write the monthly totals for pageviews, visitors and your top pages into a spreadsheet before they roll out of the window.
- Run a second analytics tool that stores history, and treat Netlify as the ad-blocker-proof cross-check.
- On Enterprise, use log drains to send raw request logs to your own storage or logging service.
Web Analytics vs Observability vs Real User Monitoring
Netlify has three dashboards that sound alike. They answer different questions:
| Netlify feature | Data source | Answers |
|---|---|---|
| Web Analytics | CDN logs, HTML pageviews only | How much traffic, to which pages, from which referrers |
| Observability | All raw HTTP requests, including bots, errors and redirects | Why is this slow or failing, which functions ran, cache status |
| Real User Monitoring | A script Netlify injects into production pages | Core Web Vitals (LCP, INP, CLS) from real visitors, by deploy |
For error tracking, logs or uptime alerts, Netlify’s monitoring and analytics integrations catalog lists third-party tools such as Datadog, New Relic, Sentry, SpeedCurve and DebugBear. None of them replace a traffic or conversion report; they watch the site’s health.
Alternatives and Add-ons for Netlify Sites
| Option | How you add it | Best at | Watch out for |
|---|---|---|---|
| Netlify Web Analytics | Enable in the dashboard | Ad-blocker-proof page and source counts | 30 days max, no events or conversions |
| Google Analytics 4 | Snippet injection or your site template | Free, long history, key events, ads and Search Console links | Blocked by ad blockers, needs consent where required |
| Simple Analytics | Netlify extension in the integrations catalog | Cookieless dashboard, one-click install | Separate subscription |
| Fathom Analytics | Script via snippet injection | Cookieless dashboard, events | Separate subscription |
| Conversion tracking tool | One script | Conversions and value by landing page and channel | Another script to maintain |
To add any script-based tool without touching your code, use Netlify’s snippet injection setting (under post processing in your project configuration). It inserts the snippet before </head> or </body> when pages are served. It does not reach proxied routes or routes handled by functions, so server-rendered pages need the tag in your own templates. If you weigh privacy tools against GA4, our guide to cookieless tracking explains what changes when a tool drops cookies.
Is Netlify Analytics Worth Using?
- Yes, as a cross-check, if you are on Pro: it is already included, costs nothing in page speed, and shows traffic that script-based tools miss.
- Yes, for 404 hunting. Top resources not found is one of the quickest ways to find broken links after a migration.
- Think twice on a legacy plan if you need history, segments or conversions. The add-on fee buys none of those.
- Not on its own if your site exists to produce leads or sales. You need conversions tied to landing pages and channels, which Netlify does not report.
FAQ
How much does Netlify Analytics cost?
It depends on your plan type. On the current credit-based plans, Web Analytics is part of the plan: Pro shows the past 30 days, Personal the past 24 hours and Free the current and previous day. On legacy Starter and Pro plans it is an add-on listed at $9 per site per month, and Netlify notes the add-on price depends on pageviews.
Is Netlify Analytics free?
There is a free slice of it: the credit-based Free plan shows Web Analytics for the current and previous day. Anything longer needs a paid plan, with 30 days on Pro. If you need free long-term history, add Google Analytics 4 through snippet injection alongside it.
Can Netlify Analytics show who visited my website?
No. It counts pageviews and unique IP addresses and shows top pages, sources and locations, but it never identifies a person or a company. Netlify staff confirmed on the support forum that user-agent details are not available in Analytics either. No privacy-respecting analytics tool will name individual visitors.
What is Netlify, and is it legitimate?
Netlify is a cloud platform for building, deploying and hosting websites and web apps, with serverless functions, forms and a global CDN. It is an established company that earns money from paid plans, usage credits and Enterprise contracts, while keeping a free plan. Its Web Analytics is a first-party feature that reads Netlify’s own server logs.
What are the downsides of using Netlify for analytics?
History is short (30 days at most on Pro), there are no events, goals, bounce rate or time on page, sources cannot be broken down per page, and unique visitors are counted by IP address. Client-side route changes in single-page apps are not counted as pageviews. It is a traffic counter, not a conversion or attribution tool.
Which is better for analytics, Netlify or GitHub Pages?
Netlify, if you only compare built-in options: it has a server-side Web Analytics dashboard, while GitHub Pages sites rely on a script you add, such as GA4. GitHub repository traffic insights describe visits to the repository on github.com, not to your Pages site. Either way, you still need a separate tool if you want conversions and revenue by landing page.
Netlify counts the visits. See which pages convert.
SEOConversion adds one script to your Netlify site, autocaptures form submits and high-intent clicks, and reports conversions and their value by landing page for organic search and AI assistants.
Start free