mercredi 15 janvier 2014

Comment réduire le poids du code JavaScript et CSS


Pour réduire le poids des codes JavaScript et CSS, la meilleure démarche est d’utiliser des minimiseurs. Autres leviers : vectoriser les descriptions de style, et supprimez les descriptions non utilisées.
Comme nous l’avons vu dans l’article Pourquoi optimiser un site web ?, améliorer la vitesse de chargement des pages d’un site à au moins quatre impacts directs : le nombre de visiteurs (et par effet de levier le référencement), un manque à gagner économique et un impact environnemental réel. Ensuite, nous avons vu dans l’article Optimiser l’utilisation des images d’une page web comment améliorer la performance du poste le plus gourmand en ressources inutiles, les images, avec la prétention de réduire, parfois, de plus de 75% le volume global.
Dans cet article, nous revenons à l’objectif premier : réduire le poids global de votre site, avec un focus sur l’optimisation du poids des fichiers JavaScript et CSS.

Réduire le poids du JavaScript et du CSS

Pour réduire le poids du JavaScript et du CSS, la meilleure démarche est d’utiliser des minimiseurs.
Vous en trouverez sans difficulté sur Internet, comme Closure Compiler de Google ou JSLint pour ce qui concerne le JavaScript, et Clean CSS ou CSS Compressor pour le CSS, sans oublier YUI Compressor, capable de traiter à la fois le JavaScript et le CSS.
Pour une utilisation autonome sur votre poste, je vous recommande l'excellentJASC (Just Another Script Compressor) qui fera des merveilles, à la fois avec vos fichiers JavaScript et CSS.
Voici ce qu'il est possible d'obtenir, par exemple avec des composants largement utilisés sur Internet :
   Non optimisé      Optimisé     Gain
JavaScript   
jQuery 1.8.3
  252 Ko
     32 Ko
     87% de gain
jQuery Mobile 1.2
  287 Ko
     111 Ko
     61% de gain
GMap3 5.0
  68 Ko
     27 Ko
     60% de gain
    
CSS   
jQuery Mobile Structure 1.2
  53 Ko
     47 Ko
     11% de gain
jQuery Mobile Theme 1.2
  52 ko
     26 Ko
     50% de gain

"J’utilise (ou mes équipes) toujours les versions compressées, évidemment !", me direz-vous. Parions un repas alors ? D’après Elie Bursztein, chercheur chez Google, 64% des sites[1] n’utilisent pas la version compressée de jQuery en production… Je crois que je viens de gagner deux repas gratuits par jour au restaurant !
De la même manière, la pertinence de jQuery n’est plus à démontrer, son usage étant devenu aujourd’hui pratiquement un pré-requis (utilisé par 89,9% des sites[2]). Mais avez-vous réellement analysé les fonctions qui vous sont nécessaires ? Par exemple, Zepto.js ou im.js sont des équivalents de jQuery, adoptant la même syntaxe et proposant uniquement les fonctions essentielles, en environ 8Ko au lieu de 32Ko, pour les versions compressées bien entendu. Un gain supplémentaire d’environ 75% sur le framework appelé par toutes vos pages mérite peut-être quelques essais !
Quoiqu’il en soit, la contrepartie, afin de conserver une réelle capacité de maintenance, est de travailler sur deux jeux de fichiers, un non minimisé, dans le cadre du développement et un optimisé en production.
Pour réduire le poids des fichiers CSS, une bonne pratique est aussi d’utiliser les syntaxes étendues.
Syntaxe classiqueSyntaxe étendue
#selector1 {
   margin-top: 50px;
   margin-right: 0;
   margin-bottom: 50px;
   margin-left: 0;
}

#selector2 {
  font-family: Helvetica;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.5;
}

#selector3 {
  background-image:
    url(background.png);
  background-repeat: repeat-y;
  background-position: center top;
}
#selector1 {
   margin-top: 50px 0;
}

#selector2 {
   font: bold 14px/1.5 Helvetica;
}

#selector3 {
   background:
      url(background.png)
      repeat-y
      center top;
}
280 caractères
(espaces compris)
146 caractères (espaces compris),
soit une réduction de 48%

