Tailkits product guide

PostHog

Analytics suite with replays and flags; 1M free events a month, billed by event

FreemiumAnalytics
Visit PostHog
Pricing
Freemium
Categories
Analytics
Listed
Sep 2026
Updated
Oct 2026

Details about PostHog

Short verdict: Of the six analytics tools we compared, PostHog is the only one that adds feature flags, experiments and surveys to a traffic dashboard. It is also the only one whose free cloud plan includes session replay. That plan covers 1,000,000 events a month with no card and no time limit. The catch is that PostHog bills events, not pageviews. Its default page-leave event doubles the count, so 1 million pageviews costs about $50 a month, or $60 with web vitals. Sites under roughly 300,000 pageviews usually pay nothing. It suits product teams who want funnels and replays next to their traffic numbers. It is the wrong pick for a content site that wants a small, cookie-free script: it downloads about 104 KB and sets a 365-day cookie unless you enable cookieless mode.

How we reviewed it: We did not create an account or send data to PostHog. On 21 October 2026 we loaded its documented snippet on a test page in headless Chromium with every outgoing request blocked, so nothing reached PostHog, and recorded what it downloads, stores and tries to send. The script ignores browsers that report automation, so we masked that flag. We also used the pricing calculator and read the docs, the demo page and 90 days of the status page. We did not test the logged-in dashboard, count accuracy, imports or support. Prices are monthly in USD.

What PostHog costs and includes

Free plan1,000,000 events a month, shared by web and product analytics, plus 5,000 session recordings and 1,000,000 feature-flag requests. 1 project, 1 year of data. Events over the limit are dropped.
Trial and cardNo trial needed and no card for the free plan. A card unlocks paid usage and more projects.
10,000 pageviews$0
100,000 pageviews$0
1,000,000 pageviews$0 for pageviews alone (exactly the free 1M events). With the default page-leave event: 2M events, $50. With web vitals as well: about 2.3M events, $60.
What is billedEvents: pageviews, page-leaves, autocaptured clicks, web vitals and custom events. $0.00005 per event from 1M to 2M, falling to $0.000009 above 250M. Events from identified users cost $0.000198 more in the first paid tier.
Paid planPay-as-you-go, $0 base: the same free allowance, 6 projects, 7 years of data, email support and a dollar billing limit for each product
HostingUS (Virginia) or EU (Frankfurt) cloud, chosen at sign-up. PostHog Inc. is a US company.
Cookies (our test)1 first-party cookie, ph_<token>_posthog, 365 days, plus localStorage and 3 sessionStorage keys. Cookieless mode is optional.
Script (our test)About 104-106 KB compressed depending on encoding, 335 KB uncompressed
Self-hostingMIT "hobby" Docker Compose deploy on one machine (PostHog asks for 4 vCPU and 16 GB RAM), without support
API and MCPQuery API (SQL), a web analytics API and a hosted MCP server that is free to connect. PostHog pricing

What we found in PostHog's pricing, script and docs

One million pageviews is not one million events

PostHog's JavaScript SDK records a $pageleave event for each pageview unless you turn it off. The docs say bounce rate needs both page-leave and autocapture events. Web vitals are billed as normal events, and PostHog puts their volume at about 30% of pageviews. Autocaptured clicks add more; heatmap data is free.

Events a monthExample at 1M pageviewsAnonymous visitorsAll visitors identified
1MPageviews only$0$0
2MPlus page-leave (default)$50.00$248.00
2.3MPlus web vitals$60.29$279.20
3.3MPlus about 1 click per pageview$94.59$383.20

The calculator showed $60, $95, $248 and $279 for four cells; the rest is our arithmetic from published rates. At 100,000 pageviews, even 3.3 events per pageview stays inside the free tier.

PostHog pricing calculator with 0 identified and 2.3M anonymous events a month, anonymous events at $0.00005 each after the first 1M, estimated total $60 a month
2.3 million anonymous events (1 million pageviews with page-leave and web vitals): $60 a month. At 1 million events it shows "Free".

The SDK keeps visitors anonymous until your code calls identify(). After that, each of their events costs $0.000248 in the first paid tier instead of $0.00005. PostHog's docs say anonymous events are "up to 4x cheaper". Its web analytics pricing page says "10x less". The published rates give 4.96x from 1M to 2M events and about 3x from 2M to 15M.

