A analítica corre em todas as páginas que tens, portanto o peso dela é uma pergunta justa e não devias ter de aceitar a resposta em confiança. Esta página dá o número e o método, para o poderes repetir.
O número
11,7 KB comprimido com gzip, a partir de 33,8 KB de JavaScript, medido contra o pacote servido a um sítio em produção.
Para o repetir: pede o script com Accept-Encoding: identity e comprime o resultado localmente com gzip ao nível 9. É esse o número em baixo, e é o que um navegador descarrega uma vez e depois guarda em cache.
curl -s -H "Accept-Encoding: identity" \
"https://t.skomi.com/s/YOUR-SITE-ID.js" | gzip -9 | wc -c
⚠ O teu pacote pode ser diferente do nosso, e é assim de propósito. O script é composto por sítio: leva as definições que esse sítio usa mesmo, e os fragmentos de recolha de que os produtos dele precisam. Um sítio com menos coisas ligadas recebe um ficheiro mais pequeno. Corre o comando acima contra o teu próprio identificador de sítio para teres o teu número em vez de confiares neste.
O que traz lá dentro
Um ficheiro, a fazer o trabalho todo:
- A própria página vista: caminho, referência, parâmetros de campanha, tamanho do ecrã.
- Identidade, derivada sem armazenamento. Não se escreve nada no dispositivo do visitante, portanto não há código de cookies, nem canalização de consentimento, nem um aviso para carregar antes de a medição poder começar. É em grande parte por isso que o ficheiro é um só.
- Sessão e envolvimento: quanto tempo uma página segurou a atenção, e até onde foi lida.
- Recolha automática: cliques para fora, descarregamentos, envios de formulário e 404, para os que tiveres ligado.
- O transporte: envio em lotes, nova tentativa, e o caminho de ocultação da página.
Não há nenhuma framework lá dentro, nenhum pacote de polyfills, e nenhum segundo pedido para um "plugin". O que chega é o que corre.
Como carrega
O fragmento é uma linha e traz defer:
<script src="https://t.skomi.com/s/YOUR-SITE-ID.js" defer></script>
defer quer dizer que o navegador continua a interpretar a tua página e corre o script depois de o documento estar pronto. Nunca está no caminho crítico, não bloqueia a primeira pintura, e mudá-lo para dentro do <head> não altera isso: quem faz o trabalho é o atributo, não a posição.
Não se injeta nada na tua disposição. O script não acrescenta elementos, nem estilos, nem tipos de letra, portanto não consegue deslocar nada na página. Seja qual for a tua Mudança Cumulativa de Disposição, isto não está lá dentro.
Com que frequência é pedido
Cache-Control: public, max-age=300, stale-while-revalidate=86400
ETag: W/"…"
Cinco minutos de cache fresca, e depois um dia em que uma cópia velha é servida de imediato enquanto uma nova é pedida em segundo plano. Portanto um visitante que volta quase nunca espera por ela, e uma página vista repetida dentro da janela não custa rigorosamente nada.
⚠ Os cinco minutos são deliberadamente curtos, e são o único número aqui que parece errado à primeira vista. O pacote é composto a partir das tuas definições: liga a medição de ligações para fora, muda uma exclusão, liga um produto, e o ficheiro muda. Uma cache longa significaria a tua alteração a chegar aos visitantes reais horas depois. O stale-while-revalidate é o que compra a velocidade de volta: o visitante recebe a cópia velha instantaneamente e a nova aterra em segundo plano.
O ficheiro tem uma impressão digital do conteúdo, portanto quando nada mudou a resposta valida contra o ETag e não se mexe um único byte.
O que custa enquanto corre
- Um pedido para o script, guardado em cache como acima.
- Um pedido pequeno por página vista.
- Um
sendBeaconquando a página é ocultada, que é como o tempo na página é fechado. Os beacons são postos em fila pelo navegador e não atrasam a navegação; este é o único sítio onde o rastreador usa um.
As durações são calculadas no servidor a partir desses instantes em vez de por um temporizador a correr na página, portanto não há nenhum intervalo a disparar enquanto alguém lê.
Ser honesto quanto à tendência
O script tinha cerca de 10 KB em bruto há uns meses e agora tem 33,8 KB. Cresceu porque lhe foram acrescentados o envolvimento, a recolha automática e o suporte para aplicações. É uma troca real e vale a pena dizê-lo com todas as letras em vez de citar só o valor de hoje: uma ferramenta que faz mais chega como mais bytes.
Se queres o ficheiro mais pequeno possível, desliga as recolhas automáticas que não usas: o pacote é composto a partir das tuas definições, portanto o que desligas não é enviado.
⚠ Não publicamos o tamanho do script de mais ninguém. Uma comparação precisa dos dois valores medidos de novo no mesmo dia pelo mesmo método, e a metade que pertence a outra pessoa não se pode verificar automaticamente, o que faz dela exatamente o número que envelhece com ar de autoridade. O nosso é verificado contra o ficheiro construído em cada corrida de testes. Mede o deles tu mesmo, com o comando acima, no dia em que precisares da resposta.