{"id":1063,"date":"2018-01-02T13:23:40","date_gmt":"2018-01-02T13:23:40","guid":{"rendered":"https:\/\/sitechecker.pro\/?page_id=1063"},"modified":"2024-03-14T13:45:36","modified_gmt":"2024-03-14T11:45:36","slug":"speed-test","status":"publish","type":"page","link":"https:\/\/test.sitechecker.pro\/fr\/speed-test\/","title":{"rendered":"Faire un test de performance du site web et apprendre \u00e0 augmenter sa vitesse de chargement"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>Chacun sait qu\u2019un site lent c\u2019est p\u00e9nible. De graves probl\u00e8mes dans la solution des t\u00e2ches quotidiennes apparaissent en raison du site qui freine. Parfois c\u2019est juste agassant. Parfois, le freinage est d\u00fb \u00e0 une panne, un d\u00e9ni de service et les gens partent sans attendre le chargement. Ceci est significatif dans les cas du freinage important du site, par exemple, lorsqu\u2019on voit appara\u00eetre le contenu de la page seulement 8-10 secondes apr\u00e8s avoir cliqu\u00e9 sur le lien.<\/p>\n<p>Mais m\u00eame avec des conditions relativement favorables pour les sites (avec une bonne vitesse de chargement des donn\u00e9es via une connexion internet par c\u00e2ble et un ordinateur moderne), les d\u00e9lais du chargement peuvent entrainer une perte d\u2019audience et une diminution de taux de conversion. Amazon a men\u00e9 une exp\u00e9rience dans laquelle il a d\u00e9couvert, que tous les d\u00e9lais de 100ms (0.1s) entrainaient une diminution des ventes de 1 %.<\/p>\n<p>Mais plus de la moiti\u00e9 d\u2019utilisateurs sur Internet utilisent les appareils mobiles pour acc\u00e9der aux sites. Topiquement, les sites lents utilisent \u00e9norm\u00e9ment de ressources du serveur, ce qui entra\u00eene des co\u00fbts suppl\u00e9mentaires. Le freinage du serveur diminue la capacit\u00e9 de supporter les charges maximales du site.<\/p>\n<p>La vitesse du site doit \u00eatre abord\u00e9e d\u2019un point de vue technique et \u00e9conomique. Dans cet article nous allons nous focaliser sur le c\u00f4t\u00e9 technique de la performance web.<\/p>\n    <div class=\"blog__conversion blog__conversion-app element__logged_out\">\n        <div class=\"blog__conversion-inner\">\n            <p class=\"title\">D\u00e9tecter les pages avec du code redondant<\/p>\n            <p class=\"description\">Auditez votre site Web pour trouver des pages dont le rapport contenu code est inf\u00e9rieur \u00e0 10%<\/p>\n            <form id=\"audit__form\"\n                  class=\"article__seo-search audit__form Auditez votre site Web pour trouver des pages dont le rapport contenu code est inf\u00e9rieur \u00e0 10%\"\n                  action=\"\"\n                  method=\"POST\"\n                  autocomplete=\"off\">\n                <span class=\"error\"><\/span>\n                <div class=\"error__limits\">Something went wrong. Please, try again later.<\/div>\n                <input name=\"url\"\n                       type=\"text\"\n                       placeholder=\"Entrez votre nom de domaine\">\n                                <button type=\"submit\"\n                        class=\"sitechecker__text\">\n                    <span>D\u00e9but<\/span>\n                    <img src=\"\/wp-content\/themes\/sitechecker\/out\/img_design\/loading.svg\"\n                         width=\"31\"\n                         height=\"30\"\n                         class=\"loading\">\n                <\/button>\n            <\/form>\n        <\/div>\n    <\/div>\n    \n<h2 id=\"components\">La performance web : les composants essentiels<\/h2>\n<p>&nbsp;<\/p>\n<p>La vitesse du chargement du site concerne deux aspects : le client et le serveur. A ce jour, les deux parties sont r\u00e9ciproques dans l\u2019aboutissement au r\u00e9sultat final. Mais chacune poss\u00e8de ses propres caract\u00e9ristiques.<\/p>\n<p>Afin de comprendre ce qui est le temps de chargement de la page web, observons le process. Au final, nous pourrions comprendre o\u00f9 se trouvent les capacit\u00e9s d\u2019optimisation du serveur et du client.<\/p>\n<p>Le process complet du chargement du site (premi\u00e8re visite) est le suivant :<\/p>\n<ul>\n<li>\u00a0Appel de <a href=\"http:\/\/test.sitechecker.pro\/fr\/dns-checker\/\">DNS\u00a0\u00a0<\/a>par le nom du site.<\/li>\n<li>Connexion au serveur \u00e0 l\u2019aide de l\u2019IP (connexion TCP)<\/li>\n<li>Etablissement d\u2019une connexion s\u00e9curis\u00e9e lors de l\u2019utilisation de HTTPS (connexion TLS)<\/li>\n<li>Appel de la page HTLM par l\u2019URL et attente de la r\u00e9ponse du serveur (requ\u00eate http)<\/li>\n<li>Chargement du HTML<\/li>\n<li>Analyse du document HTML par le navigateur, cr\u00e9ation d\u2019une file d\u2019attente dans la base des donn\u00e9es du document.<\/li>\n<li>Chargement et analyse des styles CSS.<\/li>\n<li>Chargement et ex\u00e9cution du JS-code<\/li>\n<li>D\u00e9but de l\u2019affichage de la page, ex\u00e9cution du code JS.<\/li>\n<li>Chargement des polices web<\/li>\n<li>Chargement d\u2019images et d\u2019autres \u00e9l\u00e9ments<\/li>\n<li>Fin d\u2019affichage de la page, ex\u00e9cution du code JS diff\u00e9r\u00e9.<\/li>\n<\/ul>\n<p>Dans ce process, certaines actions se font en m\u00eame temps, certaines peuvent changer d\u2019ordre, mais l\u2019essence reste la m\u00eame.<\/p>\n<p>L\u2019optimisation du serveur concerne les \u00e9tapes du premier au quatri\u00e8me inclus. Les \u00e9tapes 5 \u00e0 12 concernent l\u2019optimisation du parcours client. Le temps pass\u00e9 sur chacune de ces \u00e9tapes est propre pour chaque site, alors vous devez obtenir les statistiques du site en question et identifier la source des probl\u00e8mes. Regardons comment obtenir et interpr\u00e9ter ces statistiques.<\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"measuring\">Mesurez la performance web<\/h2>\n<p>&nbsp;<\/p>\n<p>La question principale est qu\u2019est-ce qui doit \u00eatre mesur\u00e9 ? Il existe beaucoup de mesures de la vitesse des sites, mais seules quelques-unes sont essentielles.<\/p>\n<p><strong>Premi\u00e8rement<\/strong>, c\u2019est le temps de chargement du premier octet du site ( TTFB \u2013 time to first byte). C\u2019est le temps depuis le d\u00e9but du chargement jusqu\u2019\u00e0 la r\u00e9ception des premiers donn\u00e9s du serveur. C\u2019est la mesure essentielle pour l\u2019optimisation du serveur.<\/p>\n<p><strong>Deuxi\u00e8mement<\/strong>, c\u2019est le commencement de l\u2019affichage de la page (d\u00e9but d\u2019affichage, premi\u00e8re image). Cette mesure montre le temps jusqu\u2019\u00e0 l\u2019ach\u00e8vement de la p\u00e9riode \u00ab \u00e9cran blanc \u00bb dans le navigateur, quand la page commence \u00e0 s\u2019afficher.<\/p>\n<p><strong>Troisi\u00e8mement<\/strong>, c\u2019est le chargement des \u00e9l\u00e9ments principaux de la page (le temps de chargement). Cela comprend le chargement et l\u2019interpr\u00e9tation de toutes les ressources de la page. Apr\u00e8s avoir obtenu ces caract\u00e9ristiques, l\u2019indicateur du chargement de la page ach\u00e8ve son travail.<\/p>\n<p><strong>Quatri\u00e8mement<\/strong>, c\u2019est le chargement complet de la page : le temps avant la fin de l\u2019activit\u00e9 principale du navigateur, quand toutes les ressources principales et secondaires sont charg\u00e9es.<\/p>\n<p>Ces m\u00e9triques basiques peuvent \u00eatre mesur\u00e9es en quelques secondes. Il est aussi utile de pouvoir mesurer le taux du trafic pour les mesures 3 et 4. Le Traffic doit \u00eatre connu pour \u00e9valuer l\u2019effet de la vitesse de la connexion sur le temps du chargement.<\/p>\n<p>Nous devons comprendre aussi comment tester la vitesse. Il existe beaucoup de services et d\u2019outils, les unes meilleures que les autres, pour \u00e9valuer la vitesse du chargement des sites.<\/p>\n<p>L\u2019un des outils le plus puissant est l\u2019onglet de configuration du navigateur. Chrome est le navigateur qui poss\u00e8de les fonctionnalit\u00e9s de configuration les plus avanc\u00e9es. Dans l\u2019onglet du r\u00e9seau, vous pouvez obtenir toutes les mesures qui concernent le temps de chargement de tous les \u00e9l\u00e9ments, y compris le document HTML. Lorsque vous passez la souris sur un \u00e9l\u00e9ment, vous pouvez voir combien de temps a fallu \u00e0 chaque \u00e9tape pour obtenir les donn\u00e9es. Vous pouvez aussi aller dans l\u2019onglet de la performance pour \u00e9valuer en int\u00e9gralit\u00e9 le process de chargement de la page. Ici vous trouverez tous les d\u00e9tails jusqu\u2019\u00e0 le temps que met la page pour d\u00e9coder les images.<\/p>\n<p>Si vous avez besoin d\u2019estimer la vitesse du chargement du site sans beaucoup de pr\u00e9cision, il sera utile de commencer par faire son audit (L\u2019onglet d\u2019Audit). Il pourra \u00eatre r\u00e9alis\u00e9 gr\u00e2ce au plug-in Lighthouse. Dans le rapport, on pourra trouver une estimation de vitesse pour les appareils mobiles et quelques autres rapports.<\/p>\n<p>Pour \u00e9valuer rapidement l\u2019optimisation du parcours client, vous pouvez utiliser <a href=\"https:\/\/developers.google.com\/speed\/pagespeed\/insights\/\">Google PageSpeed Insights<\/a> ou Sitechecker (nous utilisons une API de Google PageSpeed Insights). Finalement, il est utile d\u2019analyser le temps de chargement du site par un utilisateur r\u00e9el. Pour cela, il existe des rapports sp\u00e9cifiques dans le syst\u00e8me d\u2019analyse web de Yandex.Metrics et Google Analytics.<\/p>\n<p>Les points de rep\u00e8re pour le temps du chargement du site sont les suivants : le d\u00e9but de l\u2019affichage doit d\u2019\u00eatre 1 seconde environ, le chargement de la page se fait en 3-5 secondes. Dans un tel cadre, les utilisateurs ne vont pas se plaindre contre la vitesse et le temps de chargement du site et rien ne limitera sa performance. Ces chiffres devraient \u00eatre atteints par des utilisateurs r\u00e9els, m\u00eame dans des conditions d\u2019une mauvaise connexion mobile ou lors de l\u2019utilisation des appareils obsol\u00e8tes.<\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"serveroptimization\">L\u2019optimisation du serveur<\/h2>\n<p>&nbsp;<\/p>\n<p>Passons \u00e0 l\u2019acc\u00e9l\u00e9ration du site m\u00eame. L\u2019optimisation du serveur est la partie la plus compr\u00e9hensible et \u00e9vidente pour les d\u00e9veloppeurs web. Premi\u00e8rement, il est tr\u00e8s facile de surveiller et contr\u00f4ler la partie du serveur par les administrateurs du syst\u00e8me. Deuxi\u00e8mement, s\u2019il y a de s\u00e9rieux probl\u00e8mes avec le temps de r\u00e9ponse du serveur, tout le monde pourra facilement s\u2019en apercevoir ind\u00e9pendamment de la vitesse de la connexion ou de l\u2019appareil.<\/p>\n<p>Alors que les raisons du freinage du c\u00f4t\u00e9 du serveur peuvent \u00eatre tr\u00e8s diff\u00e9rentes, il existe quand m\u00eame des endroits typiques \u00e0 regarder en premier.<\/p>\n<p>&nbsp;<\/p>\n<h3>H\u00e9bergeur web ( les ressources du serveur)<\/h3>\n<p>C\u2019est la raison num\u00e9ro un du freinage pour de petits sites. Il n\u2019y a juste pas assez de ressources du serveur pour le chargement du site (de vitesse du processeur et du syst\u00e8me de disque) . Si vous pouvez augmenter rapidement ces ressources, cela vaut la peine de le faire. Parfois, le probl\u00e8me pourra \u00eatre r\u00e9solu. Mais si le co\u00fbt des ressources suppl\u00e9mentaires devient plus grand que le co\u00fbt du travail d\u2019optimisation, vous devez \u00e9tudier les m\u00e9thodes suivantes.\u00a0Si vous ne savez pas quel est votre h\u00e9bergement, vous pouvez toujours <a href=\"http:\/\/test.sitechecker.pro\/fr\/hosting-checker\/\">trouver l&#8217;h\u00e9bergeur d&#8217;un site<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3>SGBD ( le serveur de la base des donn\u00e9es)<\/h3>\n<p>Ici nous nous approchons vers la source du probl\u00e8me : la faible vitesse du code de programmation. Parfois l\u2019application web passe la plupart de son temps dans les appels des bases de donn\u00e9es. Cela semble logique, car l\u2019application web est amen\u00e9e \u00e0 collecter les donn\u00e9es et les convertir conform\u00e9ment aux certaines conditions.<\/p>\n<p>Pour r\u00e9soudre le probl\u00e8me des r\u00e9ponses lentes de la part des bases de donn\u00e9es, il faut parfoi passer par deux \u00e9tapes : r\u00e9gler le SGBD et optimiser les requ\u00eates et les sch\u00e9mas des donn\u00e9es. Le r\u00e9glage de SGBD (par exemple, MySQL) peut forcer l\u2019acc\u00e9l\u00e9ration plusieurs fois, \u00e0 condition qu\u2019aucun r\u00e9glage n\u2019a \u00e9t\u00e9 effectu\u00e9 pr\u00e9c\u00e9demment. Un r\u00e9glage affin\u00e9 pourra donner un effet impressionnant !<\/p>\n<p>Un autre moyen d\u2019acc\u00e9l\u00e9rer le chargement des sites est l\u2019optimisation des requ\u00eates et des sch\u00e9mas des donn\u00e9es. Cette optimisation permettra d\u2019obtenir une acc\u00e9l\u00e9ration de plusieurs ordres de grandeur. Si le changement dans la structure de la base de donn\u00e9es peut se faire sans l\u2019intrusion dans le code de programmation du site, l\u2019optimisation des requ\u00eates n\u00e9cessitera une telle intervention.<\/p>\n<p>Pour identifier les probl\u00e8mes qui causent le ralentissement, vous devez collecter dans la base des donn\u00e9es les statistiques du chargement durant une pr\u00e9riode assez longue. Et ensuite, apr\u00e8s l\u2019analyse des donn\u00e9es, on pourra identifier les segments \u00e0 \u00eatre optimis\u00e9s.<\/p>\n<p>&nbsp;<\/p>\n<h3>L\u2019effet du SGC et du code deprogrammation<\/h3>\n<p>Beaucoup de gens croient que la vitesse du site ne d \u00e9pend que du syst\u00e8me de gestion de contenu (SGC). Les propri\u00e9taires des sites essaient parfois de diviser les SGC en rapides et lents. Pourtant faire cela est une erreur.<\/p>\n<p>Certes, le chargement du serveur d\u00e9pend du code que comporte le SGC utilis\u00e9. Cependant, les syst\u00e8mes les plus connus essaient d\u2019optimiser au maximum la vitesse des sites et les probl\u00e8mes fatales li\u00e9s \u00e0 cette vitesse ne devraient pas y avoir lieu.<\/p>\n<p>Pourtant, le site peut contenir non seulement le SGC code principal, mais des modules compl\u00e9mentaires (plug-ins), des extensions et des modifications apport\u00e9es par les d\u00e9veloppeurs du site. Et le code fourni par ces-derniers peut d\u00e9j\u00e0 influencer la performance du site.<\/p>\n<p>De plus, des probl\u00e8mes li\u00e9s \u00e0 la performance apparaissent lorsque le syst\u00e8me est mal utilis\u00e9. Par exemple, la plateforme pour les blogs est utilis\u00e9e pour cr\u00e9er un magasin. Ou encore le syst\u00e8me pour de petits sites est utilis\u00e9 pour d\u00e9velopper un portail.<\/p>\n<p>&nbsp;<\/p>\n<h3>Le cache<\/h3>\n<p>Le moyen le plus puissant et universel pour augmenter la vitesse du serveur est traditionnellement le cache. Ici nous parlons de la mise des donn\u00e9es dans le cache du c\u00f4t\u00e9 serveur. Si le calcul du r\u00e9sultat (l\u2019ensemble de la page, du bloc) exige des ressources significatives, mettez le r\u00e9sultat dans le cache et veillez \u00e0 faire une mise \u00e0 jour p\u00e9riodique. L\u2019id\u00e9e est simple et complexe : les syst\u00e8mes cache sont int\u00e9gr\u00e9s dans les langues de programmation, les syst\u00e8mes de gestion des sites et les serveurs web. La mise d\u2019une page dans le cache r\u00e9duit le temps d\u2019affichage de celle-ci des dizaines de milliers de secondes. Naturellement, dans ce cas, le serveur peut r\u00e9sister facilement \u00e0 des pics de fr\u00e9quentation du site. Deux probl\u00e8mes se pr\u00e9sentent : non pas tout peut \u00eatre mis dans le cache et il doit \u00eatre d\u00e9sactiv\u00e9 (refus\u00e9). Si ces probl\u00e8mes sont r\u00e9solus, la mise en cache des donn\u00e9es pourrait \u00eatre recommand\u00e9e comme l\u2019un des moyens tr\u00e8s efficaces de l\u2019augmentation de la performance du serveur.<\/p>\n<p>&nbsp;<\/p>\n<h3>L\u2019optimisation de TCP, TLS, http\/2<\/h3>\n<p>Dans cette partie, nous avons combin\u00e9 les moyens subtils d\u2019optimisation du r\u00e9seau qui font augmenter la performance du serveur. L\u2019effet atteint ici n\u2019est pas aussi important qu\u2019avec les autres m\u00e9thodes. Toutefois, il est obtenu exclusivement par le moyen de configuration, c\u2019est-\u00e0-dire gratuitement.<\/p>\n<p>L\u2019optimisation du TCP aujourd\u2019hui est requise pour des grands projets et les serveurs avec une connexion \u00e0 partir de 10G. La chose \u00e0 retenir : \u00e7a vaut la peine de mettre \u00e0 jour le sous-syst\u00e8me du r\u00e9seau, car celui-ci est renouvel\u00e9 r\u00e9guli\u00e8rement \u00e0 chaque sortie du nouveau noyau de Linux. Un TLS (HTTPS) bien configur\u00e9 vous permet d\u2019obtenir un niveau de s\u00e9curit\u00e9 \u00e9lev\u00e9 et minimiser le temps n\u00e9cessaire \u00e0 l\u2019\u00e9tablissement d\u2019une connexion s\u00e9curis\u00e9e. Mozilla a publi\u00e9 de bonnes recommandations \u00e0 ce sujet.<\/p>\n<p>La nouvelle version du protocole http \u2013 http\/2 est con\u00e7ue pour acc\u00e9l\u00e9rer le t\u00e9l\u00e9chargement depuis des sites. Apparu r\u00e9cemment, ce protocole est \u00e0 ce jour activement utilis\u00e9 ( par 20% des sites web). En g\u00e9n\u00e9ral, le protocole http\/2 poss\u00e8de d\u00e9j\u00e0 des m\u00e9canismes d\u2019acc\u00e9l\u00e9ration bien \u00e9tablis. Le m\u00e9canisme principal consiste en une r\u00e9duction de l\u2019impact des retards de la part du r\u00e9seau sur le temps de chargement de la page (exige un multiplexage). Pourtant, l\u2019acc\u00e9l\u00e9ration gr\u00e2ce \u00e0 http\/2 n\u2019est pas toujours r\u00e9ussie et de ce fait, ne comptez pas trop sur ce protocole.<\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"customeroptimization\">L\u2019optimisation du parcours client<\/h2>\n<p>&nbsp;<\/p>\n<p>Contrairement \u00e0 l\u2019optimisation du serveur , le client est touch\u00e9 par tout ce qui se passe dans son navigateur. Pour cette raison, il est difficile de tout contr\u00f4ler (diff\u00e9rents appareils et navigateurs) et de choisir les bonnes techniques d\u2019optimisation. Nous allons examiner les m\u00e9thodes les plus efficaces et universelles qui pourront \u00eatre utilis\u00e9es dans la plupart des projets.<\/p>\n<p>&nbsp;<\/p>\n<h3>L\u2019optimisation du chemin critique : CSS, JS<\/h3>\n<p>Le chemin critique du rendu est un ensemble de ressources qui permet le lancement de l\u2019affichage de la page dans un navigateur. Ce proc\u00e8s inclue le HTML, le document m\u00eame, les styles CSS, les polices et le code JS.<\/p>\n<p>Notre but en tant qu\u2019optimisateurs est de r\u00e9duire le chemin en termes de temps (en tenant compte des d\u00e9lais du r\u00e9seau) et de Traffic ( en tenant compte des connexions lentes).<\/p>\n<p>Le moyen le plus facile pour d\u00e9terminer le chemin critique est de lancer un audit dans Chrome ( dans le panneau de d\u00e9veloppeurs). Le plug-in Ligthouse d\u00e9terminera sa composition et le temps de d\u00e9marrage, tout en tenant compte de la connexion ralentie.<\/p>\n<p>&nbsp;<\/p>\n<p>La technique principale consiste \u00e0 r\u00e9duire le chemin critique : nous enlevons tout ce qui n\u2019est pas utile ou qui peut \u00eatre report\u00e9. Par exemple, la plupart du code JS peut \u00eatre diff\u00e9r\u00e9 avant le chargement de la page. Pour effectuer cette manipulation, placez la ressource JS \u00e0 la fin du document HTML ou utilisez l\u2019attribut async.<\/p>\n<p>Pour \u00e9viter le chargement long du CSS , il est possible d\u2019utiliser une combinaison dynamique des styles via JS ( il faut attendre l\u2019\u00e9v\u00e9nement domContentLoaded).<\/p>\n<p>&nbsp;<\/p>\n<h3>L\u2019optimisation des polices web<\/h3>\n<p>L\u2019int\u00e9gration des polices web dans la conception des sites est devenue presque la norme aujourd\u2019hui. Mais malheureusement, cela influence n\u00e9gativement la vitesse de chargement de la page. Les polices web sont les ressources suppl\u00e9mentaires que vous devez avoir avant de commencer \u00e0 \u00e9crire votre texte.<\/p>\n<p>La situation s\u2019aggrave, car parfois les indicateurs des polices se perdent dans le fichier CSS, le lancement duquel ne se fait pas non plus instantan\u00e9ment . De nombreux d\u00e9veloppeurs aiment utiliser les services des polices web publiques (par exemple, Google Fonts), qui provoquent encore plus de retards ( les connexions suppl\u00e9mentaires, le fichier CSS).<\/p>\n<p>Les r\u00e8gles d\u2019optimisation ici consistent \u00e0 r\u00e9duire la charge du trafic qu\u2019occupent les polices web afin de les afficher le plus rapidement possible.<\/p>\n<p>Pour r\u00e9duire la charge du trafic, vous devez utiliser les formats modernes : WOFF2 pour les navigateurs r\u00e9cents, WOFF pour la compatibilit\u00e9. Vous devez, en outre, inclure uniquement des caract\u00e8res utilis\u00e9s sur le site ( par exemple, latins ou cyrilliques).<\/p>\n<p>Pour pousser l\u2019affichage rapide des polices web, vous pouvez utiliser les sp\u00e9cifications du nouveau lien rel= \u00ab preload \u00bb et les propri\u00e9t\u00e9s des polices du CSS. Le pr\u00e9 chargement permettra d\u2019informer le plus rapidement le navigateur sur la n\u00e9cessit\u00e9 de t\u00e9l\u00e9charger le fichier des polices. Le font-display permettra de contr\u00f4ler facilement le comportement du navigateur en cas du retard du fichier (attendre, cr\u00e9er une copie de sauvegarde, ne pas attendre le chargement des polices plus de 3 secondes) .<\/p>\n<p>&nbsp;<\/p>\n<h3>L\u2019optimisation des images<\/h3>\n<p>Les images sont l\u2019une des plus grosses charges d\u2019un site moderne. Certes, ces ressources ne sont pas aussi critiques pour le chargement de la page que le CSS et le code JS. Mais pour beaucoup de sites, les images constituent une part important du contenu : c\u2019est le cas, par exemple, des produits dans les boutiques en ligne.<\/p>\n<p>La technique principale pour optimiser les images est de r\u00e9duire leur taille. Pour le faire, il faut utiliser un format adapt\u00e9 et se servir des outils de compression :<\/p>\n<ul>\n<li>\u00a0PNG pour les images avec transparence et texte ;<\/li>\n<li>JPEG pour les photos et les images complexes ;<\/li>\n<li>SVG pour les graphiques vectoriels .<\/li>\n<\/ul>\n<p>A part ces formats, on a d\u00e9velopp\u00e9 \u00e9galement des nouveaux : par exemple, WebP de Google. Ce format peut avoir la m\u00eame zone d\u2019utilisation que le PNG et le JPEG \u2013 il assure la compression avec ou sans perte, la transparence et m\u00eame l\u2019animation. Pour l\u2019utiliser, il suffit de cr\u00e9er une copie des images en format WebP et les charger dans des navigateurs qui le supportent.<\/p>\n<p>Pour les images en PNG, il y a beaucoup d\u2019outils d\u2019optimisation qui peuvent \u00eatre utilis\u00e9s pour r\u00e9duire la taille, par exemple, OptiPNG, PNGout, <a href=\"https:\/\/ewww.io\/plans\/ref\/156\/\">EWWW Image Optimizer<\/a>\u00a0et d\u2019autres. Il est, par ailleurs, possible d\u2019effectuer une optimisation interne de la compression des donn\u00e9es en utilisant zopfliPNG. Le but principal de ce logiciel est de s\u00e9lectionner les param\u00e8tres de compression optimaux en supprimant les donn\u00e9es non n\u00e9cessaires du fichier. Ici vous devez \u00eatre prudents : dans les modes des certains outils il y des pertes de qualit\u00e9, ce qui pourrait ne pas vous convenir (si vous vous attendez \u00e0 ce que l\u2019image ajust\u00e9e soit conforme \u00e0 l\u2019original ).<\/p>\n<p>Le processus d\u2019optimisation des fichiers en JPEG est aussi divis\u00e9 en deux types : avec et sans perte de qualit\u00e9. En g\u00e9n\u00e9ral, il est recommand\u00e9 d\u2019utiliser le JPEG package de Mozilla, qui est con\u00e7u sp\u00e9cialement pour la meilleure compression des images de ce format. Pour une optimisation sans perte, vous pouvez utiliser jpegtran, et avec pertes \u2013 cjpeg.<\/p>\n<p>&nbsp;<\/p>\n<h3>La mise en cache des titres<\/h3>\n<p>C\u2019est la m\u00e9thode la plus facile de l\u2019optimisation du parcours client. Il consiste \u00e0 mettre dans le cache du navigateur les ressources exceptionnels : les images, les fichiers CSS et JS, les polices, parfois m\u00eame le document HTML. Par cons\u00e9quent, la sollicitation de chaque ressource au serveur s\u2019effectue qu\u2019une seule fois. Si vous utilisez Nginx, rajoutez simplement une instruction : add_header Cache-Control &#8220;max-age=31536000, immutable&#8221;;<\/p>\n<p>D\u00e8s maintenant, le navigateur est autoris\u00e9 \u00e0 mettre en cache les ressources pour une dur\u00e9e d\u2019un an (ce qui correspond presque \u00e0 une \u00e9ternit\u00e9). Le nouveau param\u00e8tre \u00ab immutable \u00bb indique que la ressource ne doit pas \u00eatre chang\u00e9e.<\/p>\n<p>Une autre question surgit : que faire si jamais on a besoin de changer la ressource mise en cache ? La r\u00e9ponse est simple : changez son adresse, l\u2019URL). Par exemple, vous pouvez ajouter une version au nom du fichier. On peut utiliser cette m\u00e9thode \u00e9galement pour les documents HTML, mais, en g\u00e9n\u00e9ral, pour une dur\u00e9e de mise en cache plus courte ( par exemple, une minute ou une heure).<\/p>\n<p>&nbsp;<\/p>\n<h3>La compression des donn\u00e9es<\/h3>\n<p>Il est obligatoire de compresser tout texte ou donn\u00e9e lors de leur transfert depuis un serveur vers le navigateur. La plupart des serveurs web dispose d\u2019un gzip-compresseur des r\u00e9sultats.<\/p>\n<p>Toutefois, l\u2019activation d\u2019une simple compression n\u2019est pas suffisant.<\/p>\n<p>Premi\u00e8rement, il faut ajuster le taux de compression afin qu\u2019il soit le plus proche du maximum.<\/p>\n<p>Deuxi\u00e8mement, vous pouvez utiliser la compression statique, c\u2019est-\u00e0-dire les fichiers pr\u00e9alablement compress\u00e9s, et les mettre sur le disque. Le serveur web va ensuite chercher la version compress\u00e9e et la rendra imm\u00e9diatement une fois trouv\u00e9. Troisi\u00e8mement, vous pouvez utiliser la compression des algorithmes encore plus efficace : zopfli ( compatible avec gzip) et brotli ( l\u2019algorithme de compression r\u00e9cent). Brotli ne pourra fonctionner qu\u2019avec HTTPS.<\/p>\n<p>Comme la compression de ces algorithmes ( zopfli en particulier) est ch\u00e8re, nous les utilisons toujours dans la version statique.<\/p>\n<p>Pour optimiser l\u2019effet de la compression des fichiers, on applique d\u2019abord le processus de minification : suppression des traductions inutiles des chaines, des espaces, et d\u2019autres caract\u00e8res superflus. Ce process est sp\u00e9cifique pour chaque format. Vous devez aussi veiller \u00e0 compresser d\u2019autres donn\u00e9es de texte sur le site.<\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"usingcdn\">Utilisation du RDC<\/h2>\n<p>&nbsp;<\/p>\n<p>Une autre mesure tr\u00e8s conseill\u00e9e pour l\u2019augmentation de la performance web est l\u2019utilisation d\u2019un RDC ( R\u00e9seau de diffusion de contenu) o\u00f9 de nombreuses strat\u00e9gies de marketing visent l\u2019essence de la technologie.<\/p>\n<p>&nbsp;<\/p>\n<h3>Th\u00e9orie : pourquoi<\/h3>\n<p>Initialement, les RDC ont \u00e9t\u00e9 con\u00e7us pour d\u00e9charger les r\u00e9seaux internet des diffusions diverses de la part des m\u00e9dias sociaux. Par exemple, lorsque plusieurs milliers de personnes regardent une vid\u00e9o en direct, cela cr\u00e9e une charge tr\u00e8s importante sur la bande passante du serveur. De plus, il est extr\u00eamement difficile d\u2019assurer une communication de qualit\u00e9 et ininterrompue pour un grand nombre de clients ( \u00e0 cause des d\u00e9lais et l\u2019instabilit\u00e9 du r\u00e9seau).<\/p>\n<p>Pour r\u00e9soudre ce probl\u00e8me, on a cr\u00e9\u00e9 le RDC, c\u2019est-\u00e0-dire un r\u00e9seau de distribution auquel se connectaient les clients ( par exemple, les spectateurs) et rejoignaient les h\u00f4tes d\u2019origine (les diffuseurs ) qui \u00e9taient d\u00e9j\u00e0 pr\u00e9sents sur le serveur. Dans le m\u00eame temps, le nombre de connexions au serveur \u00e9tait r\u00e9duit \u00e0 1 (ou plusieurs), et le nombre de connexions au RDC pouvait atteindre des millions en raison de la mise en cache du contenu par le r\u00e9seau.<\/p>\n<p>Aujourd\u2019hui, la plupart des RDC se positionnent comme le moyen d\u2019augmentation de la performance web en r\u00e9duisant la distance entre le contenu et le client (le visiteur du site).<\/p>\n<p>&nbsp;<\/p>\n<h3>Les effets possibles<\/h3>\n<p>Comment pourrais-je augmenter la performance du site en utilisant le RDC ?<\/p>\n<p>Oui, en effet, en r\u00e8gle g\u00e9n\u00e9rale, l\u2019utilisateur se connecte au serveur du r\u00e9seau le plus proche. Les connexions TCP et TLS sont, ensuite, \u00e9tablies rapidement. Par ailleurs, si le contenu est sur le serveur CDN, l\u2019utilisateur y a acc\u00e8s tr\u00e8s vite. La charge sur notre propre serveur est r\u00e9duite.<\/p>\n<p>Deuxi\u00e8mement, le RDC ne peut pas juste distribuer le contenu sans le faire changer. Il l\u2019optimise de sa fa\u00e7on et le rend sous une forme plus compacte : les images, le test etc sont compress\u00e9s. Gr\u00e2ce \u00e0 ces optimisations, le temps de t\u00e9l\u00e9chargement du contenu est r\u00e9duit.<\/p>\n<p>&nbsp;<\/p>\n<h3>Les d\u00e9savantages de l\u2019utilisation du RDC<\/h3>\n<p>A c\u00f4t\u00e9 des avantages il y a toujours des inconv\u00e9nients : il arrive que l\u2019objet ne soit pas disponible dans le cache du n\u0153ud RDC . Par exemple, il n\u2019a pas encore \u00e9t\u00e9 demand\u00e9 ou ne peut juste pas y \u00eatre mis (document HTML). Dans ce cas, on fait face \u00e0 des retards suppl\u00e9mentaires qui sont cr\u00e9\u00e9s entre le n\u0153ud du RDC et notre serveur.<\/p>\n<p>Les RDC sont con\u00e7us pour acc\u00e9l\u00e9rer l\u2019acc\u00e8s au site. Pourtant il y a des situations quand la route du r\u00e9seau fonctionnerait mieux sans l\u2019utilisation des RDC. Ceci se r\u00e9v\u00e8le particuli\u00e8rement important pour des RDC mondiaux, pour lesquels le march\u00e9 de la Russie n\u2019est pas la plus grande priorit\u00e9.<\/p>\n<p>Finalement, les r\u00e9seaux du contenu constituent des syst\u00e8mes complexes instables, o\u00f9 tr\u00e8s fr\u00e9quents sont les accidents divers, peu importe le pays. En utilisant les RDC nous ajoutons une complication suppl\u00e9mentaire.<\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"conclusions\">Maintenir le r\u00e9sultat<\/h2>\n<p>&nbsp;<\/p>\n<p>Supposons que vous avez r\u00e9ussi \u00e0 obtenir une bonne performance du site. Les utilisateurs et les propri\u00e9taires de la ressource sont heureux. Apr\u00e8s cela vous pouvez oublier les probl\u00e8mes li\u00e9s \u00e0 la performance ? Bien s\u00fbr que non. Pour que votre site fonctionne bien de mani\u00e8re constante, vous devez tout le temps le surveiller et maintenir.<\/p>\n<p>&nbsp;<\/p>\n<h3>Le maintien de la performance<\/h3>\n<p>Tout projet web en ligne est r\u00e9guli\u00e8rement mis \u00e0 jour. Les changements ont lieu dans des mod\u00e8les courants (les th\u00e8mes, interfaces) et dans le contenu. De plus, le code de programmation (client et serveur) change de mani\u00e8re active.<\/p>\n<p>Chaque changement peut affecter la vitesse du site. Pour surveiller cet impact, vous devez mettre en place un syst\u00e8me de surveillance synth\u00e9tique de la vitesse du site au stade du d\u00e9veloppement de celui-ci. Gr\u00e2ce \u00e0 cela, les probl\u00e8mes li\u00e9s \u00e0 la vitesse pourront \u00eatre intercept\u00e9s avant que les utilisateurs ne les remarquent.\u00a0La <a href=\"http:\/\/test.sitechecker.pro\/fr\/website-monitoring\/\">website monitoring<\/a> fait donc partie int\u00e9grante de l&#8217;optimisation.<\/p>\n<p>Pour optimiser le contenu entrant, il est n\u00e9cessaire d\u2019int\u00e9grer les proc\u00e9dures d\u2019optimisation dans le syst\u00e8me de gestion de contenu. Premi\u00e8rement, cela concerne le traitement d\u2019image.<\/p>\n<p>La performance des sites est un domaine tr\u00e8s dynamique : de nouveaux standards apparaissent et leur support par les navigateurs change. Par cons\u00e9quent, il est important de v\u00e9rifier r\u00e9guli\u00e8rement les technologies du projet, des processus et logiciels utilis\u00e9s.<\/p>\n<p>&nbsp;<\/p>\n<h3>La surveillance de la performance pour les utilisateurs r\u00e9els<\/h3>\n<p>Les test synth\u00e9tiques dans des conditions laboratoires id\u00e9ales sont certes tr\u00e8s utiles pour \u00e9valuer les changements dans le code du syst\u00e8me, mais ce n\u2019est pas suffisant. En fin de compte, nous voulons que le site soit performant pour des utilisateurs r\u00e9els. Pour collecter ce genre d\u2019information, il existe un outil de surveillance de la vitesse du site, telle que la per\u00e7oivent les utilisateurs (RUM \u2013 real user monitoring).<\/p>\n<p>Pour mettre en place le RUM, il suffit de lancer l\u2019un des syst\u00e8mes d\u2019analyse ( Yandex.Metrica, Google Analytics) et observer les rapports sur le temps de chargement du site.<\/p>\n<p>&nbsp;<\/p>\n<h3>Conclusions<\/h3>\n<p>Le sujet de la performance web, qui affecte de nombreux aspects de la conception et de la maintenance d\u2019une application web : depuis le code serveur jusqu\u2019\u00e0 contenu, est assez vaste. Cela signifie, qu\u2019il est impossible d\u2019obtenir de bons r\u00e9sultats sans y impliquer une \u00e9quipe qui veillera \u00e0 son d\u00e9veloppement.<\/p>\n<p>La chose la plus importante \u00e0 retenir : pensez aux utilisateurs, tenez compte des conditions diff\u00e9rentes dans lesquels ils utilisent le site. L\u2019augmentation de la performance du site est un processus qui peut \u00eatre plus ou moins r\u00e9ussi pendant les \u00e9tapes diff\u00e9rentes du projet.<\/p>","protected":false},"excerpt":{"rendered":"&nbsp; Chacun sait qu\u2019un site lent c\u2019est p\u00e9nible. De graves probl\u00e8mes dans la solution des t\u00e2ches quotidiennes apparaissent en raison du site qui freine. Parfois c\u2019est juste agassant. Parfois, le freinage est d\u00fb \u00e0 une panne, un d\u00e9ni de service et les gens partent sans attendre le chargement. Ceci est significatif dans les cas du&#8230;","protected":false},"author":10380808,"featured_media":3348,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"pages-templates\/pages-minitools-3.php","meta":[],"categories":[60],"tags":[],"_links":{"self":[{"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/pages\/1063"}],"collection":[{"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/users\/10380808"}],"replies":[{"embeddable":true,"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/comments?post=1063"}],"version-history":[{"count":0,"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/pages\/1063\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/media\/3348"}],"wp:attachment":[{"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/media?parent=1063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/categories?post=1063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/test.sitechecker.pro\/fr\/wp-json\/wp\/v2\/tags?post=1063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}