¿Te han dicho que alojar el script de Analytics localmente te dará +100 en PageSpeed y que Google te va a aplaudir? Pues te han engañado. Aquí va la verdad, sin censura, para SEOs técnicos y webmasters de verdad.
¿Por qué querrías alojar Google Analytics localmente?
- Evitar bloqueadores: Sirviendo el script desde tu dominio, algunos adblockers lo dejan pasar (spoiler: los buenos, no).
- Quitarte el famoso “recurso de terceros” de PageSpeed Insights: Pero solo en parte.
- Controlar la caché: Puedes ponerle el caché que te dé la gana y reducir peticiones externas.
Pero el remedio puede ser peor que la enfermedad.
El problema: Peso, ejecución y penalizaciones
- El script es pesado (40-70KB según versión y capa de tracking).
- Aunque lo sirvas local, sigue bloqueando el renderizado y bajando la nota en PageSpeed.
- En webs optimizadas, Google Analytics puede hacerte pasar de 100 a 70-80 en PageSpeed.
- ¿Alojarlo localmente ayuda? Poquísimo. El navegador tiene que cargarlo igual, analizarlo igual y ejecutar el tracking igual.
Peligro: Plugins de caché y minificación
Si usas WordPress o cualquier CMS con plugins tipo Autoptimize, WP Rocket, LiteSpeed, etc., te la estás jugando:
- Algunos plugins minifican, concatenan, o incluso reescriben cualquier JS que pillan.
- Si el script de Analytics pasa por ahí, puede dejar de funcionar sin que te enteres.
- Resultado: No se envían datos, pierdes métricas, y encima piensas que todo va bien.
- Si encima automatizas la descarga y el plugin le mete mano cada vez… desastre.
¿Solución?
- Excluye SIEMPRE el script de Analytics de cualquier plugin de caché/minificación.
- Revisa el tracking después de cada cambio.
Tutorial: Aloja Google Analytics localmente (Sin romperlo)
1. Descarga el Script
Para GA4:
curl https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX -o /ruta-a-tu-web/js/gtag.js
Universal Analytics:
curl https://www.google-analytics.com/analytics.js -o /ruta-a-tu-web/js/analytics.js
Truco: Automatiza esto con cron para que no se te quede obsoleto.
2. Sube el Script y Cambia el HTML
<!-- Antes -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<!-- Después -->
<script async src="/js/gtag.js"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
3. ¡IMPORTANTE! Excluye el script de plugins y compresión
- En NGINX:
location /js/gtag.js { gzip off; add_header Cache-Control "public, max-age=604800, immutable"; }
- En Apache:
<Files "gtag.js"> SetEnv no-gzip 1 Header set Cache-Control "public, max-age=604800, immutable" </Files>
- En WordPress:
Añade/js/gtag.js
a la lista de exclusión de Autoptimize, WP Rocket, LiteSpeed, etc.
¡O lo rompes seguro!
4. Automatiza la actualización
Haz un script en bash:
curl https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX -o /ruta-a-tu-web/js/gtag.js
Y ponlo en el crontab:
0 3 * * * bash /ruta/al/script.sh
Así tendrás el script siempre actualizado (¡pero recuerda que si el plugin lo toca, igual lo corrompe!).
Métricas Reales: ¿Qué ganas y qué pierdes?
- Reducción de la latencia DNS: Ganas unos milisegundos.
- ¿Sube PageSpeed?
- Si tienes una web estática, el impacto de Analytics puede ser BRUTAL.
- Alojarlo local solo quita la petición externa, pero el script sigue pesando y bloqueando.
- En muchos casos, la puntuación apenas mejora, y si Analytics es tu único JS, puede seguir machacando tu nota.
- ¿Pierdes datos?
- Si se rompe el script, sí.
- Si Google actualiza el script y no lo descargas, también.
Paradoja SEO: ¿Vale la pena?
- Hacerlo por “mejorar el SEO” es absurdo si luego Analytics te machaca la velocidad.
- Google recomienda Analytics, pero te penaliza por usarlo.
- Si eres un obseso de la perfección, prueba, pero asume el riesgo.
- Si no sabes lo que haces, vas a romper el tracking o a perder datos sí o sí.
TL;DR
- ¿Alojar Analytics localmente? Solo si sabes bien lo que haces.
- Exclúyelo de plugins de caché/minificación.
- Automatiza la actualización.
- No esperes milagros en PageSpeed ni en SEO.
- Si Analytics es imprescindible para ti, acepta el precio: velocidad o datos, pero nunca ambos al 100%.
Recursos útiles
- Google Analytics gtag.js
- Problemas con plugins de minificación en WP Rocket
- Discusión en Lighthouse: Self-hosted Analytics
¿Conclusión?
Aquí nadie te va a regalar puntos extra. Si quieres datos, paga el precio en velocidad. Si quieres velocidad brutal, olvida Analytics o usa una alternativa ligera.