Pensez aussi à vectoriser vos descriptions de style. En plus de l’optimisation recherchée, vous y gagnerez en clarté et en lisibilité.
Syntaxe classiqueSyntaxe vectorisée
#selector1 {
  margin-top: 50px 0;
  font: bold 14px/1.5 Helvetica;
  background:
    url(background.png)
    repeat-y
    center top;
}
#selector2 {
  margin-top: 50px 0;
  font: bold 14px/1.5 Helvetica;
  background:
    url(background.png)
    repeat-y
    center top;
}

#selector3 {
  margin-top: 50px 0;
  font: bold 14px/1.5 Helvetica;
  background:
    url(background.png)
    repeat-y
    center top;
}
#selector1, selector2, #selector3 {
  margin-top: 50px 0;
  font: bold 14px/1.5 Helvetica;
  background:
    url(background.png)
    repeat-y
    center top;
}
360 caractères
(espaces compris)
143 caractères (espaces compris),
soit une réduction de 60%

Maintenant, une évidence toujours utile à rappeler : supprimez les descriptions non utilisées. Pour cela, réalisez des contrôles avec des outils comme Unused CSS(payant). Sinon, différents plugins pour navigateurs existent : Dust-Me Selectorsou CSS Usage pour Firefox ou l'outil d'audit intégré de Chrome.
Pour des constructions évoluées, il est possible de tirer profit d’outils/langages comme Less CSS qui apportent, non seulement des extensions syntaxiques majeures, mais aussi la possibilité de compiler le CSS pour produire une syntaxe optimisée.
Enfin, pour contenter les puristes, n’oubliez pas non plus de supprimer les unités de vos définitions nulles, car 0 reste 0, que ce soit en px, en em ou en %.
Concernant le JavaScript, les optimisations de performance que vous obtiendrez sont fondamentalement liées à vos techniques de codage, ce qui dépasse largement le cadre de cet article. Je vous propose néanmoins une piste pour débuter avec l'article JavaScript Optimization de Jeff Greenberg.

Conclusion

En utilisant les techniques et outils présentés dans cet article, une nouvelle étape majeure est franchie dans l’optimisation du poids de vos pages web et donc, de la dynamique de chargement des pages. 


Dans un ultime article à paraitre très prochainement, nous finirons ce tour d’horizon en évoquant des améliorations possibles sur votre code HTML.

Optimisation web : organiser le code JavaScript et CSS


Zoom sur les axes techniques d’optimisation liés à la structure et la conception des pages web, et la gestion des dépendances JavaScript et CSS. Un équilibre entre sur-optimisation et perception client est à trouver.
Comme nous l’avons vu dans l’article Pourquoi optimiser un site web ?, améliorer la vitesse de chargement des pages d’un site à au moins 4 impacts directs : le nombre de visiteurs (et par effet de levier le référencement), un manque à gagner économique, et un impact environnemental réel. Ensuite, nous avons vu dans l’article Optimiser l’utilisation des images d’une page web comment améliorer la performance du poste le plus gourmand en ressources inutiles, les images, avec la prétention de réduire, parfois, de plus de 75% le volume global.
Dans cette nouvelle série d’articles, je vais évoquer avec vous des axes techniques d’optimisation en parlant de la structure et de la conception de la page ainsi que de la gestion des dépendances JavaScript et CSS.

L’organisation des pages

Le développement Web autorise beaucoup de latitudes, notamment dans l’organisation du code des pages.
Une bonne pratique consiste à regrouper le code JavaScript et CSS dans des fichiers externes qu’il est possible d’appeler par une syntaxe du type :
<link href="css/default.css" rel="stylesheet" type="text/css" />

<script src="scripts/default.js" type="text/javascript"></script>

Cette recommandation est aussi une manière d’améliorer véritablement votre référencement ainsi que la maintenabilité de votre site, alors évitez de la contourner !
Concernant le JavaScript, plusieurs grandes logiques d’organisation peuvent être considérées :
  1. Un fichier unique pour tout le site,
  2. Un fichier par fonction essentielle (par exemple, la gestion du menu principal, la gestion du nuage de tags, la gestion de la recherche, etc.), chaque fonction étant appelée par la page qui le nécessite,
  3. Un fichier par page,
  4. Un fichier générique pour toutes les fonctions communes au site et un fichier pour le spécifique de chaque page.


Avec le tableau précédent, nous comprenons aisément que le meilleur choix est de regrouper tous les éléments communs aux différentes pages du site, pour traiter les éléments spécifiques en parallèle.

