Automatiser la mesure des performances Web

Les performances Web peuvent avoir un impact énorme sur l'ensemble de votre expérience utilisateur. Si vous avez récemment essayé d'améliorer les performances de votre propre site, vous avez probablement entendu parler de PageSpeed Insights, un outil qui analyse les pages et propose des conseils pour les accélérer en fonction des bonnes pratiques en matière de performances Web sur mobile et sur ordinateur.

Les scores PageSpeed sont basés sur un certain nombre de facteurs, y compris la façon dont vos scripts sont minimisés, les images optimisées, le contenu compressé en gzip, les cibles de pression de la bonne taille et l'absence de redirections vers des pages de destination.

Étant donné que 40% des utilisateurs abandonnent les pages qui mettent plus de trois secondes à se charger, il est de plus en plus important de veiller à la rapidité de chargement de vos pages sur les appareils de vos utilisateurs.

Métriques de performances dans votre processus de compilation

Bien qu'il soit possible d'accéder manuellement à PageSpeed Insights pour connaître vos scores, un certain nombre de développeurs se sont demandé s'il était possible d'obtenir un score de performances similaire dans leur processus de compilation.

La réponse est "Absolument".

Présentation de PSI pour Node

Nous sommes heureux de vous présenter aujourd'hui PSI pour Node, un nouveau module qui fonctionne parfaitement avec Gulp, Grunt et d'autres systèmes de compilation. Il peut se connecter au service PageSpeed Insights et renvoyer un rapport détaillé sur vos performances Web. Voyons un aperçu du type de rapports qu'il permet d'obtenir:

Écran de création de rapports sur les performances

Les résultats ci-dessus vous permettent de vous faire une idée du type d'améliorations possibles. Par exemple, une valeur de 5,92 pour dimensionner le contenu en fonction du viewport signifie que vous pouvez encore effectuer "certains" travaux, tandis qu'une valeur de 24 pour minimiser les ressources bloquant le rendu peut suggérer que vous devez différer le chargement du code JavaScript à l'aide de l'attribut async.

Réduire les obstacles à l'entrée dans PageSpeed Insights

Si vous avez déjà essayé d'utiliser l'API PageSpeed Insights ou l'un des outils que nous avons développés en s'appuyant sur celle-ci, vous avez probablement dû vous enregistrer pour obtenir une clé API dédiée. Nous savons que cette opération ne prend que quelques minutes, mais qu'elle peut être dissuasive pour obtenir des insights dans le cadre de votre flux de travail habituel.

Nous avons le plaisir de vous informer que le service PageSpeed Insights permet d'effectuer des requêtes sans clé API, jusqu'à une requête toutes les cinq secondes (ce qui est largement suffisant). Pour une utilisation plus régulière ou des builds de production sérieux, vous devrez probablement enregistrer une clé.

Le module PSI prend en charge une option nokey pour la configuration en moins de quelques minutes et l'option key pour un peu plus de temps. Vous trouverez des informations sur l'enregistrement d'une clé API.

Premiers pas

Deux options s'offrent à vous pour intégrer PSI à votre workflow. Vous pouvez l'intégrer à votre processus de compilation ou l'exécuter en tant qu'outil installé globalement sur votre système.

Processus de compilation

L'utilisation de PSI dans votre processus de compilation Grunt ou Gulp est assez simple. Si vous travaillez sur un projet Gulp, vous pouvez installer et utiliser PSI directement.

Installer

Installez PSI à l'aide de npm et transmettez --save-dev pour l'enregistrer dans votre fichier package.json.

npm install psi --save-dev

Définissez ensuite une tâche Gulp dans votre fichier gulpfile comme suit (également abordé dans notre exemple de projet Gulp):

var psi = require('psi');
gulp.task('psi', function (cb) {
    psi({
        nokey: 'true', // or use key: ‘YOUR_API_KEY’
        url: site,
        strategy: 'mobile',
    }, cb);
});

Pour ce faire, vous pouvez exécuter la tâche à l'aide des éléments suivants:

gulp psi

Si vous utilisez Grunt, vous pouvez utiliser grunt-pagespeed de James Cryer, qui utilise désormais PSI pour alimenter ses rapports.

Installer

npm install grunt-pagespeed --save-dev

Chargez ensuite la tâche dans votre fichier Gruntfile:

grunt.loadNpmTasks('grunt-pagespeed');

et configurez-la pour l'utiliser:

pagespeed: {
    options: {
    nokey: true,
    url: "https://www.html5rocks.com",
    strategy: "mobile"
    }
}

Vous pouvez ensuite exécuter la tâche à l'aide de:

grunt pagespeed

Installer en tant qu'outil global

Vous pouvez également installer PSI en tant qu'outil disponible dans le monde entier sur votre système. Une fois de plus, nous pouvons utiliser npm pour installer l'outil:

$ npm install -g psi

Dans n'importe quelle fenêtre de terminal, demandez des rapports PageSpeed Insights pour un site (avec l'option nokey ou un key spécifique à l'API comme suit):

psi http://www.html5rocks.com --nokey --strategy=mobile

ou si vous disposez d'une clé API enregistrée:

psi http://www.html5rocks.com --key=YOUR_API_KEY --strategy=mobile

Et voilà !

Allez-y et faites des performances une partie de votre culture

Nous devons commencer à réfléchir davantage à l'impact de nos conceptions et implémentations sur l'expérience utilisateur.

Des solutions comme PSI peuvent surveiller vos performances Web sur ordinateur et mobile. Elles sont utiles dans le cadre de votre workflow post-déploiement habituel.

Nous sommes impatients de connaître vos commentaires et espérons que l'outil PSI vous aidera à améliorer la culture de performance au sein de votre équipe.