The short answer
Use Google Analytics 4 when your growth runs through Google: it links to Google Ads and Search Console at no cost, and most marketers already know its reports. Use PostHog when you need to see what people do inside a product: funnels by user, session replay, feature flags and experiments in one project. A company with a marketing site that buys Google traffic and a product people log into usually needs both, wired so they never count the same lead twice.
Neither tool is your record of revenue. Leads, sign-ups and payments belong in the database or CRM that stores them, and both tools should receive those outcomes from your server. That's how we build an analytics setup, and it's how dardo.studio runs: GA4 and PostHog side by side, behind one privacy choice. Prices and limits below were checked on 14 October 2026.
What each tool measures
GA4 is built around acquisition. Its enhanced measurement records page views, scrolls to 90% of a page, outbound clicks, site search, YouTube engagement, file downloads and form starts and submissions without extra code. The standard reports answer where visitors came from and which channels produced key events. Deeper questions go into explorations, and a standard property has hard limits: 30 key events, explorations sampled above 10 million events per query, and event-level data kept for 2 or 14 months (Google Analytics Help).
PostHog is built around the person and the session. Its JavaScript SDK autocaptures clicks and page views, and the same project adds a web analytics dashboard, product funnels, retention, session replay, feature flags, experiments, surveys and error tracking. You can query the raw events with SQL inside the app.
The sharpest difference is identity. Google's policy forbids sending GA4 anything Google could recognise as personally identifiable information, email addresses included. PostHog lets you identify a logged-in user and attach properties to a person profile, which B2B product analytics needs, and which makes consent and your data processing agreement matter more.
| Area | GA4 standard | PostHog Cloud |
|---|---|---|
| Price | No license fee; Analytics 360 is sold by contract | Free monthly allowance, then priced per unit |
| Free allowance | No usage billing | 1M events, 5,000 recordings, 1M flag requests a month |
| Event data kept | 2 or 14 months for explorations | 1 year on the free plan, 7 years on pay-as-you-go |
| Session replay | None | Kept 1 month free, 90 days on pay-as-you-go |
| Feature flags and experiments | None since Google Optimize closed | Included, billed per flag request |
| Search Console | Native link with two reports | Data warehouse source, synced as rows |
| Google Ads | Native link: key events and audiences | Cost import; experimental conversion export |
| Where data lives | Google's servers, no region choice | US (Virginia), EU (Frankfurt) or self-hosted |
| Personal data | Not allowed | Allowed in person profiles |
Sources: Google Analytics Help, PostHog pricing and docs, 14 October 2026.
Privacy, consent and who holds the data
GA4 keeps your data on Google's infrastructure, and you can't choose a storage region. For visitors in the EU, Switzerland and the UK, Google says it collects data through in-region servers, uses the IP address only to derive a coarse location and doesn't log or store it (Google Analytics Help). Consent runs through consent mode: in basic mode, Google tags send nothing until the visitor agrees; in advanced mode, they send cookieless pings when consent is denied (Google for Developers).
The catch for smaller sites is modeling. GA4 estimates the behavior of visitors who decline only when a property sends at least 1,000 events a day with analytics storage denied for 7 days, has at least 1,000 daily users who accepted on 7 of the last 28 days, and uses advanced consent mode on the web (Google Analytics Help). Below that, visitors who decline simply aren't in your reports.
PostHog lets you choose where the data sits: its US cloud in Virginia, its EU cloud in Frankfurt or your own server. The self-hosted version is a free Docker Compose deployment under the MIT license, without support and limited to free-plan features. PostHog also has a cookieless mode that counts visitors with a hash calculated on its servers and stores nothing in the browser, either always or only after a visitor rejects cookies (PostHog docs). Replay masking runs in the browser: form inputs are masked by default, ordinary page text isn't.
Both tools can be served from your own domain. PostHog documents a reverse proxy that it says typically raises event capture by 10 to 30% (PostHog docs), and Google offers Google tag gateway for the same purpose. Ours is a Cloudflare Worker on dardo.studio that strips cookies and authorization headers and sends nothing on when a visitor has opted out or sends Global Privacy Control or Do Not Track. Recovering events that blockers drop is a deliberate choice, so we honor those signals at the relay. None of this is legal advice: your counsel sets the consent policy.
What each costs at realistic volumes
Standard GA4 has no license fee. Analytics 360 raises the limits under a contract; Google doesn't publish its price, and third-party figures vary too widely to repeat. GA4's costs are indirect: BigQuery storage and queries if you export raw events (a standard property's daily export is capped at 1 million events), and the time it takes to keep tags and consent correct.
PostHog's free plan needs no card and stops collecting at the free limits. Pay-as-you-go keeps the same monthly allowance, bills each product per unit above it, gets cheaper with volume and lets you cap spending product by product (PostHog pricing). Two details move a PostHog bill most. Anonymous events, the default on a marketing site, cost less than identified events, which carry a surcharge for the person profile (PostHog docs). And replay is billed per recorded session, so the sample rate is a budget setting.
PostHog's published tiers, applied to three typical situations:
| Situation | Monthly usage | PostHog | GA4 standard |
|---|---|---|---|
| Small B2B marketing site | 300,000 anonymous events, 5,000 replays | USD 0 | USD 0 |
| Busy marketing site | 3M anonymous events, 40,000 replays (one session in five) | About USD 222 | USD 0 |
| SaaS product with logged-in users | 3M identified events, 20,000 replays, 2M flag requests | About USD 520 | USD 0, with no replay or flags |
Our estimates from PostHog's pricing page on 14 October 2026, before tax. The SaaS line is USD 352 for events (USD 84.30 at the base rate plus USD 267.70 for person profiles), USD 67.50 for replay and USD 100 for flags.
A spending cap is a safeguard with a cost: once a product reaches its cap, PostHog stops ingesting and the extra data is lost, not queued. We run every PostHog product on our own site with a zero-dollar cap, which suits a studio site and wouldn't suit a product whose experiments need complete data.
Replay, flags and experiments: PostHog's side
GA4 has no session replay. If replay is all you're missing, Microsoft Clarity is free, has no traffic limits and integrates with Google Analytics. PostHog's advantage is that replay, funnels and errors share one set of events, so a drop in a funnel opens into the sessions behind it.
Replay costs something on the page as well as on the bill. On dardo.studio, which has 3D artwork, recording the 3D canvases made a 15-second homepage replay upload about 920 KB, and one Safari visit recorded 7.3 MB in 8 seconds. With canvases excluded, the same replay is about 96 KB. On a phone with its CPU throttled four times, replay added about 0.2 seconds of main-thread blocking per 15 seconds, while production A/B runs showed no change in Largest Contentful Paint or frame rate. We kept replay and dropped the canvases. Our guide to passing Core Web Vitals covers measuring scripts with field data.
Feature flags are billed per request to PostHog's flags endpoint, not per flag. The browser SDK makes a request when it loads, when a user is identified and when flags are reloaded, and PostHog's own estimate is requests per page view multiplied by monthly page views (PostHog docs).
Experiments need realistic expectations. GA4 has had no built-in testing since Google Optimize closed on 30 September 2023, and Google points to integrations with AB Tasty, Optimizely and VWO instead (Google Optimize Help). PostHog includes experiments with its flags, but no tool makes a small sample conclusive. A standard power calculation at 80% power and 5% significance needs about 13,800 visitors per variant to detect a lift from a 2.0% to a 2.5% conversion rate.
Our own rule is not to launch a test until the baseline has at least 50 real conversions and the calculation shows it can finish within six weeks. Our site hasn't reached that bar, so we haven't run one there. On low-traffic sites, a UX audit or recordings reviewed against a clear hypothesis usually teach more than an underpowered test, and conversion rate optimization decides when testing is worth the traffic.
SEO and ads: GA4's side
GA4's Search Console link adds two reports: Google search queries, and organic landing pages with metrics from both tools. Know the limits: one web stream links to one Search Console property, the data arrives 48 hours late and reaches back 16 months at most, Search Console metrics combine only with landing page, device and country, and the report collection stays unpublished until you publish it from the Library (Google Analytics Help).
The Google Ads link is the stronger reason to keep GA4. It turns GA4 key events into Google Ads conversions, brings Ads data into GA4 within 48 hours, and lets you re-engage visitors through audiences, which also requires Google signals or user-provided data collection (Google Analytics Help).
PostHog can read both sources but doesn't close the loop. It syncs Search Console performance data daily into warehouse tables by query, page, country and device, but Google's API returns about 50,000 rows per property, day and dimension set, so a large site loses its long tail (PostHog docs). It imports Google Ads cost reports into a marketing analytics dashboard that is still in beta, and sending conversions back to Google Ads exists only as an experimental destination PostHog doesn't officially support (PostHog docs). If your Google Ads bidding depends on conversions, keep GA4 or the Google Ads tag as that feed. For organic search, Search Console itself remains the source, and our SEO work starts there.
Running both without double counting
Running both costs nothing extra at small volume. The risk is two tools telling two stories. The rules we follow:
- One event dictionary, two destinations. Each event has one name and one definition, sent to both tools, so a lead in GA4 and a lead in PostHog mean the same thing.
- Count conversions on the server. On dardo.studio an inquiry reaches PostHog only after our database stores it, and the GA4 lead event fires only after the server confirms that same inquiry. Our analytics setup service explains the pattern.
- One privacy control for both. A footer setting turns GA4, PostHog or replay off, and Global Privacy Control, Do Not Track or a saved refusal stops both scripts from loading. That default suits our mostly American audience; a site with significant European traffic gets a consent-first setup.
- One source of truth per question. We read journeys and friction in PostHog, search queries in Search Console and inquiries in our own database. Our GA4 property runs with advertising storage denied and Google signals off, so it can't build remarketing audiences. That's deliberate while we don't run ad campaigns.
- Write down the expected gap. The tools differ on blockers, consent, bot filtering and how they count a returning or logged-in user; PostHog's SDK, for example, drops known bots in the browser (PostHog docs). Record the expected difference once.
Which one should you choose?
| Your situation | Choose | Why |
|---|---|---|
| Marketing site with Google Ads spend | GA4, plus PostHog if long forms or flows need replay | Ads conversions and audiences come from the Google side |
| Marketing site, no ad spend, small team | One tool: GA4 if your team already reports in it, PostHog if you want replay or EU hosting | Both are free at this size, and two tools double the upkeep |
| SaaS product with logged-in users | PostHog in the product, GA4 on the marketing site if you buy ads | Person-level funnels, replay and flags live in one project |
| Data must stay in the EU | PostHog EU Cloud or self-hosted | GA4 offers no choice of storage region |
| Health or other regulated data | Neither on covered pages by default | Google offers no BAA for GA4; PostHog's BAA needs a platform package from USD 250 a month |
| Too little traffic for A/B tests | Research before tooling | No tool rescues an underpowered test |
How Dardo sets this up
We plan, build and test both tools as part of our analytics setup service: the measurement plan first, then GA4, PostHog, consent and server-confirmed conversions, all in your own accounts. When the product is being built at the same time, its instrumentation is part of web app development. Our published prices show which services have fixed starting points.
Tell us what your reports need to answer, and we'll tell you whether you need one tool or two before we quote either.
Common questions
Can PostHog replace Google Analytics?
For many sites, yes. PostHog's web analytics dashboard covers visitors, sources, top pages and conversions, and it is included with its product analytics at no extra cost. What PostHog doesn't replace is GA4's link to Google Ads: importing key events as Ads conversions and building remarketing audiences. If you buy Google Ads and rely on that link for bidding, keep GA4 or the Google Ads tag. If you don't, one tool is usually enough, and the choice depends on whether you want replay and EU hosting or a tool your marketing team already reports in.
Is PostHog better for privacy than Google Analytics?
It gives you more choices, not automatic compliance. PostHog lets you keep data in its EU cloud in Frankfurt or on your own server, run a cookieless mode, and mask replay inputs in the browser before anything is sent. GA4 offers no storage-region choice, though Google says it doesn't log or store IP addresses of EU, Swiss and UK visitors. Both still need a consent policy that fits your visitors and what the data feeds. Your counsel decides that policy; we implement and test it.
Why do GA4 and PostHog show different visitor numbers?
Because they count differently. Content blockers stop some scripts and not others, especially when one tool is served from your own domain. Visitors who decline consent may be missing from one tool and modeled or hashed in another. Each tool filters bots its own way, and each resolves identity differently once someone logs in or switches devices. Some gap is normal. Write down the expected difference and its reasons once, and use each tool for the questions it answers best.
Does PostHog work with Google Search Console?
Yes, as a data warehouse source. PostHog syncs Search Console performance data daily, broken down by query, page, country and device, so you can query it with SQL next to your events. Google's API returns about 50,000 rows per property, day and set of dimensions, so very large sites lose long-tail queries. GA4's native link is simpler but narrower: two reports, 48 hours behind, combinable only with landing page, device and country. For most SEO work, Search Console itself is still the first place to look.
Is Google Analytics really free?
Standard GA4 has no license fee. The paid version, Analytics 360, raises limits such as key events, data retention and BigQuery export under a contract, and Google doesn't publish its price. The costs that do appear with GA4 sit around it: BigQuery storage and queries if you export raw events, consent tooling, and the time needed to keep tags correct as the site changes. Google's policy also bars personal data such as email addresses, which limits what GA4 can do for a logged-in product.
Should a small B2B marketing site run both tools?
Usually not at first. Both are free at that size, but every extra script needs consent handling, testing and upkeep, and two dashboards invite two versions of the truth. Pick GA4 if you run or plan Google Ads, or if your team already reports in it. Pick PostHog if you need replay on long forms or flows, or EU hosting. Add the second tool when you have a question the first one can't answer, not before.
Sources & further reading
Sources behind this page, with further detail from the original publishers.
- PostHog: Pricingposthog.com
- Google Analytics Help: Google Analytics 360 limits for Google Analytics 4 propertiessupport.google.com
- Google Analytics Help: Enhanced event measurementsupport.google.com
- Google Analytics Help: Best practices to avoid sending personally identifiable informationsupport.google.com
- Google Analytics Help: HIPAA and Google Analyticssupport.google.com
- Google Analytics Help: Set up BigQuery Exportsupport.google.com
- Google for Developers: Google tag gateway for advertisersdevelopers.google.com
- PostHog docs: Session replay privacy controlsposthog.com
- PostHog docs: Self-host PostHogposthog.com
- PostHog docs: Billing limits and alertsposthog.com
- PostHog docs: Marketing analytics (beta)posthog.com
- Microsoft Learn: Clarity frequently asked questionslearn.microsoft.com