L’appel des fichiers JavaScript et CSS externes

La tendance naturelle est de placer les appels aux fichiers CSS et JavaScript externes dans les balises <head> des pages.
Pourtant, nous savons que le nombre de requêtes de chargement simultanées est limité à deux. Une meilleure pratique est donc de laisser les appels CSS en début de page, mais de déplacer les appels JavaScript en fin de page.
De cette manière, nous favorisons le chargement du contenu de la page, ce qui augmente la perception de réactivité chez l’internaute, puisque les informations arrivent en premier. Ensuite seulement, les codes JavaScript sont chargés et appliqués. 
Un autre bénéfice est aussi identifiable lorsque le code provoque des manipulations d’images. Chargées en premier, ces dernières sont immédiatement disponibles, alors que dans le cas contraire l’exécution sera retardée, le temps que les éléments graphiques soient manipulables.
Le seul bémol à cette technique concerne les sites qui utilisent un grand nombre d’images ou sprites et qui proposeront alors, pendant quelques instants, un contenu disgracieux.
Un équilibre entre sur-optimisation et perception client est donc à trouver.

Conclusion

Nous venons de voir comment structurer au mieux une page ainsi que l’appel aux dépendances JavaScript et CSS afin d’améliorer la réactivité perçue par l’internaute. Dans un prochain article, j’évoquerai des astuces avec desquelles vous obtiendrez, sans aucun doute, un réel bénéfice de maintenance et de lisibilité.

Optimiser l’utilisation des images d’une page web : intégration HTML


Optimisation du nombre de requêtes, utilisation de sprites... Le traitement d'images peut être avantageusement complété par des pratiques pertinentes concernant l’intégration HTML.

Dans le précédent article, Optimiser l’utilisation des images d’un site web : traiter les images, nous avons évoqué cinq axes de travail pour un cure d’amaigrissement majeur du poids de votre site.
La valeur de ce travail peut être avantageusement complétée par des pratiques pertinentes concernant l’intégration HTML, que nous pouvons organiser autour de trois chapitres majeurs. Voyons cela ensemble.

Intégration HTML des images

Dans cette partie, nous n’allons pas chercher à optimiser le poids des images, mais plutôt à rendre le comportement du site plus véloce et augmenter sa réactivité.
Les bonnes pratiques nous recommandent de toujours spécifier les attributs heightet width, ainsi que, si nécessaire, hspace et vspace (à défaut d’une gestion CSS avecmargin et padding) pour les balises <IMG>.
Ici, l’objectif est, d’une part de faciliter le travail du navigateur en lui donnant le maximum d’instructions exploitables et, d’autre part, éviter les phénomènes dits de reflow qui provoquent un re-calcul de l’affichage de la page.
Moins de travail de déduction des caractéristiques d’affichage manquantes et moins de calcul du navigateur signifient un affichage plus rapide et une meilleure réactivité de la page durant son chargement ou son redimensionnement.

Déclaration inline

La majorité des navigateurs (malheureusement, exception faite d’Internet Explorer) est aussi capable de traduire une déclaration d’image codée en base 64 si elle est directement spécifiée dans le code HTML ou CSS.
Nous savons que, par défaut, les standards Internet limitent les accès à deux chargements simultanés, augmentant ainsi les temps de latence pour des pages constituées d’un grand nombre de toutes petites images. Avec une déclaration inline, vous supprimez les multiples requêtes au profit d’une seule.
Par exemple, pour une image de 20x20 pixels, se chargeant en 0,6 seconde, l’encodage en base 64 produit environ 1500 octets de données, soit un temps de chargement de 0,7 secondes pour 10 images. Si 10 images de ce type sont utilisées dans la page, nous observons 4 périodes de latence d’environ 0,6 secondes. Au final, avec une conception traditionnelle, nous pouvons observer jusqu’à 3 secondes de temps de chargement, pour seulement 0,7 avec une déclaration inline.


Pour réaliser l’encodage base 64, vous pouvez aussi utiliser un service en ligne, comme par exemple Motobit - Base 64 encoder-decoder ouhttp://www.greywyvern.com ou encore préférer l''utilisation d''un outil Windows sur votre poste, comme celui développé par John Dyer, Css Image Embedder.

Sprites