What the script does on a page

The snippet loads us-assets.i.posthog.com/static/array.js. It is 334,623 bytes uncompressed and 105,631 (gzip) to 106,040 (Brotli) bytes on the wire. PostHog's comparison table on its web analytics page lists 56.8 KB. Before any event, the script requested a remote config file and posted to /flags with a generated anonymous ID, a device ID, the timezone and the library version. With those calls blocked it sent no pageview within 15 seconds, so we can't describe its pageview payload. PostHog's config docs say the snippet's default settings track single-page-app route changes. The SDK also drops known bot user agents in the browser.

Cookieless mode exists, with trade-offs

PostHog's GDPR guide says to show a cookie banner if you use PostHog with cookies for logged-out visitors. The alternative is cookieless_mode, which you enable in the project settings as well as in code. With "always", PostHog counts visitors with a server-side hash of IP address, user agent and hostname plus a salt it says it deletes daily. With "on_reject", it uses cookies after consent and the hash after a refusal.

PostHog cookieless tracking docs, Limitations section: higher user counts, hash collisions, session replay and surveys disabled, cache delays, and no GeoIP or bot detection so the world map shows no data
PostHog's own list of what cookieless mode costs, including the world map.

A traffic dashboard inside a product suite

Web analytics is one fixed dashboard. It shows visitors, pageviews, sessions, duration, bounce rate and LCP against the previous period. Reports cover pages with scroll depth, entry and exit pages, outbound clicks, channels (including AI assistants since July 2026), UTMs, a world map, devices and goals. A Live tab is still labeled alpha. The same events feed funnels, SQL, replays, heatmaps (3 pages on the free plan), flags, experiments and surveys. Stripe revenue analytics is a free beta.

The MCP server is hosted, free to connect, and has a read-only mode. Its tools reference lists more than 1,000 tools, 17 of them for web analytics. Some tools spend PostHog AI credits: 500 free a month, then $1 per 100.

No live demo, and the fine print

There is no public live dashboard; the Demo page is an 8-minute 49-second video. The Markdown version of the pricing page puts the Enterprise package at $2,000 a month, while the platform packages page says custom pricing. PostHog says its single-machine self-hosted deploy is "unlikely to scale past a couple 100ks events". It comes with no support, and paid features are Cloud-only.

Script weight, privacy and reliability

ToolCompressedUncompressedMain-thread time (4x CPU)CookiesWeb storage
PostHog104 KB335 KB285 ms1, 365 dayslocalStorage and sessionStorage
Google Analytics 4153-156 KB443 KB216 ms2, 400 daysnone
Umami2.4 KB4.8 KB11 msnonenone
Plausible1.3 KB2.8 KB15 msnonenone

Main-thread time is the median of 5 cold loads in headless Chromium 141. PostHog used the most of the six tools, roughly 19 to 26 times Plausible or Umami. PostHog's troubleshooting page argues that PageSpeed scores overstate the cost of its asynchronous script. Whether you need a consent banner depends on your jurisdiction and setup; we are not giving legal advice.

For the 90 days to 21 October 2026, PostHog's status page showed event ingestion at 100.00% in the US and EU and the US app at 99.988%. Its feed lists 29 resolved incidents since 23 July. Those affecting web analytics were partial app outages on 2, 17, 20 and 25 August and 30 September, and query timeouts on 2, 10 and 30 September.

PostHog US Cloud status, 24 July to 21 October 2026: App 99.988% uptime, event ingestion success and lag 100.00%, session replay ingestion, logs and feature flags API 100.00%
US Cloud over 90 days: ingestion at 100% and a few partial app outages.

posthog-js 1.438.13 shipped on 20 October 2026, its 10th release in 12 days. It had 18,932,642 npm downloads in the week of 28 September to 4 October 2026 and is licensed Apache-2.0 and MIT. The main repository has 40.4k GitHub stars.

