Plugins View all plugins
Resources
Live demo ↗ Request a plugin Sign in feinwerk.io ↗ Get the connector
Plugin documentation · Channel Grouping

Performance and archiving

Plugin documentation Plugin page

Feinwerk Channel Grouping assigns every visit to a channel while it is tracked and stores the channel with the visit. Matomo's archiving then only counts the stored channels. This page shows how much load that adds on a large instance, where it comes from and what a rule change costs.

Measurements

Nightly archiving of one day with its week, month and year, with and without the plugin:

Measurement without the plugin added by the plugin
Archiving time per night 3 minutes 14 seconds about 8 seconds (+4 %)
Database work 41.4 million rows read about 0.6 % more rows read
Peak memory 383 MB per archiving process no measurable increase

The test year holds one month of data. In a control test with twelve filled months on a smaller test instance, the year archive needed no extra memory with the plugin and no more database queries than with one month. Measured in October 2026 with version 1.0.0-beta.3 and Matomo 6. The versions for Matomo 5 from 0.11.0 calculate the channel reports the same way. On other servers, with other data and settings, the values differ.

Test setup

  • 5 million hits per month (about 1.7 million visits), test data with pages, referrers, events, goals and orders.
  • The plugin's default grouping with both attribution models.
  • Matomo 6, PHP 8.3, MariaDB 10.11 with a 2 GB database cache.
  • Server with 4 cores, 3 of them for Matomo, 7.7 GB RAM and SSD.
  • Three runs per measurement after a warm-up run, the middle one counts; compared with the same instance without the plugin.

Where the load comes from

  • Day: The plugin counts visits and conversions per channel and source and credits conversions to the channels of earlier visits (last non-direct contact and first contact). These are four database queries per day, about 1.4 seconds together on the test instance. The rest of the extra time is spent in the database on Matomo's own queries, mostly for segments.
  • Week, month and year: The plugin combines the finished days without reading the raw data again.
  • Archive size: about 74 KB per website and night for day, week, month and year together.

Settings and load

  • Attribution models: Without the two models (setting attribution_models in the [FeinwerkChannelGrouping] section of the Matomo configuration), the plugin reads about a third fewer rows and writes smaller archives; the archiving time does not change measurably. So on large instances you do not need to switch the models off.

Rule changes

When you change rules or channels, the plugin re-assigns past visits in the background, as far back as Matomo re-archives reports (6 months by default), and then has the channel reports recalculated. On the test instance this took about 5 minutes per month with 1.7 million visits for the re-assignment and about 1 minute for the recalculation. How many visits get a different channel hardly matters. The re-assignment runs in Matomo's hourly tasks for at most 2 minutes per hour, so 6 months of such a large instance spread over about 15 hours.

Recommendations for large instances

  1. Bundle rule changes and save them in one step: every change that is not limited to new visits re-assigns past visits. If older reports do not need to be recalculated, choose "Only new visits" when saving.
  2. You do not need to plan extra archiving memory for the plugin.