L’utilisation de sprites est aussi une excellente technique de réduction du nombre de requêtes de chargement. L’idée est de regrouper le maximum d’images en une seule pour ensuite utiliser les propriétés CSS afin d’en afficher qu’une partie, en fonction du besoin.
Par exemple :


Une fois ce regroupement réalisé, vous pouvez utiliser deux techniques, la plus commune (et plus simple) utilisant la propriété CSS background et son positionnement dans une balise DIV de dimension définie, la deuxième s’appuyant sur le clipping d’image.
Exemple de code pour la première technique :
01    <style>
02    #faceBook {

03       width:32px;    /* la taille de l'icone */

04       height:32px;

05       background:url(img/optimisation-image-5.png) 0px 0px no-repeat;
06    }

07    #linkedIn {
08       width:32px;

09       height:32px;
10       background:url(img/optimisation-image-5.png) -32px 0px no-repeat;

11    }
12    #Rss {

13       width:32px;
14       height:32px;

15       background:url(img/optimisation-image-5.png) -64px 0px no-repeat;
16    }

17    #viadeo {
18       width:32px;

19       height:32px;
20       background:url(img/optimisation-image-5.png) -96px 0px no-repeat;

21    }
22    </style>
 Exemple de code pour la deuxième technique :
01    <style>
02    .clipDiv {
03       position:relative;
04       overflow:hidden;
05       width:32px; /* la taille de l'icone */
06       height:32px;
07    }
08    .faceBook {
09       position:absolute;
10       top:0;
11       left:0;
12       clip:rect(0 32px 32px 0);
13    }
14    .linkedIn {
15       position:absolute;
16       top:0;
17       left:-32px;
18       clip:rect(0 64px 32px 32px);
19    }
20    .Rss {
21       position:absolute;
22       top:0;
23       left:-64px;
24       clip:rect(0 96px 32px 64px);
25    }
26    .viadeo {
27       position:absolute;
28       top:0;
29       left:-96px;
30       clip:rect(0 128px 32px 96px);
31    }
32    </style>
33
34    <body>
35        <div class="clipDiv">
36           <img class="faceBook" src="img/optimisation-image-5.png" />
37        </div>
38        <div class="clipDiv">
39           <img class="linkedIn" src="img/optimisation-image-5.png" />
40        </div>
41        <div class="clipDiv">
42           <img class="Rss" src="img/optimisation-image-5.png" />
43        </div>
44        <div class="clipDiv">
45           <img class="viadeo" src="img/optimisation-image-5.png" />
46        </div>
47    </body>
Pour aller plus loin concernant l’utilisation des sprites, vous pouvez consulter un premier tutorial AlsaCréations et CSS Sprites with Inline Images.  

Conclusion

Avec toutes les informations présentées, vous pouvez dès maintenant (avec plus ou moins d’huile de coude suivant que vous soyez décideur, chef de projet, amateur éclairé ou débutant) rendre votre site véritablement plus véloce et réactif en appliquant rigoureusement un plan d’actions établi sur six axes :
  1. supprimer les images inutiles au profit de propriétés CSS comme background, margin et padding,
  2. choisir un format normalisé (jpg, png ou gif) et le plus efficace possible,
  3. ajuster la taille de l’image en fonction de la dimension voulue dans le navigateur,
  4. utiliser une résolution de 72 dpi ou moins,
  5. compresser chaque image, jusqu’au point limite de détérioration visuelle,
  6. optimiser l’intégration HTML.

Il n’est pas rare de réduire le volume des éléments graphiques de plus de 75%, ce qui est, avouons-le, un gain plus que substantiel.
Et n’oubliez pas : à chaque seconde de chargement, c’est 10 internautes qui fuient !
Dans un article à suivre (très rapidement), j’évoquerai un autre aspect de l’optimisation du temps de chargement des pages d’un site web, sous un angle exclusivement technique en parlant de la structure et de la conception de la page ainsi que de la gestion des dépendances JavaScript et CSS. 

Optimiser l'utilisation des images d'une page web : traiter les images

Optimiser l'utilisation des images d'une page web : traiter les images

La première cause de lenteur d'un site web est liée au volume de données chargées. Dans ce registre, le poste le plus gourmand concerne, sans aucun doute possible, les images.

