Having a fast website is essential for user experience, your conversion rates and search engine optimisation. While there are many speed test tools for your website, Matomo goes a step further and provides detailed performance analysis for every page on your website as experienced by your real visitors. You can use this information to benchmark your site performance, keep track of changes over time and optimise under-performing pages where necessary.

The specific metrics shown in the report may vary slightly depending on your version of Matomo, however you can find a short description of each below:

  • Network time (connectEnd – fetchStart)
    How long it takes (in seconds) to connect to server. This includes the time needed to lookup DNS and establish a TCP connection. This value might be 0 after the first request to a domain as the browser might cache the connection.
  • Server time (responseStart – requestStart)
    How long it takes the server (in seconds) to generate page. This is the time between the server receiving the request and starting to serve the response.
  • Transfer time (responseEnd – responseStart)
    How long it takes the browser to download the response from the server. Technically speaking, this is the time between receiving the first byte until the response is complete.
  • DOM Processing time (domInteractive – domLoading)
    How long the browser spends (in seconds) loading the webpage after the response has been fully received and until the user can start interacting with it.
  • DOM Completion time (domComplete – domInteractive)
    How long it takes for the browser to load images/videos and execute any Javascript code listening for the DOMContentLoaded event after the webpage has loaded and a user can already interact with it.
  • On load time (loadEventEnd – loadEventStart)
    How long it takes (in seconds) for the browser to execute Javascript code waiting for the window.load event (when the DOM was completely rendered).
  • Page load time
    How long it takes (in seconds) to load the whole page, from requesting a page until it is fully rendered within the browser. This is the sum of all previous metrics. If you only track one metric this is it! We recommend you aim to keep this under 2 seconds where possible.
  • Avg. generation time (This may be shown if you have data from older versions of Matomo)
    The average time it took to generate the page. This metric includes the time it took the server to generate the web page. In many cases this will have been manually set up by your analytics admin and developers so it may or may not include the time it took for the visitor to download the response from the server. Either way, the lower this metric is, the faster your website is likely to load for your visitors!

If you ever forget what each performance metric represents whilst reviewing any part of the Performance section, you can hover your mouse over the metric name within Matomo to display the relevant description.

Performance Tooltip in matomo

Using Performance metrics in Custom Reports

When creating custom reports using page performance metrics, some metrics, for example, Average Load Time and Average DOM Completion Time, may display zero values in the report rows. This is due to the tracking implementation where performance metrics are only recorded if they are available at the time the initial tracking request is sent.

When tracking occurs before certain page load events, some metrics are generated later in the page load process and may not be captured in the initial request. If a second tracking request occurs within the same page view, such as for events or goals, it may include all additional performance metrics and the page view dimensions will be updated accordingly.

If no additional tracking occurs, the metrics for that page view will remain empty. Therefore, the availability of all performance metrics depends on the specific tracking implementation and whether multiple tracking events are triggered during a page view.

Previous FAQ: How do I see Page Performance reports?