La analítica se ejecuta en todas tus páginas, así que su peso es una pregunta legítima, y la respuesta no deberías tener que creértela sin más. Esta página da el número y el método, para que puedas repetir la medición.
El número
11,7 KB comprimido con gzip, a partir de 33,8 KB de JavaScript, medido sobre el paquete que se sirve a un sitio en producción.
Para repetirlo: descarga el script con Accept-Encoding: identity y comprímelo localmente con gzip a nivel 9. Eso es justo lo que hace el comando de abajo, y el resultado es lo que un navegador descarga una vez y luego guarda en caché.
curl -s -H "Accept-Encoding: identity" \
"https://t.skomi.com/s/YOUR-SITE-ID.js" | gzip -9 | wc -c
⚠ Tu paquete puede ser distinto del nuestro, y es a propósito. El script se compone por sitio: incluye los ajustes que ese sitio usa de verdad, y los fragmentos de captura que necesitan sus productos. Un sitio con menos cosas activadas recibe un archivo más pequeño. Ejecuta el comando de arriba con tu propio identificador de sitio para tener tu número en vez de fiarte de este.
Qué lleva dentro
Un solo archivo, que hace todo el trabajo:
- La página vista en sí: ruta, referente, parámetros de campaña, tamaño de pantalla.
- La identidad, derivada sin almacenamiento. De serie no se escribe nada en el dispositivo del visitante, así que no hay código de cookies, ni fontanería de consentimiento, ni banner que cargar antes de que pueda empezar la medición. Eso explica en buena parte que todo quepa en un solo archivo.
- Sesión e interacción: cuánto tiempo retuvo una página la atención, hasta dónde se leyó.
- Captura automática: clics salientes, descargas, envíos de formulario y 404, de las que hayas activado.
- El transporte: agrupación, reintentos, y la vía de ocultación de página.
No lleva ningún framework, ni un paquete de polyfills, ni una segunda petición para un «complemento». Lo que llega es lo que se ejecuta.
Cómo carga
El fragmento ocupa una línea y lleva el atributo defer:
<script src="https://t.skomi.com/s/YOUR-SITE-ID.js" defer></script>
defer significa que el navegador sigue analizando tu página y ejecuta el script después de que el documento esté listo. Nunca está en la ruta crítica, no bloquea el primer pintado, y moverlo al <head> no cambia eso: el trabajo lo hace el atributo, no la posición.
No se inyecta nada en tu maquetación. El script no añade elementos, ni estilos, ni fuentes, así que no puede desplazar nada de la página. Sea cual sea tu Cumulative Layout Shift, este script no contribuye a él.
Cada cuánto se descarga
Cache-Control: public, max-age=300, stale-while-revalidate=86400
ETag: W/"…"
Cinco minutos de caché fresca, y luego un día en el que se sirve una copia caducada de inmediato mientras se descarga una nueva en segundo plano. Así que un visitante que vuelve casi nunca lo espera, y una página vista repetida dentro de la ventana no cuesta nada.
⚠ Los cinco minutos son deliberadamente cortos, y es el único número de aquí que parece equivocado a primera vista. El paquete se compone a partir de tus ajustes: activa el seguimiento de enlaces salientes, cambia una exclusión, activa un producto, y el archivo cambia. Una caché larga significaría que tu cambio llega a los visitantes reales horas después. stale-while-revalidate es lo que recupera la velocidad: el visitante recibe la copia vieja al instante y la nueva llega en segundo plano.
El archivo lleva un hash de su contenido, así que cuando no ha cambiado nada la respuesta se valida con el ETag y no se mueve ningún byte.
Qué cuesta mientras funciona
- Una petición para el script, cacheada como se ha dicho.
- Una petición pequeña por página vista.
- Un
sendBeaconcuando la página se oculta, que es como se cierra el tiempo en la página. Los beacons los pone en cola el navegador y no retrasan la navegación; este es el único lugar donde el rastreador usa uno.
Las duraciones se calculan en el servidor a partir de esas marcas de tiempo y no con un cronómetro corriendo en la página, así que no hay ningún temporizador disparándose mientras alguien lee.
Ser honestos sobre la tendencia
El script pesaba unos 10 KB en bruto hace unos meses y ahora son 33,8 KB. Creció a medida que se le añadían funciones, entre ellas la interacción y la captura automática. Es una contrapartida real y vale la pena decirlo claramente en vez de citar solo la cifra de hoy: una herramienta que hace más llega como más bytes.
Si quieres el archivo más pequeño posible, desactiva las capturas automáticas que no uses: el paquete se compone a partir de tus ajustes, así que lo que apagas no se manda.
⚠ No publicamos el tamaño del script de nadie más. Una comparación necesita las dos cifras vueltas a medir el mismo día con el mismo método, y la mitad que pertenece a otro no se puede comprobar automáticamente, lo que la convierte justo en el número que se queda obsoleto mientras sigue pareciendo fiable. El nuestro se comprueba con el archivo compilado en cada ejecución de las pruebas. Mide el suyo tú mismo, con el comando de arriba, el día que necesites la respuesta.