Comme nous l’avons vu dans l’article Pourquoi optimiser un site web ?, améliorer la vitesse de chargement des pages d’un site à au moins 4 impacts directs : le nombre de visiteurs, et par effet de levier le référencement, un gain économique et un impact environnemental réel.
Intuitivement, nous comprenons que la première cause de lenteur est liée au volume de données chargées. Dans ce registre, le poste le plus gourmand concerne, sans aucun doute possible, les images.  Regardons ensemble les pistes d’optimisations possibles et vous serez surpris de constater l’ampleur des gains possibles.

Une image est-elle nécessaire ?

Mais commençons par une question apparemment naïve : avez-vous besoin d’images ?
Il est surprenant de constater que dans certains cas, des images sont utilisées pour colorer des surfaces unies, comme un fond de page, un bandeau ou un fond de menu. Par exemple, un carré uni de 20 pixels répété à l’infini comme fond de page équivaut à au moins 100 octets alors qu’en utilisant la propriété CSS background vous n’en consommez que 30. Entre ces deux approches, un bénéfice d’au moins 60% pour un rendu équivalent. Mon premier conseil est donc : traquez les images inutiles !
Dans un registre très similaire, ne gérez pas les marges des images en ajoutant une bordure unie de la couleur du fond. Préférez-lui une approche bien plus diététique en utilisant les attributs margin et padding du CSS.

Choisir le bon format d’image

Ensuite, considérez que seulement trois formats d’images sont viables pour des sites Internet :
  •  jpg (ou jpeg pour Joint Photographic Experts Group) : ce format permet de gérer jusqu’à 16 millions de couleurs et ne doit être employé que pour des graphismes évolués, des images de haute qualité ou des photos.
  • gif (pour Graphic Interchange Format) : ce format gère un maximum de 256 couleurs, mais supporte la transparence ou permet de composer des animations simples. Son usage est donc tout désigné.
  • png (pour Portable Network Graphics) : ce format permet de gérer jusqu’à 16 millions de couleurs, ainsi que différents niveaux de transparence. Il convient donc à pratiquement tous vos enrichissements visuels.
Considérez toutefois que tous les navigateurs ne supportent pas nativement le format png (notamment Internet Explorer pour ses versions inférieures à 7), et qu’il vous sera alors peut-être nécessaire d’utiliser des hacks[1] adaptés. Mais d’après les statistiques produites par StatCounter, cela représente bien moins de 3,76% des navigateurs utilisés (pour W3Scools.com, il s’agit de 0,3%).
Le format png est généralement une valeur sûre, mais pour des images de type icône ne nécessitant pas l’utilisation de la transparence, prenez aussi le temps de la comparaison entre les versions jpg et png qui peuvent parfois produire des écarts de 1 pour 10.


Enfin, si vous utilisez un autre format, procédez immédiatement à une conversion, sauf pour les éléments véritablement spécifiques qu’il vous est impossible de normaliser.

 Ajuster la taille des images

Lorsque vous employez une image, vous souhaitez qu’elle occupe un espace spécifique en largeur et en hauteur dans la page. Nul besoin donc de publier des images de taille supérieure et laisser le soin du redimensionnement au navigateur.
En ajustant au préalable une image à la taille d’affichage voulue, vous réduisez son poids et en considérant qu’un navigateur n’est pas optimisé pour le traitement des images, vous gardez la totale maîtrise du rendu avec votre logiciel de traitement d’image qui utilisera des algorithmes de manipulation spécifiquement étudiés pour produire le meilleur résultat possible.


Ajuster la résolution des images

Une fois le format des images rationalisé, considérez la résolution[1] exprimée en dpi (dots per inches) ou ppp (points par pouce), en admettant que, pour une même image, plus sa résolution est élevée, plus son poids est important. Il apparait clairement que contrairement à l’idée reçue, la résolution standard des écrans n’est pas 72 dpi. Florent Verschelde traite cet aspect dans un article Le Web c’est pas en 72 dpi, coco !.
Toutefois, vous pouvez considérer que par défaut 72 dpi est largement satisfaisant pour tous les usages. Bien entendu, n’hésitez pas à faire des essais avec des résolutions moindres, les gains de poids pouvant être importants.

 Compressez les images

