Configuración recomendada para Matomo On-Premise (autoalojado)

Actualizada:

Si te estás planteando dejar Google Analytics (problemas de privacidad) o las estadísticas de JetPack en WordPress (están empezando a cobrar), una de las mejores opciones es utilizar Matomo, un proyecto Open Source que ya tiene unos cuantos años y que ya va por la versión 5. Esta es mi configuración recomendada para Matomo On-Premise (autoalojado). Recomendaciones de seguridad, privacidad, gestión de los datos y puesta en marcha del código de seguimiento. Lo tengo instalado en un servidor con Rocky Linux.

Es totalmente gratuito. Pero tienes que instalarlo en tu servidor (¡ojo! También tienes la opción Matomo for WordPress, recomendado si tu web tiene hasta 50 000 páginas vistas al mes).

¿Qué necesitas para usar Matomo On-Premise (autoalojado)?

No me voy a meter de lleno en la instalación. Solo te indico lo que necesitas. En mi caso, lo he instalado directamente con un solo clic gracias a los scripts de Virtualmin (mi panel de control del servidor).

  • Servidor web Apache, Nginx, IIS, LiteSpeed con acceso SSH o SFTP
  • Matomo 4.x requiere la versión 7.2.5 o superior de PHP. Matomo 4.16 y Matomo 5 funcionan bien con PHP 8.
  • Extensión PHP pdo y pdo_mysql, o la extensión mysqli. Pero también es interesante tener activas
  • php-curl php-gd php-cli mysql-server php-mysql php-xml php-mbstring
  • MySQL versión 5.5 o superior, o MariaDB
  • Es recomendable que tu dominio tenga activado un certificado SSL.
  • Descargar Matomo 5 y subir el archivo a tu servidor (también puedes hacerlo directamente en tu servidor con el comando: wget https://builds.matomo.org/matomo.zip && unzip matomo.zip si tienes acceso SSH.
  • Descomprimir el archivo ZIP en el servidor, por ejemplo en carpeta public_html: se creará carpeta matomo.
  • Ahora solo tienes que ir al navegador y poner https://tudominioweb.com/matomo para comenzar la instalación de 5 minutos. Tienes que seguir los pasos. Tienes que haber creado de antemano una base de datos MySQL para Matomo, porque te va a pedir los datos. Matomo te indicará si falta algo en el servidor y como solucionar el problema. Y pasamos a su configuración en el panel de control.

Configuración de Matomo On-Premise (autoalojado): consejos y recomendaciones

Pásate por esta página de Matomo: Post-deploy checklist for your Matomo instance. Este es el resumen de los puntos más importantes a comprobar después de instalar Matomo en tu servidor:

  1. Redirección HTTPS: Asegúrate de que al abrir la URL de Matomo con http:// redirige a https://.
  2. Acceso de Super Usuario: Verifica que puedes iniciar sesión como Super Usuario en Matomo.
  3. Plugins Activos: Comprueba que los plugins importantes (AbTesting, ActivityLog, Cohorts, etc.) están activos en Matomo > Administración > Plugins.
  4. Revisión del Sistema: Asegúrate de que no haya errores o advertencias en “Matomo > Administración (la rueda) > Revisión del sistema”.
  5. Envío de informes por email: Prueba si puedes enviar y recibir un informe por email desde Matomo en Persona > Reportes por Email.
  6. Código de Seguimiento JavaScript: Agrega el código de seguimiento en una página y comprueba que funciona. Verifica que los datos de la página se reflejan en el informe de URLs de Página.
  7. Crontab configurado: Verifica que la entrada crontab está creada y se ejecuta correctamente para que tu interfaz funcione más rápido.
  8. Archivo de Configuración de Matomo: Asegúrate de que el archivo de configuración de Matomo está correctamente configurado (config.ini.php).
  9. Geo-localización de IPs: Asegúrate de que las direcciones IP de los visitantes se geo-localizan correctamente. Vete a Sistema > Geolocalización y activa alguna de las opciones.
  10. Seguridad del Servidor de Base de Datos: Asegúrate de que el servidor de base de datos MySQL o MariaDB no es accesible desde Internet (funciona solo en localhost).
  11. Registro y respaldo de Logs: Verifica que el registro está habilitado en todos los servidores y que los archivos de log se respaldan automáticamente.
  12. Logs de Acceso del Servidor Web: Asegúrate de que los logs de acceso están habilitados en el servidor web de Matomo.
  13. Monitoreo de Servidor: Asegúrate de que el servidor tiene alertas para umbrales críticos como capacidad de almacenamiento o falta de memoria.
  14. Monitoreo de Uptime: Verifica que el servicio de Matomo está siendo monitoreado continuamente por un servicio de chequeo de uptime web.
  15. Backup de Base de Datos: Crea un backup de la base de datos todos los días y comprueba que funciona.

1.-Consideraciones de seguridad

Te recomiendo que revises lo siguiente: Configure Matomo for security.

Archivos .htaccess en carpetas

Lo primero que tienes que comprobar es que Matomo ha creado correctamente los archivos .htaccess en cada carpeta de la instalación. Por ejemplo, en la carpeta matomo/config tienes que tener un archivo .htaccess como este, que impide el acceso desde internet a esta carpeta:

# This file is auto generated by Matomo, do not edit directly
# Please report any issue or improvement directly to the Matomo team.

# First, deny access to all files in this directory
<Files "*">
<IfModule mod_version.c>
	<IfVersion < 2.4>
		Order Deny,Allow
		Deny from All
	</IfVersion>
	<IfVersion >= 2.4>
		Require all denied
	</IfVersion>
</IfModule>
<IfModule !mod_version.c>
	<IfModule !mod_authz_core.c>
		Order Deny,Allow
		Deny from All
	</IfModule>
	<IfModule mod_authz_core.c>
		Require all denied
	</IfModule>
</IfModule>
</Files>

Este archivo o uno similar (depende de la carpeta), tiene que estar presente en todas las carpetas. ¿No los tienes? Es posible que tu configuración de Apache no contenga: «AllowOverride All». Todos estos archivos .htaccess deberían haberse generado de manera automática. A lo mejor no ha funcionado porque Matomo no tiene permiso de escritura para estos directorios. En este caso, tienes que ejecutar el siguiente comando en el directorio Matomo utilizando un usuario que tenga permisos de escritura:

./console core:create-security-files

Y tendrás una salida como esta si se ha ejecutado correctamente:

./console core:create-security-files
Done. To check if this worked please open the system report or run `./console diagnostics:run` and look out for the private directories check. If it doesn't work you may need to execute this command using a user that has write permissions or maybe you are not using Apache or IIS web server. Please note you may need to execut this command every time you update Matomo to a newer version.

Si todo está correcto, en el menú, Diagnostic > System Check, deberías tener algo como esto.

Carpetas con acceso de escritura:

Directories with write access/public_html/matomo/tmp
/public_html/matomo/tmp/assets
/public_html/matomo/tmp/cache
/public_html/matomo/tmp/climulti
/public_html/matomo/tmp/latest
/public_html/matomo/tmp/logs
/public_html/matomo/tmp/sessions
/public_html/matomo/tmp/tcpdf
/public_html/matomo/tmp/templates_c
Directorios privados:
Required Private DirectoriesAll private directories are inaccessible from the internet.
Recommended Private DirectoriesAll private directories are inaccessible from the internet.

¿Y en la carpeta principal de Matomo? Pues no hay ningún archivo .htaccess. Puedes crearlo tú y personalizarlo. En el foro de Matomo dan algunas pistas, aunque la verdad es que las probabilidades de que todo deje de funcionar son bastante elevadas.

No sé si lo vas a utilizar o no (es fácil usar archivos .htaccess para restringir el acceso a Matomo solo a tus direcciones IP), pero ten en cuenta que siempre tienes que dejar acceso a los siguientes archivos:

  • matomo.php, matomo.js, piwik.php, piwik.js
  • URL index.php?module=CoreAdminHome&action=optOut
  • Archivos plugins/CoreAdminHome/javascripts/optOut.js y favicon.ico
  • Archivos js/container_*.js
  • plugins/HeatmapSessionRecording/configs.php si usas Heatmaps o grabación de Sesiones.
  • Tienes que tener cuidado si proteges Matomo con password mediante .htaccess si usas comandos con –url=https://ejemplo.com. Tienes que usar en su lugar: –url=https://usuario:[email protected]

¿Qué puedes poner sin ningún peligro en este archivo .htaccess en la carpeta principal de Matomo?

RewriteEngine On

# Redirigir HTTP a HTTPS mejorando la seguridad al cifrar la conexión entre el navegador del usuario y el servidor. ¡Ojo! Tienes que tener configurado un certificado SSL para tu dominio.
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Previene el listado de directorios 
IndexIgnore *  
   
# Protege los archivos .htaccess de ser accedidos directamente desde el navegador, en directorios y subdirectorios. 
<Files .htaccess>  
order allow,deny  
deny from all  
</Files>  
   
# Desactivar ETags: Mejora la coherencia de la caché en entornos con múltiples servidores y capas de caché (como Cloudflare), evitando problemas de sincronización de caché.
FileETag none

# Prevenir ataques de clickjacking
<IfModule mod_headers.c>
    Header always append X-Frame-Options SAMEORIGIN
</IfModule>

# Proteger contra inyecciones de scripts (XSS)
<IfModule mod_headers.c>
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Content-Type-Options "nosniff"
</IfModule>

Revisa el archivo .robots.txt

En la carpeta de tu instalación de Matomo, normalmente en /matomo/, tiene que tener un archivo robotos.txt que impide que el contenido de Matomo sea indexado por los principales buscadores de internet:

User-agent: Googlebot
User-agent: AdsBot-Google
User-agent: AdsBot-Google-Mobile
User-agent: AdsBot-Google-Mobile-Apps
User-agent: Google Favicon
User-agent: Googlebot-News
User-agent: Googlebot-Image
User-agent: Googlebot-Video
User-agent: Mediapartners-Google
User-agent: APIs-Google
User-agent: DuplexWeb-Google
User-agent: Bingbot
User-agent: Slurp
User-agent: DuckDuckBot
User-agent: Baiduspider
User-agent: AhrefsBot
User-agent: rogerbot
User-agent: YandexBot
User-agent: DotBot
User-agent: Twitterbot
User-agent: BingPreview
User-agent: LinkedInBot
User-agent: Yandexbot
User-agent: facebot
User-agent: facebookexternalhit
User-agent: MSNBot
User-agent: MSNBot-Media
Disallow: /
Allow: /matomo.php
Allow: /piwik.php
Allow: /matomo.js
Allow: /piwik.js
Allow: /js/

Revisa config.ini.php y utiliza estos valores

Este es tu archivo personal de configuración, el que no se borra en las actualizaciones. Tiene más peso que los valores que vas a encontrar en la configuración por defecto en global.ini.php. Debería de incluir los datos de tu base de datos y plugins activos. Pero también una sección de General y otra de logs como esta:

[database]
#Con todos los datos de tu base de datos: host, contraseña, usuario...

[log]
log_writers[] = "file" #Errores a un archivo
log_writers[] = "screen" #Errores en pantalla de Matomo
log_level = WARN #Nivel de error
logger_file_path = /matomo/tmp/logs/matomo.log #Comprueba el path completo en tu servidor y cambialo. 
logger_syslog_ident = 'matomo' #usuario en syslog para distinguirlo de otros. 

[General]
force_ssl = 1 #Redirección http->https
assume_secure_protocol = 1 #tráfico entre servidor y usuario es HTTPS
salt = "un_numero_bastante_largo_generado" #aumenta la seguridad de almacenamiento de contraseñas.
trusted_hosts[] = "tu_dominio-instalacion.com" #host en los que confias. Puedes tener varios
proxy_client_headers[] = "HTTP_CF_CONNECTING_IP" #Si tienes tu dominio detras de Cloudflare
proxy_host_headers[] = "HTTP_X_FORWARDED_HOST" #Si tienes tu dominio detras de Cloudflare

[Plugins]
#Plugins Matomo
[PluginsInstalled]
#Plugins instalados

En la sección Diagnostic > Config file puedes comprobar los valores que tienes activos. Si le das a hide all unchanged values, solo te mostrará los valores que has añadido a config/config.ini.php.

Matomo y Cloudflare

Si tienes tu dominio gestionado por Cloudflare (DNS), tienes que tener en cuenta unas cuantas cosas.

Tienes que tener activado en el archivo global.ini.php estos dos valores en la sección [General]:

  • proxy_client_headers[] = «HTTP_CF_CONNECTING_IP»
  • proxy_host_headers[] = «HTTP_X_FORWARDED_HOST»

Puedes configurar en Cloudflare la protección contra Bot maliciosos para toda tu instalación (con Bot Fight Mode) o puedes instalar tú mismo tus propias reglas de protección contra bots en sus reglas WAF. Vas a evitar que los Bad Bots visiten tu instalación. Esto lo puedes configurar también en los dominios donde tengas instalado Matomo.

Reglas para bloquear bad bots en Cloudflare para Matomo.

También puedes activar la protección de Cloudflare. Puedes poner su nivel de seguridad en Medium o High para evitar visitantes maliciosos a tu instalación. También deberías desactivar la caché de Cloudflare para tu instalación de Matomo.

Tengo activada una regla de caché (Cache Rules) para evitar que la instalación de Matomo sea cacheada (Bypass cache):

(http.request.uri.path contains "tu_web.com/matomo/")

Y eliges: Cache eligibility: Bypass Cache.

Tengo una regla en Configuration Rules para activar unas cuantas cosas de seguridad:

(http.request.uri.path contains "tu_web.com/matomo/")

Y activas:

  • Automatic HTTPS Rewrites
  • Security Level: High (si ves que algo empieza a fallar, pásate a Medium)

Y desactivas:

  • Rocket Loader
  • Browser Integrity Check

Cómo Cloudflare gestiona el dominio y sus DNS (están detrás del proxy de Cloudflare para proteger tu IP), puedes activar las siguientes cosas:

  • SSL/TLS encryption mode is Full (strict): si tienes configurado tu dominio en tu servidor con un certificado de Let’s Encrypt
  • Always Use HTTPS
  • HTTP Strict Transport Security (HSTS)
  • Opportunistic Encryption
  • TLS 1.3
  • DNSSEC
  • Automatic HTTPS Rewrites

CONSEJO: tienes que activar y configurar mod_remoteip en Apache para que el servidor registre correctamente las IP de tus visitantes al estar detrás del Proxy de Cloudflare. En mi caso he añadido lo siguiente (el módulo de Apache ya estaba activo).

Creo el archivo /etc/httpd/conf.d/remoteip.conf (comprueba las IP de Cloudflare de vez en cuando por si han cambiado alguna)

RemoteIPHeader CF-Connecting-IP

# Lista de IPs de Cloudflare
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22
RemoteIPTrustedProxy 103.22.200.0/22
RemoteIPTrustedProxy 103.31.4.0/22
RemoteIPTrustedProxy 141.101.64.0/18
RemoteIPTrustedProxy 108.162.192.0/18
RemoteIPTrustedProxy 190.93.240.0/20
RemoteIPTrustedProxy 188.114.96.0/20
RemoteIPTrustedProxy 197.234.240.0/22
RemoteIPTrustedProxy 198.41.128.0/17
RemoteIPTrustedProxy 162.158.0.0/15
RemoteIPTrustedProxy 104.16.0.0/13
RemoteIPTrustedProxy 104.24.0.0/14
RemoteIPTrustedProxy 172.64.0.0/13
RemoteIPTrustedProxy 131.0.72.0/22
RemoteIPTrustedProxy 2400:cb00::/32
RemoteIPTrustedProxy 2606:4700::/32
RemoteIPTrustedProxy 2803:f800::/32
RemoteIPTrustedProxy 2405:b500::/32
RemoteIPTrustedProxy 2405:8100::/32
RemoteIPTrustedProxy 2a06:98c0::/29
RemoteIPTrustedProxy 2c0f:f248::/32

Cambiamos el formato de los logs en httpd.conf: buscas LogFormat y cambias %h por %a:

<IfModule log_config_module>
    LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%a %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
        LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
</IfModule>

Compruebas configuración de Apache y reinicias:

sudo apachectl configtest
sudo systemctl restart httpd

Te lo cuento en detalle en: Configuración de mod_remoteip con Apache y Cloudflare.

Instala el plugin gratuito SecurityInfo plugin 

Lo instalas desde Platform > Marketplace

Compruebas la seguridad de Matomo con el SecurityInfo plugin 

Prueba automáticamente la seguridad de tu servidor Matomo e informa de una lista de recomendaciones de seguridad. En mi caso me dice que tengo PHP 8.2 y que hay una versión nueva. Ok. No pasa nada, la PHP 8.2 está activa y recibe actualizaciones.

Ejecutas System Check

Ejecutas System Check en Matomo

Otra opción muy interesante nada más comenzar. Tienes que ir a Diagnostic > System Check. Compruebas que todo funciona correctamente y sobre todo, que tienes todo lo necesario instalado en tu servidor para que funcione bien. Extensiones de PHP instaladas, directorios en los que se debe poder escribir, cron activo, conexiones SSL, HTTPS o si tu base de datos puede crear tablas temporales, si tienes activo Load Infile o si la geolocalización funciona de forma correcta.

Base de datos

Es interesante leer: https://matomo.org/faq/on-premise/managing-your-databases-size/, para saber cómo controlar el tamaño de la base de datos.

  • Según Matomo: Una estimación aproximada del uso del tamaño de la base de datos Matomo es de aproximadamente 1 GB por cada 5 millones de páginas vistas. Si tu web realiza un seguimiento de cien mil páginas vistas por día (3 millones de páginas vistas al mes), puedes esperar un tamaño de base de datos de más o menos 7 GB después de 1 año.

Básicamente, tienes que crear unos cuantos trabajos cron para mantener optimizada la base de datos (Los ejecutas una vez al mes con un usuario que tenga permisos suficientes y pones la ruta correcta a tu instalación de Matomo en tu servidor):

# Ejecutar el primer comando el primer día de cada mes a las 2:00 AM
0 2 1 * * /usr/bin/php /tu/ruta/matomo/console database:optimize-archive-tables last2 > /dev/null
# Ejecutar el segundo comando el primer día de cada mes a las 2:30 AM
30 2 1 * * /usr/bin/php /tu/ruta/matomo/console database:optimize-archive-tables january > /dev/null

Con el primero optimizas los últimos meses de datos y con el segundo optimizar el mes de enero, que es cuando se guardan los informes anuales.

  • Instala Matomo en una base de datos única con su propio usuario y contraseña segura.
  • Utiliza el comando mysql_secure_installation para asegurar tanto MariaDB (puedes usar también mariadb-secure-installation) como MySQL.
  • La base de datos no se debe ser accesible desde internet (pones en my.cnf: bind-address = localhost)
  • Utiliza siempre una versión actualizada de MariaDB o MySQL (también de PHP).
  • Puede aumentar la opción innodb_buffer_pool_size de MySQL o MariaDB siempre y cuando tengas la suficiente memoria RAM, lo que mejorará el rendimiento general de Matomo. Recomiendan establecer innodb_buffer_pool_size en al menos el 80 % de la RAM disponible para MySQL (e incluso más si tiene más de 8 GB de RAM).

Actualiza Matomo

Muy importante estar al tanto de las novedades de seguridad y de sus actualizaciones. Tienes que tener activas las actualizaciones con un solo clic. En System > General Settings puedes comprobar tu política de actualización:

Actualizaciones automáticas de Matomo

Activa la autenticación de 2 factores 2FA

Lo puedes hacer en Personal > Security. Por supuesto, usa contraseñas fuertes y aleatorias generadas por tu gestor de contraseña.

Activa 2FA en Matomo

2.-Configura los ajustes de archivos

Vas a manejar una base de datos que puede crecer mucho con el tiempo, así que es importante tener una buena política de archivado.

Configura los ajustes de archivos en Matomo

En System > General Setting tienes un apartado llamado Archive Settings. Por defecto está marcado en «Archivo de informes cuando se ven desde el navegador», pero esto solo funciona bien en sitios con pocas visitas. Si tienes mucho tráfico, la interfaz va a funcionar de forma muy lenta. Por eso te recomiendan poner este valor en NO para los sitios de mucho tráfico, y crear un trabajo cron en tu servidor para que procese los reportes de Matomo cada hora.

Puedes hacerlo de dos maneras:

Archivo en cron:

vi /etc/cron.d/matomo-archive

#pones lo siguiente:

MAILTO="[email protected]"
5 * * * * www-data /usr/bin/php /ruta/a/matomo/console core:archive --url=http://ejemplo.org/matomo/ > /home/ejemplo/matomo-archive.log

Tienes que poner tu email. Cambiar www-data a un usuario que tenga los permisos suficiente para ejecutar el cron en tu servidor. Poner la ruta a tu instalación de matomo y la url correcta de tu instalación. Lo manda todo a un archivo de log, que no debe estar en una carpeta visible desde internet. Si pones > sobreescribe ese archivo todas las veces. Si pones >> va añadiendo líneas y tienes que rotar el log cada cierto tiempo para vaciarlo.

También tienes la opción de crear directamente un crontab como este:

5 * * * * /usr/bin/php /ruta/a/matomo/console core:archive --url=http://ejemplo.org/matomo/ > /dev/null

No te lo he dicho antes, pero comprueba en tu sistema que la ruta /usr/bin/php es correcta.

3.-Geolocalización

Geolocalización en Matomo

Por defecto viene activa la opción Default, que no es muy fiable. Por eso tienes activar la opción DBIP o GeoIP 2 para PHP o DBIP o GeoIP 2 para HTTP. La opción PHP es más fácil de implementar sin añadir nada nuevo al servidor. Como no viene instalada ninguna base de datos por defecto, tienes que ir al final de System > Geolocation y pinchar en la opción automática que te dan en Setup automatic updates of geolocation databases. Va a descargar la base de datos e instalarla en Matomo para poder activarla en el apartado anterior. Cada cierto tiempo se actualiza la base de datos. Ya puedes activar la opción arriba.

Geolocalización en Matomo: descargamos base de datos.

4.-Privacidad

Tema importante, sobre todo si vives en la UE con su GDPR. Te recomiendo los siguientes valores para respetar la privacidad de tus visitantes:

En Privacy > Anonymyze Data > Anonymize Tracking Data:

Privacy > Anonymyze Data > Anonymize Tracking Data en Matomo
  • Anonimiza las IP de tus visitantes.
  • Fuerza el seguimiento sin cookies.

En Regularly delete old raw data:

Activas Regularly delete old raw data en Matomo

Borras los datos sin procesar cada cierto tiempo en la base de datos. Por ejemplo, 180 días. Los datos sin procesar contienen todos los detalles sobre cada visita individual y cada acción que tus visitantes tomaron.

En Delete old aggregated report data:

Activas Delete old aggregated report data de Matomo

Borras los informes antiguos, por ejemplo, de más de 12 meses, pero te quedas las métricas básicas y los informes mensuales y anuales.

También puedes cambiar cada cuánto tiempo se borran los datos en Schedule old data deletion, por ejemplo cada semana para que la base datos este limpita.

  • ¡Ojo! Eliminar tus informes antiguos significa que no podrás ver las tendencias a largo plazo. Si también eliminas los datos de registro antiguos, no podrá volver a procesar tus informes. Piensa cuidadosamente antes de eliminar tanto los datos no procesados RAW como los informes.

Evidentemente, también debes informar a tus usuarios en tu política de privacidad que estás usando Matomo, y puedes configurar un «Let users opt-out of tracking» para que tus visitantes elijan si quieren que su información sea recopilada o no por tu instalación de Matomo.

5.-Código de seguimiento

Lo mejor para el final. Ahora que ya tienes todo lo demás configurado, puede meter el código de seguimiento de Matomo en tus páginas web. Con una única instalación de Matomo en tu servidor, puedes configurar todas las webs que quieras. Tienes que ir Websites > Manage y darle a Add A New Measurable.

Configurar nuevo sitio web en Matomo
  • Pones un nombre
  • URL de la web
  • Puedes excluir tu IP, parámetros, User Agents, referrers
  • Puedes configurar el seguimiento de Comercio Electrónico, moneda y zona horaria.

Le das a guardar y te aparecen las diferentes formas de añadir el código a tu web (luego lo tienes siempre en Tracking Code). ¿Cómo te recomiendo poner el código? Pues tú mismo entre las etiquetas <head> de tu web. Pero te aconsejó que lo configures de dos maneras: JavaScript Tracking Code (ofrece más datos) y Image Tracking (se pone en marcha si el anterior no funciona).

Si vas a JavaScript Tracking Code, tienes la opción también de incluir el seguimiento mediante pixel con Track users with JavaScript disabled. También puedes deshabilitar el seguimiento mediante cookies en este apartado.

Código de seguimiento de Matomo para páginas web mediante JavaScript y pixel de imagen.

Te va a aparecer algo como esto:

<!-- Matomo -->
<script>
  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="https://tu_web.com/matomo/";
    _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);
  })();