What you still have to set up

  • Consent. With cookies, PostHog recommends loading the SDK opted out (opt_out_capturing_by_default: true) and calling opt_in_capturing() from your banner. Cookieless mode needs switching on in code and in the project.

  • A billing limit. Set a dollar limit for each product. Data past the limit is dropped, and owners get emails at 80% and 100%.

  • A reverse proxy. The managed proxy is free: you point a CNAME from a neutral subdomain at PostHog. PostHog says a proxy typically captures 10-30% more events. It runs through Cloudflare.

  • Goals and your own visits. Track explicit events such as user_signed_up for goals. File downloads have no report of their own. Set the internal-user filter in each project.

  • Imports. Google Analytics history takes a BigQuery export, a script and a paid plan.

Pros and cons

Pros

  • 1,000,000 free events a month with no card, so 10,000 and 100,000 pageviews cost $0.

  • Web analytics, funnels, replays, heatmaps, flags and surveys from one script and one bill.

  • US or EU (Frankfurt) cloud, a self-serve DPA on the free plan, and SOC 2 Type 2.

  • Published per-event rates, a calculator and billing limits for each product.

  • A free hosted MCP server with a read-only mode.

Cons

  • Per-event billing: page-leave and web vitals turn 1 million pageviews into $50-60, and identified users cost several times more.

  • The most main-thread time in our test (285 ms) and about 104 KB of script.

  • A 365-day cookie by default; cookieless mode loses the world map and bot detection.

  • No public live demo, and the Live tab is still alpha.

  • Contradictory vendor figures: the anonymous-event discount, the Enterprise price, and a 56.8 KB script claim.

How PostHog compares

  • Plausible costs $9 for 10,000 pageviews, $19 for 100,000 and $69 for 1 million. It sets no cookies, its script is 1.3 KB, and it hosts data only in the EU. PostHog is cheaper at 10,000 and 100,000, and at 1 million pageviews while the total stays under about 2.5 million events. Choose Plausible for a cookie-free script and EU-only hosting.

  • Umami Cloud is free at 10,000 pageviews. At 100,000 it is free on Hobby, exactly at the cap, or $20 on Pro once you track custom events. It costs $20 at 1 million. It sets no cookies, loads 2.4 KB, and can be self-hosted under MIT with replays and heatmaps.

  • Google Analytics 4 is free at all three volumes. It downloads more (about 153 KB) and sets 2 cookies, but uses less main-thread time. It has no EU-only storage, while PostHog's EU cloud stores data in Frankfurt.

See all analytics tools, including DataFast and Fathom.

Who should use PostHog

Use PostHog if you build a product and want traffic, funnels, replays and feature flags on one bill. At 1 million anonymous pageviews expect $50-95 a month, depending on what you capture. Look elsewhere if you only count pageviews on a content site, want no cookies or consent work by default, or care about every kilobyte. Plausible, Umami and Fathom load 1.3 to 2.4 KB.

FAQ

Is PostHog free?

Yes. The free plan includes 1,000,000 analytics events, 5,000 session recordings and 1,000,000 feature-flag requests a month, with no card and no time limit. It allows 1 project and keeps data for 1 year. Events over the limit are dropped, not billed.

How much does PostHog cost for 1 million pageviews a month?

Between $0 and about $95 a month for anonymous visitors, depending on what you capture, as of 21 October 2026. Pageviews alone are exactly the free 1,000,000 events. The default page-leave event doubles that to 2 million events ($50), web vitals bring it to about 2.3 million ($60), and click autocapture can push it to about 3.3 million ($95). If all visitors are identified, 2.3 million events cost $279. At 10,000 and 100,000 pageviews PostHog costs $0.

By default PostHog sets a 365-day first-party cookie, and its GDPR guide says to show a cookie banner to logged-out visitors when you use cookies. PostHog says its cookieless mode needs no banner unless something else on your site uses cookies, but that mode loses the world map, bot detection, replays and surveys for visitors without consent. The answer depends on your jurisdiction and setup; this is not legal advice.

Can PostHog keep data in the EU or be self-hosted?

Yes to both, with limits. PostHog Cloud EU stores data in Frankfurt; you choose the region at sign-up, and a DPA is available on every plan including the free one. The self-hosted hobby deploy is MIT-licensed and runs on one machine. PostHog says it is unlikely to scale past a couple hundred thousand events, and it offers no support for it.

Can I import Google Analytics data into PostHog?

Yes, but not in one click. PostHog's guide exports GA4 data to BigQuery, converts it with a Python script and captures it as historical events. That needs a paid plan, although PostHog says historical imports themselves are free.