Enfin, chaque format d’image utilise un algorithme de compression des informations de couleur. En optimisant ce taux de compression vous serez surpris des gains possibles, sans perte de qualité visuelle.
Dans l’exemple ci-dessous, il faut être un expert de l’imagerie visuelle pour déterminer la perte de qualité !


Pour les extrémistes

Et, pour ceux qui souhaitent aller jusqu’au bout de la démarche, quelques octets peuvent aussi être récupérés en supprimant les meta datas inclus dans chacune des images.
Si vous allez jusqu’à ce point d’optimisation, profitez-en pour placer élégamment votre copyright.

Un outillage ?

Vous l’avez compris, un traitement initial de chacune des images (points 1 à 4 du plan d’actions) dans un logiciel spécialisé est nécessaire. Vous pouvez employer gratuitement un logiciel comme GIMP ou lui préférer des produits payants, suivant vos choix, goûts et connaissances de graphiste.
Pour ce qui est de la compression, vous trouverez de nombreuses solutions sur Internet. Si vous ne savez comment commencer la recherche deux articles seront d’excellents points de départ : 12 Really Useful Image Optimization Tools For Web Designers et 8 Excellent Tools for Optimizing Your Images.
Personnellement, je vous recommande malgré tout RIOT (Radical Image Optimization Tool). Cet outil, véritable couteau suisse de l'optimisation d'image permet de gérer :
  • le niveau de compression,
  • le choix de l'algorithme de transformation,
  • le nombre de couleurs,
  • les meta datas,
  • le redimensionnement,
  • la transparence,
  • et de nombreux autres paramètres.
Il est aussi capable de traiter les images par lots, le tout avec une interface à la fois simple, efficace et conviviale juste ce qu'il faut.
Une alternative (sous Windows) peut aussi être imgOptimize.

Conclusion

Dans un article à suivre (très rapidement), nous allons poursuivre sur le sujet des images et notamment des meilleures pratiques concernant leurs intégrations dans le code HTML.
D’ici là, vous aurez le temps de commencer à auditer ou appliquer les recommandations déjà évoquées !
[1] Techniques permettant de tirer profit de comportements spécifiques des navigateurs afin de contourner certaines limitations.
[2] La résolution d’une image exprime la quantité de points de couleurs utilisés pour une surface donnée, traditionnellement en pouce.

Comment situer la performance de son site Web ?


GTmetrix, Google PageSpeed Insights ou encore YSlow, plusieurs outils en ligne gratuits existent pour évaluer la performance de chargement et d'exécution d'un site Web.
Pour évaluer la performance de son site Web, ou plus spécifiquement de pages choisies comme la page d’accueil, la page de résultats de recherche interne ou différentes landing pages[1] client, il n’est pas nécessaire d’être spécialiste en informatique, car de nombreux services en ligne existent gratuitement.

Parmi ceux-ci, trois se dégagent rapidement de la masse : GTmetrixPageSpeed Insights (Google) et YSlow (Yahoo).

Évaluer la performance de son site Web ne nécessite pas d’être un spécialiste
GTmetrix est, à mon avis, le meilleur outil pour débuter. En synthèse, chaque page analysée reçoit 2 notes (critères GTmetrix et YSlow) de A (excellent) à F (il y a du travail à faire), accompagné de trois mesures essentielles : le temps de chargement de la page, son poids et le nombre de requêtes nécessaires (index 1 de la figure). Vous pouvez donc immédiatement vous positionner par rapport aux grands seuils de performance nécessaires (voir les critères évoqués précédemment) : plus de 2 secondes, entre 1 et 2 secondes, moins de 2 secondes de temps de chargement. Si vous le souhaitez, vous pouvez aussi télécharger un rapport au format PDF (index 2 de la figure) et comparer plusieurs pages (index 3 de la figure).

Si vous êtes décideur ou donneur d’ordre, inutile d’aller plus loin. Vous disposez de faits et de métriques de référence pour déclencher un plan d’amélioration.
Si vous êtes déjà initié aux techniques Web, vous trouverez immédiatement les règles d’évaluation utilisées (29 pour GTmetrix, 23 pour YSlow) et saurez tout de suite trouver les axes d’amélioration essentiels (index 4 de la figure). Enfin, si vous êtes expert du web, cliquez sur les règles pour découvrir le détail des améliorations et la ligne de temps de chargement de la page pour définir votre plan de combat !

