Je suis en quête pour atteindre 100/100 sur PageSpeed et j'y suis presque. J'essaie de trouver une bonne solution pour mettre en cache Google Analytics.
Voici le message que je reçois:
Tirez parti de la mise en cache du navigateur La définition d'une date d'expiration ou d'un âge maximal dans les en-têtes HTTP pour les ressources statiques indique au navigateur de charger les ressources précédemment téléchargées à partir du disque local plutôt que sur le réseau. Tirez parti de la mise en cache du navigateur pour les ressources pouvant être mises en cache suivantes: http://www.google-analytics.com/analytics.js (2 heures)
La seule solution que j'ai trouvée remonte à 2012 et je ne pense pas que ce soit une bonne solution. Essentiellement, vous copiez le code GA et l'hébergez vous-même. Vous exécutez ensuite une tâche cron pour revérifier Google une fois par jour pour récupérer le dernier code GA et le remplacer.
http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/
Que puis-je faire d'autre pour atteindre 100/100 tout en utilisant Google Analytics?
Je vous remercie.
la source
Réponses:
Eh bien, si Google vous trompe, vous pouvez tromper Google en retour:
Il s'agit de l'agent utilisateur de pageSpeed:
Vous pouvez insérer un conditionnel pour éviter de servir le script d'analyse à PageSpeed:
Évidemment, cela n'apportera aucune amélioration réelle, mais si votre seule préoccupation est d'obtenir un score de 100/100, cela le fera.
la source
if(navigator.userAgent.indexOf("Speed Insights") == -1) { /* analytics here */ }
{ }
dans mon exemple, ainsi que tout autre JS que GA utilise (commega('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview');
ou autre)Il existe un sous-ensemble de la bibliothèque js de Google Analytics appelé ga-lite que vous pouvez mettre en cache comme vous le souhaitez.
La bibliothèque utilise l'API REST publique de Google Analytics pour envoyer les données de suivi des utilisateurs à Google. Vous pouvez en savoir plus sur le blog sur ga-lite .
Avertissement: je suis l'auteur de cette bibliothèque. J'ai eu du mal avec ce problème spécifique et le meilleur résultat que j'ai trouvé a été de mettre en œuvre cette solution.
la source
Voici une solution très simple utilisant JS, pour le suivi GA de base, qui fonctionnera également pour les caches / proxys de périphérie (cela a été converti à partir d'un commentaire):
Remarque: il s'agit du script GA par défaut. Vous pouvez avoir d'autres
ga()
appels et, dans l'affirmative, vous devrez toujours vérifier l'agent utilisateur avant d'appelerga()
, sinon il risque de provoquer une erreur.la source
ga
commega = function(){};
précédemment l'extrait dega();
code pour échouer en mode silencieux lors de son exécution, afin que vous n'ayez pas à vérifier l'existence de cette fonction partout dans votre code.Je ne m'en inquiéterais pas. Ne le mettez pas sur votre propre serveur, il semble que ce soit un problème avec Google, mais aussi bon que possible. Placer le fichier sur votre propre serveur créera de nombreux nouveaux problèmes.
Ils ont probablement besoin du fichier pour être appelé à chaque fois plutôt que de le récupérer dans le cache du client, car de cette façon, vous ne compteriez pas les visites.
Si vous avez un problème pour vous sentir bien, lancez l'URL Google insights sur Google insights lui-même, riez, détendez-vous et poursuivez votre travail.
la source
Dans les documents Google, ils ont identifié un
pagespeed
filtre qui chargera le script de manière asynchrone:Vous pouvez trouver la documentation ici: https://developers.google.com/speed/pagespeed/module/filter-make-google-analytics-async
Une chose à souligner est que le filtre est considéré comme à haut risque. De la documentation:
la source
varvy.com ( 100/100 Google page speed insight ) charge le code google analitycs uniquement si l'utilisateur fait défiler la page:
la source
Vous pouvez essayer d'héberger les analytics.js localement et mettre à jour son contenu avec un script de mise en cache ou manuellement.
Le fichier js n'est mis à jour que quelques fois par an et si vous n'avez pas besoin de nouvelles fonctionnalités de suivi, mettez-le à jour manuellement.
https://developers.google.com/analytics/devguides/collection/analyticsjs/changelog
la source
stocker localy analytics.js, mais il n'est pas recommandé par Google: https://support.google.com/analytics/answer/1032389?hl=en
ce n'est pas recommandé car google peut mettre à jour le script quand il le souhaite, alors faites simplement un script qui télécharge javascript d'analyse chaque semaine et vous n'aurez aucun problème!
Au fait, cette solution empêche Adblock de bloquer les scripts Google Analytics
la source
Vous pouvez proxy le script Google Analytics via votre propre serveur, l'enregistrer localement et mettre à jour automatiquement le fichier toutes les heures pour vous assurer qu'il s'agit toujours de la dernière version de Google.
Je l'ai fait sur quelques sites maintenant et tout fonctionne bien.
Route du proxy Google Analytics dans la pile NodeJS / MEAN
C'est ainsi que je l'ai implémenté sur mon blog construit avec la pile MEAN.
Méthode d'action du proxy Google Analytics dans ASP.NET MVC
C'est ainsi que je l'ai implémenté sur d'autres sites construits avec ASP.NET MVC.
Il s'agit du CompressAttribute utilisé par le MVC ProxyController pour la compression Gzip
Script Google Analytics mis à jour
Côté client, j'ajoute le chemin d'analyse avec la date actuelle jusqu'à l'heure pour que le navigateur n'utilise pas une version mise en cache de plus d'une heure.
la source
Pour Nginx:
Ensuite, changez le chemin https://www.google-analytics.com/analytics.js en https://yoursite.com/analytics.js
la source
PHP
Ajoutez ceci dans votre code HTML ou PHP:
Javascript
Cela fonctionne bien avec JavaScript:
la source
essayez ceci insérez juste avant
Veuillez modifier xx-xxxxxxx-x en votre code, veuillez vérifier la mise en œuvre ici http://www.gee.web.id/2016/11/how-to-leverage-browser-caching-for-google-analitycs.html
la source
Google met en garde contre l'utilisation de copies locales des scripts d'analyse. Cependant, si vous le faites, vous voudrez probablement utiliser des copies locales des plugins et du script de débogage.
Une deuxième préoccupation avec la mise en cache agressive est que vous obtiendrez des hits des pages mises en cache - qui peuvent avoir changé ou ont été supprimées du site.
la source
Pour résoudre ce problème, vous devez télécharger le fichier localement et exécuter une tâche cron pour continuer la mise à jour. Remarque: cela ne rend pas votre site Web plus rapide, il est donc préférable de simplement l'ignorer.
Cependant, à des fins de démonstration, suivez ce guide: http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/
la source
Cela peut faire l'affaire :)
la source
Selon votre utilisation des données de Google Analytics, si vous souhaitez des informations de base (telles que des visites, des interactions avec l'interface utilisateur), vous pourrez peut-être ne pas inclure du tout analytics.js, tout en collectant des données dans GA.
Une option peut être d'utiliser à la place le protocole de mesure dans un script mis en cache. Google Analytics: Présentation du protocole de mesure
Lorsque vous définissez explicitement la méthode de transport sur image, vous pouvez voir comment GA construit ses propres balises d'image.
Vous pouvez créer vos propres demandes GET ou POST avec la charge utile requise.
Cependant, si vous avez besoin d'un plus grand niveau de détail, cela ne vaudra probablement pas la peine.
la source
Vous pouvez configurer une distribution cloudfront qui a www.google-analytics.com comme serveur d'origine et définir un en-tête d'expiration plus long dans les paramètres de distribution cloudfront. Modifiez ensuite ce domaine dans l'extrait de code Google. Cela évite la charge sur votre propre serveur et la nécessité de continuer à mettre à jour le fichier dans une tâche cron.
Ceci est configuré et oublié. Vous souhaiterez donc peut-être ajouter une alerte de facturation à cloudfront au cas où quelqu'un "copierait" votre extrait de code et volerait votre bande passante ;-)
Edit: je l'ai essayé et ce n'est pas si simple, Cloudfront passe par l'en-tête Cache-Control sans moyen facile de le supprimer
la source
Ouvrez le fichier https://www.google-analytics.com/analytics.js dans un nouvel onglet, copiez tout le code.
Créez maintenant un dossier dans votre répertoire Web, renommez-le en google-analytics.
Créez un fichier texte dans le même dossier et collez tout le code que vous avez copié ci-dessus.
Renommez le fichier ga-local.js
Modifiez maintenant l'URL pour appeler votre fichier de script Analytics hébergé localement dans votre code Google Analytics. Il ressemblera à quelque chose comme ceci, à savoir https://domain.xyz/google-analytics/ga.js
Enfin, placez votre NOUVEAU code Google Analytics dans le pied de page de votre page Web.
Tu es prêt. Vérifiez maintenant votre site Web de Google PageSpeed Insights. Il n'affichera pas l'avertissement pour Leverage Browser Caching Google Analytics. Et le seul problème avec cette solution est de mettre à jour régulièrement le script Analytics manuellement.
la source
En 2020, les agents utilisateurs de Page Speed Insights sont: "Chrome-Lighthouse" pour mobile et "Google Page Speed Insights" pour ordinateur.
la source
Vous pouvez réduire tous vos scripts dans la page, y compris en
analytics.js
utilisant:N'oubliez pas de réduire les fichiers avant de les utiliser. Sinon, cela consommera plus de temps de traitement.
la source