diff --git a/assets/js/tracking.js b/assets/js/tracking.js
new file mode 100644
index 0000000..064e2e2
--- /dev/null
+++ b/assets/js/tracking.js
@@ -0,0 +1,13 @@
+/**
+ * @file
+ * A JavaScript file for matomo analytic tracking.
+ */
+
+var idSite = {{ .Site.Params.piwikSiteID }};
+var matomoTrackingApiUrl = 'https://{{ .Site.Params.piwikTrackerUrl }}/matomo.php';
+
+var _paq = window._paq || [];
+_paq.push(['setTrackerUrl', matomoTrackingApiUrl]);
+_paq.push(['setSiteId', idSite]);
+_paq.push(['trackPageView']);
+_paq.push(['enableLinkTracking']);
diff --git a/layouts/partials/matomo.html b/layouts/partials/matomo.html
index ce3ea2b..bb4360f 100644
--- a/layouts/partials/matomo.html
+++ b/layouts/partials/matomo.html
@@ -1,14 +1,5 @@
{{ if and .Site.Params.piwikTrackerUrl .Site.Params.piwikSiteID -}}
-
+{{ $script := resources.Get "js/tracking.js" | resources.ExecuteAsTemplate "js/tracking.js" . | minify | fingerprint -}}
+
+
{{ end -}}