PageSpeed Insight est aussi un excellent service gratuit, mais il est résolument orienté vers les techniciens du métier qui trouveront tout de suite un classement des améliorations à apporter par ordre de priorité (index 1 de la figure ci-dessous), puis règle par règle (index 2 de la figure).

Enfin YSlow, ne peut être utilisé que dans un navigateur (un plugin est disponible pour pratiquement tous) ou en ligne de commande. Cet excellent produit est donc à réserver aux experts et développeurs qui pourront ainsi vérifier les gains acquis par des analyses détaillées au fur et à mesure de leurs réalisations.


[1] Landing page : page spécifique sur laquelle un internaute arrive.

Performance Web : comment l'optimiser ?


Performance WebComment optimiser la performance de son site web ? Pour éviter la volatilité des internautes, les solutions existent. Les réponses de l'expert Ismaël Ahounou.
Vous disposez d'un (ou plusieurs) site Web et en êtes fier et satisfait. Que ce soit d'un point de vue esthétique, fonctionnel ou éditorial, votre présence numérique véhicule une excellente image, propose une expérience utilisateur remarquable et apporte un contenu de qualité aux internautes. Pour les professionnels, vous captez de nombreux prospects ou rentabilisez véritablement votre investissement e-commerce.
13978
Ismaël Ahounou est directeur de projets / Manager IT chez BNP Paribas. © BO Chroniques
Aucun doute possible, tout va très bien dans le meilleur desmondes ! Sauf que... vous ne vous êtes pas posé la question de laperformance technique perçue par l'internaute lambda. Affirmation despécialiste ? Sujet d'expert ? Peut-être, mais d'après Woozweb,70% des sites se chargent en plus de 2 secondes et plus de 40% proposent despages d'un poids supérieur au méga octet.
Pourtant, réduction du volume etseuil des 2 secondes sont une absolue certitude pour les webmasters, bienqu'elle soit aujourd'hui mise à mal (lire sur ce point la récente étude de Radware sur la croissance du poids des images dans les pages Web). Voici une série de chroniques rédigées par Ismaël Ahounou, directeur de projets / Manager IT chez BNP Paribas, sur cet enjeu fondamental de la performance, qui peut tout changer en matière de trafic, et auquel font face de très nombreux sites web.  Lire la suite de l'introduction

 Comment situer la performance de son site Web ?
GTmetrix, Google PageSpeed Insights ou encore YSlow, plusieurs outils en ligne gratuits existent pour évaluer la performance de chargement et d'exécution d'un site Web. Lire
La première cause de lenteur d'un site web est liée au volume de données chargées. Dans ce registre, le poste le plus gourmand concerne, sans aucun doute, les images. Lire

 
Optimiser l'utilisation des images d'une page web : intégration HTML
Optimisation du nombre de requêtes, utilisation de sprites... Le traitement d'images peut être avantageusement complété par des pratiques pertinentes d''intégration HTML. Lire

 Optimisation web : organiser le code JavaScript et CSS
Zoom sur les axes d'optimisation liés à la structure des pages web, et la gestion des dépendances JavaScript et CSS. Un équilibre entre sur-optimisation et perception client est à trouver. Lire

 Comment réduire le poids du code JavaScript et CSS
Pour réduire le poids des codes JavaScript et CSS, une démarche est d'utiliser des minimiseurs. Autres leviers : vectoriser les descriptions de style, et supprimez les descriptions non utilisées. Lire

 Performance web : optimiser son code HTML et CSS
De la compression HTML à la normalisation des CSS, voici des bonnes pratiques pour réduire le poids des pages web, et améliorer leur vitesse de chargement et d'exécution par les navigateurs. Lire

 PHP : faciliter la maintenance d'un site web avec la fonction include
En tirant parti de la fonction dynamique include, quelques astuces de conception permettent de rendre la maintenance d'un site web bien plus aisée. L'idée étant d'isoler les contenus récurrents dans des fichiers. Lire

 Comment optimiser la performance d'un site web côté serveur 

Compression, gestion des délais d'expiration, du cache... Le serveur web peut subir un traitement de choc qui permettra d'améliorer le temps de chargement des pages. Lire

samedi 11 janvier 2014

Les trois tendances majeures de l'e-mail marketing en 2014