</script>
<noscript><p><img referrerpolicy="no-referrer-when-downgrade" src="https://tu_web.com/matomo/matomo.php?idsite=1&amp;rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End Matomo Code -->

La primera parte entre <script> y </script> es el código JavaScript que recopila muchos más datos que el de imagen, pero que a veces no funciona si hay bloqueadores de contenido o de scripts instalados por los navegadores.

La segunda parte entre <noscript> y </noscript> es el código de Matomo mediante pixel, con una pequeña imagen, que debería de ponerse a funcionar en caso de que el primero no pueda. Recopila menos información, pero algo es algo.

Este es el código que tienes que poner en tu página web entre las etiquetas <head>. En pocos minutos deberían de aparecer datos en tu web. Ya está todo configurado. Una opción interesante para WordPress, es utilizar el plugin, Connect Matomo (WP-Matomo, WP-Piwik). No uses el plugin, Matomo Analytics, que ese es para instalar Matomo en WordPress, no para conectar tu servidor Matomo con WordPress.

Optimizaciones de rendimiento que puedes aplicar para cargar el rastreador de JavaScript de Matomo más rápido:

  • Configurar las políticas de Caché para que se guarden en los navegadores más tiempo los archivos matomo.js (o piwik.js). Te he contado cómo hacerlo en Cache y Cloudflare.
  • Activar GZIP en tu servidor.
  • Preload DNS: pones en tu cabecera <head> de la web lo siguiente: <link rel=»dns-prefetch» href=»//tu_url_matomo.com»>
  • Añades en el <head> de tu web: <link rel=»preload» href=»https://tu_url_matomo.com/matomo.js» onload=»embedTracker()» type=»script» crossorigin>. Si cargas tu archivo de seguimiento de JavaScript en el <head> de tu sitio web, esto no debería ser necesario.

Ahora solo te faltaría personalizar la interfaz de Matomo a tu gusto, crear informes, personalizar dimensiones, objetivos… pero eso da para otro artículo.


Descubre más desde algoentremanos.com

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Foto del autor

Ivan Benito

Apasionado de la lectura y los viajes, experto en tecnología e informática y fan de la privacidad online. Desde el año 2007 me he dedicado al SEO, a escribir y a crear páginas web con WordPress sobre todo tipo de temáticas. Si tienes alguna duda y necesitas ayuda... ¡Pregúntame!

Si tienes preguntas, quieres que hagamos una review de una app, programa o producto, simplemente mándanos un e-mail mediante nuestro formulario de contacto. Te contestaremos en el menor tiempo posible. ¡Muchas gracias y salU2! Algoentremanos realiza reviews de manera profesional y en muchas ocasiones recibimos compensación de las compañías cuyos productos revisamos. Probamos cada producto a fondo y otorgamos altas calificaciones solo a los mejores. La propiedad de Algoentremanos.com es independiente y las opiniones expresadas aquí son solo nuestras. Algunos enlaces del artículo son afiliados: pueden generar un beneficio a algoentremanos.com. Saber más.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.