Google Analytics → Plausible
Replace Google Analytics with Plausible while preserving useful aggregate history, rebuilding goals and ecommerce measurement, documenting metric breaks, and validating a parallel collection period.
Should you make this move?
Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.
Google Analytics
- Broad adoption, advertising integration, and no-cost entry make it widely accessible
- Established reporting patterns make recurring measurement easier
- Complex reporting, sampling concerns, and privacy requirements reduce clarity and trust
- Tracking quality still depends on disciplined implementation and governance
Plausible
- A simple privacy-focused dashboard delivers understandable web analytics quickly
- Established reporting patterns make recurring measurement easier
- Product analytics, attribution depth, and complex segmentation are intentionally limited
- Tracking quality still depends on disciplined implementation and governance
Plausible: A simple privacy-focused dashboard delivers understandable web analytics quickly. This removes a major source-side concern: Complex reporting, sampling concerns, and privacy requirements reduce clarity and trust.
What you lose: Broad adoption, advertising integration, and no-cost entry make it widely accessible. What you inherit: Product analytics, attribution depth, and complex segmentation are intentionally limited.
Know the shape of the move.
This timeline assumes
- Up to 20 web properties, 50 conversion events, and five years of available aggregate history
- A signed measurement plan defines the metrics and conversions that must remain comparable.
- Both collectors can run in parallel for at least one representative business cycle.
- Imported history is labeled separately from destination-native collection.
- The migration team records evidence for every blocking verification check.
What survives the move.
“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.
| Item | Outcome | Impact | What happens | Mitigation |
|---|---|---|---|---|
| Historical visitor-level events | lost | critical | Plausible imports day-level aggregate statistics rather than raw visitor journeys. | Treat imported history as a reference layer and retain lawful raw evidence separately. |
| Unique visitors across longer periods | partial | high | Imported daily unique counts are summed and do not reproduce Google’s cross-day calculation. | Document the break and avoid trend claims that assume identical identity. |
| Advanced filtering, exit pages, scroll depth, and hourly history | lost | high | Plausible documents these limitations for imported Google data. | Rebuild only decisions supported by destination-native collection. |
| Goals and ecommerce revenue | partial | critical | GA4 goal data requires matching Plausible goals and ecommerce revenue is not imported. | Recreate goals before cutover and verify live revenue events independently. |
| Historical reports and aggregate metrics | partial | critical | Supported importers can preserve selected aggregates, but destination definitions and dimensions differ. | Record source baselines and annotate imported versus native periods. |
| Raw events and visitor-level history | lost | critical | Report import does not recreate the original event stream or user journey. | Archive lawful raw exports separately when they are required. |
| Users, sessions, and identity stitching | partial | critical | Identifiers, session boundaries, consent behavior, and deduplication differ. | Approve metric definitions and never expect exact cross-platform parity. |
| Events, goals, and conversions | manual | critical | Names may import while triggers and conversion configuration require destination setup. | Create an event dictionary and test every business conversion. |
| Properties, custom dimensions, and user properties | partial | high | Types, cardinality, reserved fields, and query semantics differ. | Map every active property and reject unmapped critical values. |
| Attribution and channel grouping | partial | high | Traffic-source, campaign, and attribution models are platform-specific. | Publish the destination attribution definition and expected breaks. |
| Dashboards, explorations, and saved reports | lost | high | Visualization and query configuration does not become destination-native content. | Rebuild only the signed reporting set. |
| Audiences, cohorts, and segments | manual | high | Dynamic membership rules must be re-expressed against destination data. | Test known members and exclusions for each active audience. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| Google Analytics account, property, or project | Plausible site, property, or project | manual | Record timezone, currency, domain, and ownership. |
| Page view or event | Destination page view or event | transform | Map name, timestamp, URL, and properties. |
| User identifier | Destination user identifier | transform | Apply approved privacy and identity rules. |
| Session | Destination session | manual | Document definition differences rather than forcing parity. |
| Goal or conversion | Destination goal or conversion | manual | Recreate the trigger and test it live. |
| Custom dimension or property | Destination property | transform | Map type, scope, cardinality, and allowed values. |
| Source, medium, campaign, or channel | Destination attribution fields | transform | Record model differences. |
| Ecommerce transaction | Destination revenue event | transform | Preserve transaction ID, currency, value, tax, and refund state. |
| Saved report or audience | Destination report or segment | manual | Rebuild from the signed measurement plan. |
Make the move recoverable.
Create the source-of-truth backup
Preserve Google Analytics data, configuration, and operating evidence before any destination write.
- Export Google Analytics account, property, event, goal, property, audience, report, tag, integration, and privacy configuration.
- Save dated metric, conversion, attribution, ecommerce, and traffic baselines.
- Record timezone, currency, retention, filters, consent, and data-deletion settings.
- Hash raw exports and the signed measurement plan.
Proof to capture: A signed manifest reconciles every scoped record class, runtime dependency, export file, count, and hash.
Measurement and taxonomy map
Define events, properties, conversions, identity, and metric breaks.
- Inventory source values and exceptions.
- Define explicit destination mappings.
- Reject unmapped critical records.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
Parallel collection and historical import
Build trustworthy destination data while preserving supported history.
- Normalize encoding, dates, identifiers, and blanks.
- Run a representative pilot.
- Reconcile accepted, rejected, and transformed rows.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
The things most likely to hurt.
These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.
Metric differences are mistaken for data loss
Sessions, users, attribution, consent, and bot filtering produce different totals.
- Consequence
- Teams reject valid data or make bad decisions.
- Mitigation
- Approve definitions and expected variance before cutover.
Stop if: A critical metric lacks an owner-approved interpretation.
Conversions silently stop
Pages load while events, server calls, consent, or revenue payloads fail.
- Consequence
- Business reporting and optimization become blind.
- Mitigation
- Test every conversion end to end in live traffic.
Stop if: A critical event has no verified destination receipt.
Collection continues in both tools unintentionally
Old tags remain active beyond the comparison window.
- Consequence
- Privacy scope and operating cost exceed approval.
- Mitigation
- Keep a dated parallel-run plan and remove old collectors only after sign-off.
Stop if: An unowned source collector remains active.
Do the work in this order.
- Days 1–3 · inventory
Inventory and decisions
6–12 hours active2–3 days elapsedOwner review waiting- Inventory Google Analytics data, features, users, domains, and integrations.
- Approve scope, owners, mappings, and exclusions.
Depends on: Google Analytics and Plausible administrator access
Stop / go checkpointExport?
Go when: Every critical item has an owner and disposition.
Stop when: Consent, billing, access, or system ownership is unclear.
- Days 3–5 · backup
Backup and reconcile
5–10 hours active1–3 days elapsedExport processing waiting- Create immutable exports and configuration evidence.
- Reconcile counts, totals, and hashes.
Depends on: Approved inventory
Stop / go checkpointTransform?
Go when: Source totals and export manifests agree.
Stop when: Any critical dataset or configuration is absent.
- Days 5–12 · pilot
Map and pilot
10–35 hours active3–8 days elapsedDestination processing and review waiting- Configure Plausible and transform representative data.
- Run a pilot containing normal records and every critical edge case.
Depends on: Verified backup
Stop / go checkpointScale?
Go when: Pilot mappings, behavior, access, and evidence pass.
Stop when: Any critical check fails or produces unexplained variance.
- Days 10–20 · cutover
Final delta and switch
5–25 hours active1–5 days elapsedDNS, import, or sync propagation waiting- Freeze production writes in Google Analytics.
- Apply the final delta, switch ownership, and run blocking checks.
Depends on: Passed pilot and approved rollback
Stop / go checkpointOpen production?
Go when: Counts reconcile and one destination system owns production.
Stop when: A source writer remains active or a blocking check fails.
- Days 12–40 · observe
Observe and close
3–18 hours active3–10 days elapsedOperating-cycle evidence waiting- Monitor one complete operating cycle.
- Sign the verification report and close rollback only after stability.
Depends on: Verified cutover
Stop / go checkpointClose rollback?
Go when: No trigger occurs during the agreed observation period.
Stop when: Data, access, delivery, routing, or business results regress.
Cut over with a way back.
Cutover
Make Plausible the only production system without losing the final Google Analytics delta.
- Freeze production writes and scheduled actions in Google Analytics.
- Export, transform, and reconcile the final delta.
- Apply the approved delta to Plausible.
- Switch domains, forms, integrations, sending, or sync ownership as applicable.
- Run every blocking verification check and keep the source intact.
Proof to capture: Plausible owns production, totals reconcile, and every blocking check has durable evidence.
Rollback
Return production ownership to Google Analytics without losing destination-era changes.
- Stop new writes and scheduled actions in Plausible.
- Restore the prior Google Analytics routing, forms, integrations, sending, or sync ownership.
- Export the Plausible post-cutover delta.
- Review and apply safe destination-era changes to Google Analytics.
- Run the same blocking checks against the restored source.
Proof to capture: Google Analytics again owns production with current data and no duplicate destination action.
- Unexplained critical count or value variance
- Missing or exposed critical data
- Duplicate production action
- Failed access, routing, delivery, or integration check
- A critical feature has no safe destination replacement
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | Live event receipt | Trigger every critical client and server event. | One valid destination event with approved properties. | Event log. | |
V-02Blocking | Business outcome tracking | Complete every approved conversion path. | Conversion and revenue values reconcile. | Conversion report. | |
V-03Blocking | Event and property mapping | Compare the signed schema with live payloads. | No critical event or property is unmapped. | Schema diff. | |
V-04Blocking | Parallel-run interpretation | Compare daily metrics for the approved overlap window. | Variance is explained and owner-approved. | Metric comparison. | |
V-05 | Imported-report coverage | Compare available dates, dimensions, and totals. | Every supported period is imported or explicitly archived. | History ledger. | |
V-06Blocking | Campaign and channel behavior | Run tagged journeys and inspect destination reports. | Source, medium, campaign, and conversion resolve as designed. | Attribution test. | |
V-07Blocking | Consent, retention, and deletion | Test opt-out, deletion, access, and retention configuration. | Collection and lifecycle match policy. | Privacy evidence. | |
V-08Blocking | Reporting ownership | Inspect tags, SDKs, APIs, exports, and dashboards. | Plausible owns approved production measurement. | Ownership checklist. |
Remove the scaffolding safely.
Safe after: One complete operating cycle, at least seven stable days, and owner sign-off on every blocking check.
- Create final Google Analytics exports and archive verification evidence.
- Revoke temporary credentials, API keys, webhooks, and elevated roles.
- Remove obsolete embeds, forms, jobs, integrations, and DNS records.
- Keep the source intact through the approved retention window.
- Cancel paid plans only after billing, legal, and recovery review.
- Schedule the next Plausible backup, access, and migration-playbook review.
Built to be reviewed.
Tested 2026-07-19. Next scheduled review: 2026-10-19.
- Plausible: import Google Analytics statsAccessed 2026-07-19
- Plausible: verify the integrationAccessed 2026-07-19
- Google Analytics: data retentionAccessed 2026-07-19