Clycyo
Migrations6 min read

Migrating from Matomo: Retiring the Server Without Losing Data

How to move from self-hosted Matomo to managed cookieless analytics: archiving history, mapping goals, and decommissioning safely.

A Matomo migration is really two projects wearing one name: switching analytics tools (easy) and decommissioning a production PHP/MySQL service (the part that deserves a checklist). Done in the right order, you keep every byte of history, lose zero data continuity, and delete a server you will not miss. Done in the wrong order, you discover in November that the archive cron died in July.

Phase 1: freeze and archive the history

  1. Run a final full archive. Trigger Matomo's archiving job one last time so all reports are materialized, then export the reports you will reference: monthly visits/sources/pages as CSV via the UI or the Reporting API.
  2. Dump the database. A mysqldump of the Matomo schema is your raw insurance policy. You own this data outright — one of self-hosting's genuine virtues — so keep the dump in cold storage.
  3. Decide the retention story. Most teams keep the read-only instance running for 60–90 days during transition, then retire it and rely on the CSVs + dump.

Phase 2: the new tracker (one afternoon)

Install the Clycyo tag alongside matomo.js — both cookieless setups coexist fine. Then map the concepts:

  • Matomo Goals → track() events at the same trigger points.
  • Matomo custom dimensions → event/identify properties.
  • Site Search reports → a search event with the query as a property.
  • Ecommerce tracking → funnel events plus a server-side revenue webhook — which also upgrades you from session-scoped to first-touch attribution.

Note the deliberate non-mapping: Matomo's heatmaps/session-recording plugins have no direct equivalent. Clycyo captures clicks and errors on the visitor record instead — the privacy-first version of the same insight.

Phase 3: parallel run, then decommission

Two weeks of both tools running answers the trust question with data. Expect close agreement on trends; small absolute differences come from bot filtering and counting details. Then the satisfying part, in order: remove matomo.js from templates → confirm zero traffic in Matomo's live view → snapshot the VM → power it down (keep the snapshot 90 days) → delete.

What changes operationally

  • No more PHP/MySQL updates, archive crons, or security patching — the quiet tax ends.
  • The tracker drops from tens of KB to 1.1 KB, with a measurable Core Web Vitals benefit.
  • One honest trade: Clycyo is managed-cloud only. If your compliance regime mandates on-premise analytics, this migration is not for you — the full reasoning is in our Matomo alternative deep-dive.

Budget half a day of real work spread over three weeks, most of it waiting on parallel data. The free tier covers the entire evaluation.