Open-source alternative to Sitecore xDB and personalization: the short answer
If your Sitecore XP or XM estate relies on xDB contacts, analytics and personalization rules, the short answer is that none of them move with you. Sitecore's own migration guidance states that the SitecoreAI pathway does not migrate xDB data, email marketing content or personalization, so each of these must be rebuilt. In an open-source setup, Matomo covers visitor analytics and Mautic covers segmentation and campaigns, while the CMS handles only part of the on-page personalization logic. No single open-source product replicates xDB, and some XP features, including Marketing Automation, EXM and Path Analyzer, have no SitecoreAI equivalent and no direct open-source twin either. Plan the work as three separate rebuilds, not one swap. Start with analytics, because it has the most compliance weight. Matomo's GitHub repository is GPLv3, and the On-Premise Community edition is free with unlimited users and hits, so the recurring cost is hosting, database administration and support. Matomo's requirements FAQ sizes a single server at 4 CPUs, 8 GB of RAM and 250 GB of SSD for up to 1 million pageviews a month. Before you commit, confirm which Matomo version you will run against your PHP and database baseline, and check the ePrivacy FAQ, because adding User ID, heatmaps or session recordings can remove the consent exemption that some national regulators grant for privacy-focused analytics. Historical data will not carry over as raw visits: Matomo's Google Analytics importer only brings in aggregated reports. For personalization, decide early which rules must survive. Mautic handles segments, campaigns and triggers, and it relies on cron jobs for segment and campaign updates, so confirm your scheduling and queue capacity with your implementation partner. On the CMS side, rules that select content by visitor attribute will need to be rebuilt as application logic or as data served from Mautic or Matomo, and this has to be specified and tested per site. Ask your partner for a written inventory of every xDB rule, segment and personalized rendering, marked as rebuilt, approximated or dropped, before any build begins.
Which xDB and personalization capabilities map to which open-source option
This table maps each Sitecore XP capability to the open-source option that can cover it, or marks it as having no direct equivalent. Read the gap column first, since xDB contacts, personalization rules and Path Analyzer do not migrate to SitecoreAI and must be rebuilt or replaced in whatever stack you choose.
| Sitecore XP capability | Open-source option | Coverage gap to plan for |
|---|---|---|
| xDB contact data and profiles | Mautic contact records, rebuilt from exported CRM or form data | xDB interaction history does not migrate. Import only the contact fields you still hold a lawful basis for, and confirm how consent is recorded. |
| Visitor analytics and traffic reports | Matomo On-Premise (GPLv3), self-hosted beside the CMS | Historical xDB data stays in Sitecore. Matomo starts collecting from the day it is tagged, so plan a parallel run. |
| Analytics history from Google Analytics | Matomo Google Analytics Importer (GPL v3+) | Only aggregated reports import. Visitor Log, Ecommerce Log, Custom Reports and Segmentation do not work on imported data, and some reports such as Funnels are not imported. |
| Audience segmentation | Matomo segments on new data, Mautic segments for contacts | Matomo segments cannot run on imported Google Analytics data. Mautic segments need contact identity, so anonymous web traffic cannot be segmented in Mautic alone. |
| Heatmaps and session recording | Matomo Heatmap and Session Recording plugin (paid, InnoCraft EULA) | Not GPL. It is licensed per number of users and carries a 30-day free trial. Under the CNIL position, adding heatmaps or session recordings removes the consent exemption for analytics. |
| Personalization rules on the site | CMS-level rules in the chosen open-source CMS, such as Drupal or Wagtail | No xDB profile drives these rules. Expect to build audience logic on user attributes, cookies or authenticated roles, and confirm which signals your privacy team approves. |
| Campaigns and marketing automation | Mautic campaigns with triggers, cron-driven segment updates and broadcasts | Mautic depends on cron jobs and a messenger consumer for queued email. Each of these needs monitoring and staggered scheduling. |
| Path Analyzer | Matomo visitor paths and funnel reports, rebuilt | Path Analyzer history does not migrate. Funnels are not imported from Google Analytics, so rebuild them from new data. |
| Experience Modifier (EXM) and on-site testing | No direct equivalent in the open-source set covered here | Confirm whether your team needs A/B or multivariate testing. This is a separate tool decision, and the gap is not closed by Matomo or Mautic. |
Which open-source tools fit which xDB job
xDB did three jobs at once: visitor analytics, contact-level segmentation and campaigns, and page-level personalization. Each job maps to a different open-source tool, so the replacement is a set of components rather than one product. The cards below set out when each fits, its license and the trade-off to weigh before you commit.
Matomo On-Premise for visitor analytics
Matomo On-Premise is the closest replacement for xDB's behavioral reporting, and it stores visit data on your own servers under the GPL v3. It fits teams that need pageviews, goals and funnels without sending visitor data to a third party. Confirm which reports you rely on today, because Google Analytics history imported through the importer only includes aggregated data, so Visitor Log and Segmentation do not work for imported reports. Heatmaps and session recordings are a paid, separately licensed plugin, and adding them can remove the consent exemption that some European regulators grant for privacy-focused analytics.
Mautic for contact segmentation and campaigns
Mautic handles the contact-level work that xDB performed, including segments built from contact fields and behavior, campaigns and triggered journeys. It is licensed under GPL-3.0 and has no paid edition of the software itself, so the recurring cost is hosting, administration and any managed service you choose. Plan for cron jobs that update segments and campaigns, a broadcast command for segment emails and a messenger consumer when email is queued. The project advises against shared hosting, so budget for a VPS or dedicated server from the start.
Drupal for page-level personalization logic
Drupal has no built-in visitor personalization engine comparable to xDB rules, so page-level variation is built with Drupal's own content and display logic, with a contributed module or your own code, or with the Drupal CMS recipes and visual builder for content teams. Drupal and its contributed projects are licensed GPL-2.0-or-later, and there is no paid edition of Drupal itself. Confirm which contributed modules you will use for targeting, check their maintenance status, and budget for the development time that custom rules require.
Wagtail for page-level variation
Wagtail is a Django CMS under the BSD-3-Clause license with multi-site, multi-language and a headless content API, so it suits teams that want page variants modeled as code in Python. Variation rules sit in page models and StreamField blocks, which gives developers full control and a permissive license for commercial use. The trade-off is that Wagtail does not bundle a personalization engine, so visitor targeting logic must be written and tested by your team. Confirm Python skills in-house before choosing it.
Strapi for headless targeting data
Strapi, with its MIT-licensed Community Edition, fits headless builds where a Next.js front end chooses which content to show based on data returned from the API. Audience rules live in your front-end code and in content types that you define, so the logic is portable across channels. Keep the boundary clear: the Community Edition is MIT, but code in ee/ directories falls under the Enterprise license, so check which features your plan needs, such as SSO or audit logs, before you assume they are free.
How consent rules shape the Matomo setup
Consent depends on what you switch on in Matomo, not only on the tool. Matomo's ePrivacy FAQ explains that France's CNIL recognizes some audience measurement trackers as exempt from consent, but only when they are limited to purposes such as performance measurement, collect anonymous statistics only and exclude marketing measurement. The same FAQ states that adding features such as User ID, heatmaps or session recordings removes that exemption. For a team replacing xDB analytics, this means the configuration decided in the first sprint sets the legal position for every later feature request.
Start by listing the analytics features your current Sitecore estate uses and mapping each one against the exemption criteria. Pay particular attention to User ID, which can tie visits to a logged-in person, and to the Heatmap and Session Recording plugin, which is a paid premium plugin under the InnoCraft EULA rather than the GPL. Ask marketing whether any campaign or remarketing use depends on visitor-level data, because that falls outside the exemption. Ask the vendor or plugin owner to confirm the current wording of each criterion before you commit to a configuration.
France, Italy, the Netherlands and Spain are named in Matomo's FAQ as authorities that exempt certain privacy-focused analytics from consent when their criteria are met, and the FAQ suggests following the CNIL configuration for Italy, the Netherlands and Spain. Treat that as a starting point, not a conclusion. Your position depends on where your visitors are, how your cookie banner is built and which national rules apply to each site. Confirm the exact position with your own legal counsel and the relevant data protection authority before launch, and record that decision in your processing documentation.
What hosting Matomo and Mautic requires by environment
A single-server Matomo deployment runs the web application, the database and the scheduled tasks on one machine. Matomo's requirements FAQ sizes this setup at a minimum of 4 CPUs, 8 GB of RAM and 250 GB of SSD storage for up to 1 million pageviews a month. The web application is served by Apache, Nginx, IIS or LiteSpeed, and the database must match the Matomo release.
- Runtime versions: Matomo 4.16 and 5 run on PHP 8 with MySQL 5.5 or later, or MariaDB.
- Matomo 6.0.0 versions: This release needs PHP 8.1 or newer and MySQL 8.0 or newer, or MariaDB 10.6 or newer.
- Storage growth: Raw visit data accumulates on disk, so the 250 GB figure is a starting point that depends on how many actions each visit records.
- Archiving schedule: Report archiving runs through a scheduled task, which competes with web traffic on the same CPUs and memory.
- Backups: The database and the configuration directory need a separate, tested backup routine.
Confirm the monthly pageview count from your current analytics tool and the number of sites, then check the Matomo requirements page for the release you plan to deploy.
When traffic grows beyond the single-server sizing, Matomo's requirements FAQ recommends separate application and database servers, each with 8 CPUs and 16 GB of RAM, for up to 10 million pageviews a month. Splitting the tiers lets the database scale its memory and disk independently of the PHP workers, and it keeps database maintenance from slowing page responses. The split adds a network hop and a second operating system to patch, back up and monitor.
- Application tier: Runs the PHP and web server, and needs the same PHP version as the release you deploy.
- Database tier: Runs MySQL 8.0 or newer, or MariaDB 10.6 or newer, for Matomo 6.0.0, and should not be exposed beyond the application network.
- Network and TLS: Encrypt the connection between tiers if they sit on different hosts or networks.
- Failover: The FAQ sizing does not describe high availability, so any replica or failover design is an additional build item.
- Cloud hosting option: Matomo Cloud stores data in Frankfurt, Germany, and is an alternative if you do not want to run either tier.
Ask your infrastructure team for the peak concurrent requests and the expected data retention period, then size both tiers against the Matomo requirements page rather than assuming the published figures fit your load.
Mautic is a PHP application on the Symfony framework, and the Mautic project states it should not be installed on shared hosting. A VPS or dedicated server gives you root access to configure PHP, the web server and cron. Mautic 7.0 requires PHP 8.2, 8.3, 8.4 or 8.5, MySQL 5.7 or higher with InnoDB, or MariaDB 10.2 or higher, and Apache, Nginx or IIS. From Mautic 5.0 onward, npm is also required on the server.
- Installation method: Use the Composer project template, which is the recommended route since version 4.0, or the production package with the web or command-line installer.
- Cron jobs: Segment updates, campaign updates and campaign triggers run as cron jobs, and the docs say these should be staggered so they do not run at the same time.
- Broadcasts command: Segment emails need the broadcasts command on a schedule.
- Messenger consumer: When emails are queued, a messenger consumer must run continuously, typically under a process supervisor.
- Sending capacity: Mautic does not send mail on its own, so the SMTP or API service is a separate purchase to confirm.
Confirm the number of contacts, the send volume per day and which cron and consumer processes your team can monitor and restart when they fail.
Sizing depends on your own traffic and data, which the published requirements cannot predict. Before choosing an environment, gather measurements from your current tools and test the hosting design against them. The checklist below covers the inputs that decide whether a single server is enough and whether Mautic's background jobs will keep up.
- Pageviews and actions: Measure monthly pageviews and actions per visit for each site, since actions drive database writes.
- Retention: Decide how long raw data must stay on your servers, because storage grows with retention.
- Contacts and sends: For Mautic, count contacts, segments, campaigns and daily email volume, which set cron and consumer load.
- Version pinning: Check whether your PHP and database versions are still supported for the release you select, using the Matomo and Mautic release pages.
- Test environment: Run a load test and a restore test on a staging copy before cutover.
Request written sizing from your infrastructure partner that references the requirements pages for each release you intend to run.
How to migrate xDB data and personalization rules step by step
This sequence turns xDB analytics, contact segments and personalization logic into a Matomo, Mautic and open-source CMS setup, with each piece owned and checked before the next begins.
Inventory xDB reports, segments and rules
Export a list of every xDB report, audience segment, goal, campaign and personalization rule that your marketing and analytics teams still use. Record who owns each item, which pages or components it touches and whether it depends on contact data or only on aggregate traffic. Sitecore's migration guide states that the SitecoreAI pathway does not migrate xDB data, email marketing content or personalization, so this list becomes your rebuild scope. Done when every item has an owner and a keep, rebuild or retire decision.
Decide which xDB history to keep
Agree with legal, marketing and analytics leads which historical data you need to retain. Aggregate traffic reports are the easiest to keep, since Matomo's Google Analytics Importer only imports aggregated report data, not raw visit and action data, so Visitor Log, Custom Reports and Segmentation do not work on imported reports and some reports such as Funnels are not imported. Contact-level xDB history that you must keep for records can be archived in a read-only export instead of being rebuilt. Done when each data set is marked rebuild, import as aggregates or archive, and the retention decision is signed off.
Set up Matomo tracking and consent
Install Matomo On-Premise on a server you control, following Matomo's requirements for PHP, MySQL or MariaDB and web server, then add the tracking code to the open-source CMS templates. Configure consent handling with your privacy team, since Matomo's ePrivacy FAQ notes that features such as User ID, heatmaps or session recordings can remove the CNIL consent exemption. Recheck the exemption criteria for each country where you operate. Done when a test page sends pageviews to the new Matomo site and the consent configuration is documented and approved.
Import aggregate history where it applies
If you need continuity in traffic trends, run the Google Analytics Importer against the relevant Google Analytics property to create a new Matomo site with imported aggregated reports. Compare totals for a sample period against the source to confirm the import is complete. Note in your documentation that the imported site will not contain raw visitor logs. Done when imported reports match the source for the agreed sample and the gaps are listed for stakeholders.
Rebuild contact segments and campaigns in Mautic
Install Mautic on a VPS or dedicated server, not shared hosting, following the requirements page. Recreate each contact segment as a Mautic segment with the same criteria, then rebuild campaigns and their triggers. Mautic depends on cron jobs for segment updates, campaign updates and campaign triggers, which should be staggered, plus a broadcasts command and a messenger consumer when emails are queued, so schedule and monitor these before go-live. Done when a test contact moves through a segment and campaign as expected and the cron jobs run on schedule.
Rebuild personalization rules in the CMS
In the new open-source CMS, implement each retained personalization rule as conditional content, a page variant or a feature flag driven by a visitor attribute that your consent setup permits. Document the trigger, the audience and the fallback content for each rule. Rules that depended on individual xDB profile history have no direct equivalent and need a decision to simplify, replace with session-level logic or retire. Done when every rule in the inventory has a working implementation or a recorded retirement decision.
Verify tracking, segments and rules end to end
Run a test plan that covers tracking events on each key template, Mautic segment membership for sample contacts, campaign sends to a seed list and each personalization variant across the agreed audiences. Compare results with the original xDB reports for the same period where data is available. Log defects, fix them and repeat until the agreed criteria are met. Done when the test log shows no open critical defects and stakeholders have signed the comparison.
Archive, document and hand over
Store the archived xDB exports, the inventory with decisions, the consent records and the configuration of Matomo, Mautic and the CMS in a controlled location with access logs. Write runbooks for cron monitoring, Matomo upgrades and rule changes. Confirm which team owns each component after cutover. Done when the handover pack is accepted by the owning team and the xDB environment can be retired on the agreed date.
Questions buyers ask before replacing xDB
What does it cost to rebuild xDB analytics with Matomo and Mautic?
The software itself is free: Matomo On-Premise Community and the Mautic download both cost nothing to license, so the budget goes to the components around them. Those are hosting (Matomo's requirements FAQ sizes a single server at 4 CPUs, 8 GB of RAM and 250 GB of SSD for up to 1 million pageviews a month), the build and tag rollout, the migration of content and rules, consent review, and recurring upgrades and security work. Hosting and upgrades recur every year; the build and migration are one-time. Ask any partner to price each component separately in the written scope so you can see which ones move with your traffic and your number of sites.
How long does an xDB replacement take, and what drives the timeline?
The duration depends on how many personalization rules, segments and campaigns you must rebuild, how many sites and languages share the analytics, and how long consent review takes with your privacy team. Mautic also needs its cron jobs and messenger consumer configured and staggered before segments and campaigns run reliably, so plan that work into the schedule. No supplied figure gives a fixed duration; ask any partner to tie the timeline to the rule inventory and to named milestones in the written scope.
Can our in-house team replace xDB without a partner?
Many teams can, provided they already run PHP applications on Linux, manage a relational database and can own a cron-driven service. Matomo installs on PHP 8.1 or newer with MySQL 8.0 or MariaDB 10.6 for version 6.0.0, and Mautic 7.0 requires PHP 8.2 to 8.5 with its own database and web server setup. The harder work is usually behavioral: rebuilding segments, reviewing consent for each tracker, and mapping campaign logic that lived inside xDB. Assess those skills honestly before committing, and consider a fixed-scope partner for the migration while your team keeps operating the stack.
What should we ask a partner to put in a written scope?
Ask for a written scope that lists each deliverable and its acceptance test:
- A rule inventory covering every personalization rule, segment and campaign, with a keep, rebuild or drop decision for each
- The hosting design, including server sizing against your monthly pageviews and separate database and app servers if the traffic warrants them
- Tracking and consent configuration, with the reviewed exemption criteria for each market you serve
- Data migration limits, including what history is imported and what is not
- Backup, upgrade and security responsibilities after handover, and whether they are a retainer or a one-time handover
DeployOpen plans and implements engagements like this as fixed-scope work agreed in writing before work starts.
Does Matomo Cloud or Mautic managed hosting change the trade-off?
Yes, it moves hosting and some operations out of your team, but it does not remove the rebuild work or the consent review. Matomo Cloud plans start at 29 (excluding tax) per month and store data in Frankfurt, Germany, according to Matomo's pricing page; confirm current tiers, data residency terms and contract terms with Matomo before deciding. Managed Mautic is offered by third parties, so confirm the provider's hosting location, support and upgrade commitments. Self-hosting keeps data on your own servers, which matters when residency or contract rules require it.
Which Sitecore XP personalization features have no direct open-source equivalent?
Sitecore's migration guide states that SitecoreAI does not migrate xDB data, email marketing content or personalization, so all of it must be rebuilt. Matomo and Mautic do not reproduce xDB's real-time personalization engine, its visitor profiles built from every interaction, or its rule-based content swapping on pages. Matomo's Google Analytics import also brings in only aggregated data, so Visitor Log, Custom Reports and Segmentation do not work on imported history. Heatmaps and session recordings are a paid Matomo plugin, and adding them removes the consent exemption in France under the CNIL approach. Confirm each gap against your own feature list before the design is signed off.
Does the consent exemption for Matomo apply in every country?
No. Matomo's ePrivacy FAQ says France's CNIL recognizes some audience measurement trackers as exempt from consent only when they serve performance measurement, collect anonymous statistics and exclude marketing measurement. The same FAQ names Italy, the Netherlands and Spain as authorities with comparable exemptions, and suggests following the CNIL configuration there. Adding User ID, heatmaps or session recordings removes the exemption. Have your legal and privacy team confirm the rules for each country you operate in, because the answer depends on the configuration you choose.
Running Matomo and Mautic beside SitecoreAI or XP during the transition
Matomo and Mautic can start collecting data before the Sitecore estate is retired, but the two stacks will disagree unless tracking, identifiers and reporting ownership are settled first. The cards below cover the decisions that connect them: tag deployment, identity mapping, source-of-record rules and the Sitecore XP support dates that set the planning window.
Deploy tracking on both sites
During cutover, the existing Sitecore XP site and the new open-source front end will both serve visitors, so each needs its own Matomo tracking tag, with a distinct site ID per property. Decide whether the Matomo container lives in the CMS template, a tag manager or the front-end build, and confirm that consent settings are identical on both. Check that the same page view is not counted twice when a visitor moves between old and new paths.
Map visitor and contact identifiers
xDB contact IDs will not carry over, so the new stack needs a deliberate mapping between the old identifiers and the new ones. Matomo visitor IDs and Mautic contact IDs are separate keys, and any join between them must be built from a shared value such as a hashed email captured at a form submission. Confirm with your privacy lead which identifiers may be stored, because adding a User ID to Matomo changes the consent position in some European markets.
Set the source of record per report
Agree, report by report, which system is authoritative during the overlap. Sitecore XP reports stay the source of record for historical traffic and any campaign figures already shared with stakeholders, while Matomo becomes the source for new traffic once tags are live on the new site. Document the cutover date for each report and do not let two dashboards show the same metric as different numbers without a footnote.
Import history with its limits
Matomo's Google Analytics Importer brings aggregated report data into a new site, but it does not bring raw visits, so Visitor Log, Segmentation and Custom Reports will not work for imported periods. Sitecore XP analytics data is a separate question, and a Sitecore export does not cover xDB analytics, so confirm what history can be recreated from what sources. Plan for a clear break in longitudinal charts at the cutover date.
Plan around Sitecore XP support dates
Sitecore 10.3 mainstream support ended in December 2025, and 10.4 follows in December 2027. Any parallel run that keeps XP live must fit inside the 10.4 window, or it needs a funded decision to extend. Set the cutover target and the decommission date against these dates before you commit to a Mautic or Matomo go-live, and check the current Sitecore lifecycle pages for any changes.
Run Mautic jobs during overlap
Mautic needs cron jobs for segment updates, campaign updates and campaign triggers, plus a broadcasts command and a messenger consumer when emails are queued. During overlap, Mautic can start receiving contacts from Sitecore forms while Sitecore still sends its own email, so assign each list to one sender. Confirm that the Mautic host is not shared hosting, because the project recommends a VPS or dedicated server.
Which XP personalization features have no direct open-source equivalent
Path Analyzer, Sitecore Experience Marketing Automation and xDB-driven personalization across the contact lifecycle do not map one-to-one to Matomo and Mautic. Matomo covers visitor analytics, segments and goals, and Mautic covers contact journeys, campaigns and segmentation, but neither reproduces the way XP joined contact history, rules and experience delivery in a single product. Treat every XP feature as a requirement to re-specify, not a box to tick. Ask each vendor for a written feature comparison against your own use cases before you commit.
The Matomo Heatmap and Session Recording plugin is a paid premium plugin sold per number of users under the InnoCraft EULA, not GPL code, and it comes with a 30-day free trial. Count it as a recurring license cost if you need heatmaps or session replay. The same privacy FAQ notes that adding User ID, heatmaps or session recordings can remove the consent exemption that some European authorities grant to privacy-focused analytics, so involve your legal and privacy team before enabling any of them. Confirm the exemption criteria for each country where your sites are visited.
Design replacements from your own journeys rather than copying XP rules one by one. Map the entry points, audiences, offers and conversion events that matter to your business, then decide which of them need profile data, which need only anonymous page-level statistics, and which need a CRM or identity source. Build a short test plan per journey and verify it in a staging environment. Expect some personalization to move into front-end logic or CMS content variants, and document any feature you cannot reproduce as an accepted gap.
How DeployOpen scopes and delivers an xDB replacement
DeployOpen plans, implements and documents the self-hosted replacement for Sitecore xDB, visitor analytics and personalization inside your own infrastructure. Analytics, segmentation and campaign work are scoped as separate deliverables alongside the open-source CMS, so each part has its own owner, test plan and handover.
How we scope
- Inventory the xDB data, personalization rules and email content that Sitecore will not migrate, so each item is kept, rebuilt or retired.
- Agree in writing which XP personalization features map to Matomo, Mautic or CMS-side logic, and which have no direct equivalent.
- Confirm hosting targets, database choices and consent requirements per market before any build work starts, since engagements are fixed-scope.
How we build
- Install Matomo on infrastructure you control, sizing app and database servers against your expected pageview volume and the published requirements.
- Configure consent handling for each jurisdiction, checking User ID, heatmap and session recording settings against the local analytics rules.
- Build audience segments and Mautic campaigns with staggered cron jobs, then test triggers, broadcasts and queued email delivery in staging.
How we hand over
- Document each rebuilt rule, segment and campaign, with its source in Sitecore, its replacement and its known limits.
- Provide runbooks for cron schedules, backups, version upgrades and the Matomo and Mautic release cycles.
- Walk your team through the tracking plan and the reports that no longer carry historical Sitecore data.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover.
- Agree the upgrade calendar and security patch process in the written scope, so the retainer matches your supported versions.
- Ask for the support boundary in writing: which components DeployOpen maintains and which stay with your internal team.