L’émergence du mobile, l’e-mail retargeting et l’email-to-store ont radicalement changé la façon d’envisager les campagnes emailing. Or 56% des entreprises prévoient d’augmenter leur recours à l’e-mail marketing en 2014. Tour d’horizon de ces nouvelles tendances.

#1 E-mail marketing et mobile 

La consultation en mobilité explose. Aujourd’hui, 64% des internautes consultent leurs mails sur mobile ou tablette.  Il est donc devenu impératif de connaître son taux d’audience emailing. Si ce dernier est supérieur à 10%, il est temps de prendre les bonnes décisions. Le recours au responsive design devient une nécessité. Votre campagne emailing ne doit plus être pensée pour être uniquement consultée sur un écran d’ordinateur mais aussi sur un smartphone ou depuis une tablette.
En parallèle, il faut repenser la hiérarchie de vos informations. Sur un écran mobile, vous n’avez pas l’espace pour convaincre vos utilisateurs avec des tonnes de texte. Votre page doit donc être concise et précise. De plus en plus d’e-mail marketers utilisent pour la rédaction de leur email une pyramide inversée. Cette mise en forme vient du monde du journalisme, le principe est de commencer par l’essentiel, puis d'aller du plus important vers le moins important.
On parle aujourd’hui du responsive design comme d’une nouvelle tendance. En effet, seulement 11% des emails sont optimisés sur mobile. Pourtant, 69% des utilisateurs mobiles suppriment les emails non-optimisés sur mobile. Ainsi, le responsive design ne devrait plus être une tendance mais un standard !

 #2 E-mail retargeting

Il ne faut surtout pas manquer le coche du retargeting. Les internautes étant de plus en plus exigeants, ils sont aujourd’hui prêts à accepter les communications des marques mais sous réserve de mesure et de pertinence. C’est donc la pertinence de l’e-mail marketing qui fera la différence. L’e-mail retargeting apparaît comme la solution, car il propose à son destinataire une offre personnalisée, en se basant sur les produits auxquels le consommateur s’est intéressé sur le site d’une marque.
Pourtant, le retargeting par e-mail n’a pas encore été véritablement adopté. Aujourd’hui, la grande majorité du retargeting se fait par display, comme en atteste la notoriété d’entreprises comme Criteo ou Adroll. Pourtant, l’e-mail marketing est un autre moyen de faire du retargeting, tout aussi voire plus efficace. Une étude récente de Forrester Research a révélé que l’e-mail retargeting génère près de 4 fois plus de revenus et 18 fois plus de bénéfices nets comparés au marketing qui n’utilise que des envois non ciblés. D’ailleurs, les internautes reconnaissent d’ores et déjà les efforts menés par les professionnels pour développer des contenus pertinents. L’e-mail n’est donc pas mort, l’e-mail retargeting est son avenir. Une expansion encore plus forte du retargeting est à prévoir en 2014 !

#3 Email-to-store

D’après l’étude du SNCD parue en septembre 2013, l’email-to-store est l'une des tendances émergentes des campagnes emailing. L’email-to-store est en fait une technique dans laquelle l’email marketing va tenter d’amener le prospect non pas sur site, mais dans un magasin. Aujourd’hui, 78% des internautes comparent les marques en s’informant depuis leur ordinateur ou leur smartphone avant de se déplacer en magasin. Face à l’évolution du parcours d’achat des internautes où les frontières entre commerces en ligne et physique s’estompent, l’email-to-store est un outil marketing efficace.
Pour réussir à déplacer le prospect, il faut que l’e-mail ait une certaine valeur ajoutée. Cela peut être celle de réserver un produit en magasin pour les fêtes de Noël, une vente privée, un rendez-vous avec un conseiller ou tout simplement un coupon de réduction. L’email-to-store permet de relever les nouveaux défis qui s’imposent aux commerçants : il assure une proximité avec les consommateurs et répond aux nouveaux comportements ainsi qu’à la mobilité des consommateurs.L’e-mail marketing influence 71% des consommateurs en magasin à acheter. 

Que faut-il tirer de ces 3 nouvelles tendances ? Tout simplement que l’e-mail n’est pas mort. D’ailleurs, pour conclure, voici un dernier chiffre illustrant ces nouvelles tendances : le nombre de lecteur d’e-mail va passer d’ici 2017 de 2,42 milliards à 2,76 milliards.