diff --git a/themes/qgis-theme/page.html b/themes/qgis-theme/page.html
index 048cfcc253..baabff6442 100644
--- a/themes/qgis-theme/page.html
+++ b/themes/qgis-theme/page.html
@@ -14,6 +14,7 @@
{% set script_files = script_files + ['_static/qgis-site.js']%}
{% set script_files = script_files + ['_static/bootstrap-2.3.2/js/bootstrap.min.js']%}
{% set script_files = script_files + ['_static/jquery.countdown-2.0.4/jquery.countdown.min.js']%}
+{% set script_files = script_files + ['_static/matomoto.min.js']%}
{%- block extrahead %}
diff --git a/themes/qgis-theme/static/matomoto.min.js b/themes/qgis-theme/static/matomoto.min.js
new file mode 100644
index 0000000000..b8067437ed
--- /dev/null
+++ b/themes/qgis-theme/static/matomoto.min.js
@@ -0,0 +1,12 @@
+var _paq = window._paq = window._paq || [];
+/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+_paq.push(["disableCookies"]);
+_paq.push(['trackPageView']);
+_paq.push(['enableLinkTracking']);
+(function() {
+ var u="//matomo.qgis.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '1']);
+ var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+})();
\ No newline at end of file