← All playbooks
Analytics migration

Universal Analytics → Matomo

Move events, properties, identities, conversions, attribution, ecommerce, reports, audiences, consent, collection, and historical evidence from Universal Analytics into Matomo with an explicit exception ledger and evidence-based cutover.

Typical timeline15–30 business days60–110 hours active work
Statusneeds review
Source testedUniversal Analytics documentation reviewed 2026-07-19
Destination testedMatomo documentation reviewed 2026-07-19
Last reviewed2026-07-19
Sources2
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Universal Analytics

Reasons to stay
  • Its session-based reports remain familiar to a generation of web analysts
  • Established reporting patterns make recurring measurement easier
Reasons to leave
  • Processing has ended, making it unsuitable as an active measurement platform
  • Tracking quality still depends on disciplined implementation and governance
New platform

Matomo

What gets better
  • Data ownership, self-hosting, and privacy controls support compliance-sensitive teams
  • Established reporting patterns make recurring measurement easier
What gets worse
  • Operating it well requires infrastructure, upgrades, and analytics expertise
  • Tracking quality still depends on disciplined implementation and governance
Best of the move

Matomo: Data ownership, self-hosting, and privacy controls support compliance-sensitive teams. This removes a major source-side concern: Processing has ended, making it unsuitable as an active measurement platform.

Worst of the move

What you lose: Its session-based reports remain familiar to a generation of web analysts. What you inherit: Operating it well requires infrastructure, upgrades, and analytics expertise.

01At a glance

Know the shape of the move.

Transfer outcome12 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 6, Manual rebuild: 3, Not transferred: 3.
Clean0
Partial6
Manual3
Lost3
Mapping route9 of 9 fields have a destination path

This timeline assumes

  • Up to 50 properties, 500 events, and five years of retained reports
  • 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.
02Loss matrix

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Previously exported reports, dimensions, goals, ecommerce evidence, and historical baselinespartialcriticalCore previously exported reports, dimensions, goals, ecommerce evidence, and historical baselines can move, but Universal Analytics and Matomo use different models, limits, identifiers, and import behavior.Pilot every feature class, preserve source IDs, and reconcile accepted, transformed, rejected, and excluded items.
Raw event history, session continuity, audiences, attribution parity, and active data collectionlostcriticalUniversal Analytics processing has ended, and archived reports cannot recreate its original hit stream as native Matomo history.Inventory every active dependency, approve its destination disposition, and test the replacement before source writes stop.
Historical reports and aggregate metricspartialcriticalSupported 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 historylostcriticalReport import does not recreate the original event stream or user journey.Archive lawful raw exports separately when they are required.
Users, sessions, and identity stitchingpartialcriticalIdentifiers, session boundaries, consent behavior, and deduplication differ.Approve metric definitions and never expect exact cross-platform parity.
Events, goals, and conversionsmanualcriticalNames may import while triggers and conversion configuration require destination setup.Create an event dictionary and test every business conversion.
Properties, custom dimensions, and user propertiespartialhighTypes, cardinality, reserved fields, and query semantics differ.Map every active property and reject unmapped critical values.
Attribution and channel groupingpartialhighTraffic-source, campaign, and attribution models are platform-specific.Publish the destination attribution definition and expected breaks.
Dashboards, explorations, and saved reportslosthighVisualization and query configuration does not become destination-native content.Rebuild only the signed reporting set.
Audiences, cohorts, and segmentsmanualhighDynamic membership rules must be re-expressed against destination data.Test known members and exclusions for each active audience.
Tracking code and data collectionmanualcriticalTags, SDKs, server events, consent, domains, and filters require a new implementation.Run both collectors in parallel and verify live payloads.
Ecommerce and revenuepartialcriticalRevenue events and product schemas can have unsupported or different fields.Reconcile transaction IDs, currency, tax, refunds, and totals.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Universal Analytics account, property, or projectMatomo site, property, or projectmanualRecord timezone, currency, domain, and ownership.
Page view or eventDestination page view or eventtransformMap name, timestamp, URL, and properties.
User identifierDestination user identifiertransformApply approved privacy and identity rules.
SessionDestination sessionmanualDocument definition differences rather than forcing parity.
Goal or conversionDestination goal or conversionmanualRecreate the trigger and test it live.
Custom dimension or propertyDestination propertytransformMap type, scope, cardinality, and allowed values.
Source, medium, campaign, or channelDestination attribution fieldstransformRecord model differences.
Ecommerce transactionDestination revenue eventtransformPreserve transaction ID, currency, value, tax, and refund state.
Saved report or audienceDestination report or segmentmanualRebuild from the signed measurement plan.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Preserve Universal Analytics data, configuration, and operating evidence before any destination write.

  1. Export Universal Analytics account, property, event, goal, property, audience, report, tag, integration, and privacy configuration.
  2. Save dated metric, conversion, attribution, ecommerce, and traffic baselines.
  3. Record timezone, currency, retention, filters, consent, and data-deletion settings.
  4. 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.

Transformation · Measurement plan and schema registry

Measurement and taxonomy map

Define events, properties, conversions, identity, and metric breaks.

  1. Inventory source values and exceptions.
  2. Define explicit destination mappings.
  3. Reject unmapped critical records.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · Destination SDK or tag, importer, and report comparison

Parallel collection and historical import

Build trustworthy destination data while preserving supported history.

  1. Normalize encoding, dates, identifiers, and blanks.
  2. Run a representative pilot.
  3. Reconcile accepted, rejected, and transformed rows.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Parallel run

