Estou em uma missão para atingir 100/100 no PageSpeed e estou quase lá. Estou tentando encontrar uma boa solução para armazenar em cache o Google Analytics.
Aqui está a mensagem que recebo:
Aproveitar o cache do navegador A configuração de uma data de validade ou uma idade máxima nos cabeçalhos HTTP para recursos estáticos instrui o navegador a carregar recursos baixados anteriormente do disco local em vez da rede. Aproveite o cache do navegador para os seguintes recursos que podem ser armazenados em cache: http://www.google-analytics.com/analytics.js (2 horas)
A única solução que encontrei foi em 2012 e não acho que seja uma boa solução. Essencialmente, você copia o código do GA e o hospeda por conta própria. Em seguida, você executa um trabalho cron para verificar novamente o Google uma vez por dia para pegar o código GA mais recente e substituí-lo.
http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/
O que mais posso fazer para atingir 100/100 enquanto também uso o Google Analytics?
Obrigado.
fonte
Respostas:
Bem, se o Google está traindo você, você pode enganar o Google de volta:
Este é o agente do usuário para o pageSpeed:
Você pode inserir um condicional para evitar veicular o script de análise no PageSpeed:
Obviamente, isso não fará nenhuma melhoria real, mas se sua única preocupação é obter uma pontuação de 100/100, isso o fará.
fonte
if(navigator.userAgent.indexOf("Speed Insights") == -1) { /* analytics here */ }
{ }
exemplo, juntamente com qualquer outro JS que o GA use (como o quega('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview');
seja)Há um subconjunto da biblioteca js do Google Analytics chamado ga-lite que você pode armazenar em cache da maneira que desejar.
A biblioteca usa a API REST pública do Google Analytics para enviar os dados de rastreamento do usuário ao Google. Você pode ler mais na postagem do blog sobre ga-lite .
Disclaimer: Eu sou o autor desta biblioteca. Lutei com esse problema específico e o melhor resultado que encontrei foi implementar esta solução.
fonte
Aqui está uma solução realmente simples usando JS, para rastreamento básico do GA, que também funcionará para caches / proxies de borda (isso foi convertido a partir de um comentário):
Nota: este é o script GA padrão. Você pode ter outras
ga()
chamadas e, nesse caso, sempre precisará verificar o agente do usuário antes de ligarga()
, caso contrário, poderá ocorrer um erro.fonte
ga
comoga = function(){};
antes do trecho falhar silenciosamente quando executado,ga();
para não precisar verificar a existência dessa função em todo o código.Eu não me importaria com isso. Não o coloque no seu próprio servidor, parece que esse é um problema do Google, mas é o melhor possível. Colocar o arquivo em seu próprio servidor criará muitos problemas novos.
Eles provavelmente precisam que o arquivo seja chamado todas as vezes, em vez de obtê-lo do cache do cliente, pois dessa forma você não contaria as visitas.
Se você tiver algum problema para se sentir bem com isso, execute o URL do Google Insights no próprio Google Insights, ria, relaxe e continue seu trabalho.
fonte
Nos documentos do Google, eles identificaram um
pagespeed
filtro que carregará o script de forma assíncrona:Você pode encontrar a documentação aqui: https://developers.google.com/speed/pagespeed/module/filter-make-google-analytics-async
Uma coisa a destacar é que o filtro é considerado de alto risco. Dos documentos:
fonte
varvy.com ( 100/100 insight de velocidade da página do Google ) carrega o código do google analitycs somente se o usuário fizer um scroll da página:
fonte
Você pode tentar hospedar o analytics.js localmente e atualizar seu conteúdo com um script de cache ou manualmente.
O arquivo js é atualizado apenas algumas vezes por ano e, se você não precisar de novos recursos de rastreamento, atualize-o manualmente.
https://developers.google.com/analytics/devguides/collection/analyticsjs/changelog
fonte
armazene localy analytics.js, mas não é recomendado pelo google: https://support.google.com/analytics/answer/1032389?hl=pt-BR
não é recomendado, pois o google pode atualizar o script quando quiserem; basta fazer um script que faça o download do javascript do analytics a cada semana e você não terá problemas!
A propósito, esta solução evita que o adblock bloqueie os scripts do Google Analytics
fonte
Você pode fazer proxy do script do google analytics por meio de seu próprio servidor, salvá-lo localmente e atualizar automaticamente o arquivo a cada hora para garantir que seja sempre a versão mais recente do google.
Já fiz isso em alguns sites agora e tudo está funcionando bem.
Rota do proxy do Google Analytics na pilha NodeJS / MEAN
É assim que eu o implementei no meu blog criado com a pilha MEAN.
Método de ação de proxy do Google Analytics no ASP.NET MVC
É assim que eu o implementei em outros sites criados com o ASP.NET MVC.
Este é o CompressAttribute usado pelo MVC ProxyController para compactação Gzip
Script do Google Analytics atualizado
No lado do cliente, anexo o caminho do analytics com a data atual até a hora, para que o navegador não use uma versão em cache com mais de uma hora.
fonte
Para Nginx:
Em seguida, altere o caminho https://www.google-analytics.com/analytics.js para https://yoursite.com/analytics.js
fonte
PHP
Adicione isso no seu código HTML ou PHP:
Javascript
Isso funciona bem com JavaScript:
fonte
tente isso basta inserir antes
Altere xx-xxxxxxx-x para o seu código, verifique a implementação aqui http://www.gee.web.id/2016/11/how-to-leverage-browser-caching-for-google-analitycs.html
fonte
O Google adverte contra o uso de cópias locais dos scripts analíticos. No entanto, se você estiver fazendo isso, provavelmente desejará usar cópias locais dos plugins e do script de depuração.
Uma segunda preocupação com o cache agressivo é que você receberá hits de páginas em cache - que podem ter sido alteradas ou removidas do site.
fonte
Para corrigir esse problema, você teria que baixar o arquivo localmente e executar um trabalho cron para manter a atualização. Nota: isso não torna seu site mais rápido, então é melhor ignorá-lo.
No entanto, para fins de demonstração, siga este guia: http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/
fonte
Isso pode fazer o truque :)
fonte
Dependendo do uso dos dados do Google Analytics, se você quiser informações básicas (como visitas, interações da interface do usuário), poderá não incluir o analytics.js, mas ainda assim coletar dados no GA.
Uma opção pode ser usar o protocolo de medição em um script em cache. Google Analytics: visão geral do protocolo de avaliação
Quando você define explicitamente o método de transporte como imagem, pode ver como o GA constrói seus próprios beacons de imagem.
Você pode criar suas próprias solicitações GET ou POST com a carga útil necessária.
No entanto, se você precisar de um nível maior de detalhes, provavelmente não valerá o seu esforço.
fonte
Você pode configurar uma distribuição em nuvem que tenha www.google-analytics.com como servidor de origem e definir um cabeçalho de expiração mais longo nas configurações de distribuição em nuvem. Em seguida, modifique esse domínio no snippet do Google. Isso evita a carga no seu próprio servidor e a necessidade de continuar atualizando o arquivo em uma tarefa cron.
Isso é configuração e esqueça. Portanto, convém adicionar um alerta de cobrança à nuvem, caso alguém "copie" seu snippet e roube sua largura de banda ;-)
Edit: Eu tentei e não é tão fácil, o Cloudfront passa pelo cabeçalho de controle de cache sem uma maneira fácil de removê-lo
fonte
Abra o arquivo https://www.google-analytics.com/analytics.js em uma nova guia e copie todo o código.
Agora crie uma pasta no seu diretório da web e renomeie para google analytics.
Crie um arquivo de texto na mesma pasta e cole todo o código que você copiou acima.
Renomeie o arquivo ga-local.js
Agora altere o URL para chamar seu arquivo de script do Analytics hospedado localmente no seu código do Google Analytics. Será algo parecido com isto, por exemplo, https://domain.xyz/google-analytics/ga.js
Por fim, coloque seu NOVO código do Google Analytics no rodapé da sua página da web.
Você está pronto para ir. Agora verifique seu site do Google PageSpeed Insights. Ele não mostrará o aviso para alavancar o cache do navegador no Google Analytics. E o único problema com esta solução é atualizar regularmente o Script do Analytics manualmente.
fonte
Em 2020, os agentes de usuários do Page Speed Insights são: "Chrome-Lighthouse" para celular e "Google Page Speed Insights" para desktop.
fonte
Você pode minificar todos os seus scripts na página, incluindo o
analytics.js
uso de:Lembre-se de minificar os arquivos antes de usá-lo. Caso contrário, consumirá mais tempo de processamento.
fonte