Migrate to Matomo Cloud

When you want to migrate from Matomo On-Premise self-hosted to Matomo Cloud-hosted, please read the information below and fill in the form. We’ll get back to you within 2 business days to discuss further or schedule a time for your migration. If you would like to migrate from Matomo for WordPress, please review our guide here before completing this form

Here is the migration procedure outline

  1. Complete the form in the page below
  2. Once we receive your completed Cloud Migration form, we will send you a link to schedule the Migration as well as FTP details to upload your database dump
  3. Once we have an agreed date and time (or even shortly before), you create the database dump ideally using the following command:

    $ time mysqldump --extended-insert --no-autocommit --quick --single-transaction MATOMO_DATABASE_NAME -uMATOMO_DATABASE_USERNAME -p > matomo_exported_db.sql ​tar zcf matomo-db.tar.gz matomo_exported_db.sql

    Note: If your database is large then it may take some time (it could take a few hours to export depending on your MySQL server).
  4. Then upload the database backup compressed to the secure FTP account we provided you.
  5. We import the database and upgrade your Matomo at the agreed time and date, which will take a few hours.
  6. (Optional only when you use a custom domain) Once we have imported successfully your database (around 1 or 2 hours after you have sent it to us), we will send you an email to ask you to change the CNAME for your custom domain. Then you will need to  change the CNAME record as instructed.
  7. (only when you do not use a custom domain) Once we have successfully imported your database (Depending on the size of your Matomo database, but usually around 1 to 3 hours after you have sent it to us),  you will need to change your Tracking code (JavaScript, and any other tracking code or SDK use), to point to your new Matomo Cloud domain.

Important information to read when migrating to Matomo Cloud:

  1. As part of our Business plan we keep your RAW data (ie. data in the Visitors > Visitor log) for 24 months (2 years).
    In your database you may have many more years of RAW data in your account.
    Note: all your historical reports and data will be kept intact, only the raw users/actions older than 2 years old will be deleted.
    If you need to keep more than 2 years of RAW data, let us know in the form below and we’ll make you an Enterprise plan offer.
  2. If you currently use Segments (Either through the UI or in the API) and request data for custom/always-changing Segments,
    then please note that Segments on your Cloud instance will need to be first created in the Matomo UI via the Segment editor.
    When you request API data for a segment not yet created in the UI, a message will be displayed explaining that the segment should be first created in the UI (or via the Matomo API using: SegmentEditor.add).
  3. When we import your database into your new Cloud account, all data you may have stored so far in your Cloud account will be deleted and replaced with the data from the imported database dump including all tracked data, websites and user accounts.
  4. To prevent any gaps in your tracking please review the instructions below the form on this page to enable dual tracking.


How to send tracking requests to both your On-Premise and Matomo Cloud instances.

If you need to refer to this information later, you can bookmark this page and visit it again when you need to implement the changes below. (You will not need to submit the migration form again to view this data)

Below please find the instructions to track in both systems at the same time.

We recommend to follow these instructions below to minimise any loss of tracking requests during the migration.

Note: that there will still be a small data gap, between the time the backup was made and the time the migration is completed.

Your code currently includes these two lines:

_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', YOUR_SITE_ID_HERE]); 

We recommend to change this code and add the following new lines below:

_paq.push(['setTrackerUrl', u+'matomo.php']);

_paq.push(['setSiteId', YOUR_SITE_ID_HERE]); 

var secondaryTracker = 'https://YOUR_SUBDOMAIN.matomo.cloud/matomo.php';

var secondaryWebsiteId = YOUR_SITE_ID_HERE;

// Also send all of the tracking data to the new Matomo server

_paq.push(['addTracker', secondaryTracker, secondaryWebsiteId]);

Above we are adding a line which calls addTracker so that all data is tracked in both your new Cloud instance and your current instance.

This means that when we migrate your database over, you will have your data already tracking and can check instantly if things works.

_paq.push(['addTracker', secondaryTracker, secondaryWebsiteId]);

This code will enable the tracking of the data in your YOUR_SUBDOMAIN.matomo.cloud instance.

You can check that this works by logging into the two Matomo instances, and checking you are seeing the data being tracked in real-time in both Matomo.

Later after the migration is completed, we recommend you replace your JavaScript tracking code by the latest version of the code, which you can copy from
https://YOUR_SUBDOMAIN.matomo.cloud/index.php?module=CoreAdminHome&action=trackingCodeGenerator&idSite=1&period=day&date=yesterday