Metric differences are mistaken for data loss

criticalpossible likelihood

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.

Collection

Conversions silently stop

criticalpossible likelihood

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.

Cleanup

Collection continues in both tools unintentionally

highpossible likelihood

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.

06Precise timeline

Do the work in this order.

Estimate forUp to 50 properties, 500 events, and five years of retained reports
Total elapsed15–30 business days
Active work60–110 hours
BufferAdd time for large exports, unsupported Universal Analytics features, destination limits, identity exceptions, regulated data, or strict downtime requirements.
01
Days 1–3Inventory and decisions2–3 days
02
Days 3–5Backup and reconcile1–3 days
03
Days 5–12Map and pilot3–8 days
04
Days 10–20Final delta and switch1–5 days
05
Days 12–40Observe and close3–10 days
  1. Days 1–3 · inventory

    Inventory and decisions

    6–12 hours active2–3 days elapsedOwner review waiting
    • Inventory Universal Analytics data, features, users, domains, and integrations.
    • Approve scope, owners, mappings, and exclusions.

    Depends on: Universal Analytics and Matomo administrator access

    Stop / go checkpoint

    Export?

    Go when: Every critical item has an owner and disposition.

    Stop when: Consent, billing, access, or system ownership is unclear.

  2. 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 checkpoint

    Transform?

    Go when: Source totals and export manifests agree.

    Stop when: Any critical dataset or configuration is absent.

  3. Days 5–12 · pilot

    Map and pilot

    10–35 hours active3–8 days elapsedDestination processing and review waiting
    • Configure Matomo and transform representative data.
    • Run a pilot containing normal records and every critical edge case.

    Depends on: Verified backup

    Stop / go checkpoint

    Scale?

    Go when: Pilot mappings, behavior, access, and evidence pass.

    Stop when: Any critical check fails or produces unexplained variance.

  4. Days 10–20 · cutover

    Final delta and switch

    5–25 hours active1–5 days elapsedDNS, import, or sync propagation waiting
    • Freeze production writes in Universal Analytics.
    • Apply the final delta, switch ownership, and run blocking checks.

    Depends on: Passed pilot and approved rollback

    Stop / go checkpoint

    Open production?

    Go when: Counts reconcile and one destination system owns production.

    Stop when: A source writer remains active or a blocking check fails.

  5. 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 checkpoint

    Close rollback?

    Go when: No trigger occurs during the agreed observation period.

    Stop when: Data, access, delivery, routing, or business results regress.

07The point of change

Cut over with a way back.

Go live

Cutover

Make Matomo the only production system without losing the final Universal Analytics delta.

Recommended window: A low-volume weekday morning with platform, data, DNS, and business owners available.

  1. Freeze production writes and scheduled actions in Universal Analytics.
  2. Export, transform, and reconcile the final delta.
  3. Apply the approved delta to Matomo.
  4. Switch domains, forms, integrations, sending, or sync ownership as applicable.
  5. Run every blocking verification check and keep the source intact.

Proof to capture: Matomo owns production, totals reconcile, and every blocking check has durable evidence.

Return to safety

Rollback

Return production ownership to Universal Analytics without losing destination-era changes.

Deadline: Within seven days and before source data, plans, credentials, domains, or billing are changed.

  1. Stop new writes and scheduled actions in Matomo.
  2. Restore the prior Universal Analytics routing, forms, integrations, sending, or sync ownership.
  3. Export the Matomo post-cutover delta.
  4. Review and apply safe destination-era changes to Universal Analytics.
  5. Run the same blocking checks against the restored source.

Proof to capture: Universal Analytics again owns production with current data and no duplicate destination action.

Rollback immediately when
  • 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
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingLive event receiptTrigger every critical client and server event.One valid destination event with approved properties.Event log.
V-02BlockingBusiness outcome trackingComplete every approved conversion path.Conversion and revenue values reconcile.Conversion report.
V-03BlockingEvent and property mappingCompare the signed schema with live payloads.No critical event or property is unmapped.Schema diff.
V-04BlockingParallel-run interpretationCompare daily metrics for the approved overlap window.Variance is explained and owner-approved.Metric comparison.
V-05Imported-report coverageCompare available dates, dimensions, and totals.Every supported period is imported or explicitly archived.History ledger.
V-06BlockingCampaign and channel behaviorRun tagged journeys and inspect destination reports.Source, medium, campaign, and conversion resolve as designed.Attribution test.
V-07BlockingConsent, retention, and deletionTest opt-out, deletion, access, and retention configuration.Collection and lifecycle match policy.Privacy evidence.
V-08BlockingReporting ownershipInspect tags, SDKs, APIs, exports, and dashboards.Matomo owns approved production measurement.Ownership checklist.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: One complete operating cycle, at least seven stable days, and owner sign-off on every blocking check.

  1. Create final Universal Analytics exports and archive verification evidence.
  2. Revoke temporary credentials, API keys, webhooks, and elevated roles.
  3. Remove obsolete embeds, forms, jobs, integrations, and DNS records.
  4. Keep the source intact through the approved retention window.
  5. Cancel paid plans only after billing, legal, and recovery review.
  6. Schedule the next Matomo backup, access, and migration-playbook review.
Sources and maintenance

Built to be reviewed.

Tested 2026-07-19. Next scheduled review: 2026-10-19.

  1. Universal Analytics: official migration documentationAccessed 2026-07-19
  2. Matomo: official migration documentationAccessed 2026-07-19