+ All Categories
Home > Technology > Introduction à la performance web

Introduction à la performance web

Date post: 05-Dec-2014
Category:
Upload: raphael-goetter
View: 9,511 times
Download: 1 times
Share this document with a friend
Description:
Introductions aux notions de performances web et des temps d'affichage des pages : notions, avantages financiers, ce qui ralentit le web, comment mesurer, quelques exemples, comment accélérer ses pages concrètement.
45
PERFORMANCE WEB Par quoi commencer ? Photo : © Raphaël Goetter
Transcript
Page 1: Introduction à la performance web

PERFORMANCE WEBPar quoi commencer ? 

Photo : © Raphaël Goetter

Page 2: Introduction à la performance web

RAPHAËL GOETTERAlsacréations

#CSS #Standards #Webdesign #Responsive

#HTML #Accessibilité #WebPerf

Page 3: Introduction à la performance web

L'INTERNAUTEN'AIME PASATTENDRE

!

Page 4: Introduction à la performance web

ON VEUT DES CHIFFRES ! Vous aimez les stats ? 

Page 5: Introduction à la performance web

ON VEUT DES CHIFFRES ! Sites e-commerce et attente client

57 % des visiteurs quittent un site e-commerce s'il met plus de 4 secondes à s'afficher

– PhoCusWright / Akamai (2010)“ 

Page 6: Introduction à la performance web

26 % des visiteurs quittent un site e-commerce s'il met plus de 2 secondes à s'afficher

– PhoCusWright / Akamai (2010)“ ON VEUT DES CHIFFRES ! 

Sites e-commerce et attente client

Page 7: Introduction à la performance web

ON VEUT DES CHIFFRES ! C'est pire sur mobile ! 

60% des mobinautes s'attendent à un chargement de 3s maximum pour un site mobile

– Compuware (2011)“ 

Page 8: Introduction à la performance web

ON VEUT DES CHIFFRES ! C'est pire sur mobile ! 

60% des mobinautes s'attendent à un chargement de 3s maximum pour un site mobile

– Compuware (2011)“ … Et 74% quittent une page après 5 secondes d'attente

– Compuware (2011)“ 

Page 9: Introduction à la performance web

POURQUOI LA PERFORMANCE WEB ? 

Photo : CC Flickr - jdwheaton

Page 10: Introduction à la performance web

PARCE QUE ÇA RAPPORTE ! 

Photo : CC Flickr - jdwheaton

Page 11: Introduction à la performance web

+100ms1% perte de revenus

Page 12: Introduction à la performance web

+100ms1% perte de revenus

⬇+500ms

-20% de recherches⬇

Page 13: Introduction à la performance web

+100ms1% perte de revenus

⬇+500ms

-20% de recherches⬇

-2s+15% de chargements

Page 14: Introduction à la performance web

+100ms1% perte de revenus

⬇+500ms

-20% de recherches⬇

-2s+15% de chargements

⬇-5s

+12% de revenus+25% pageviews

Page 15: Introduction à la performance web

MAIS AUSSI (SURTOUT ?) ...

Sources : WebRankInfo / 1ere-position.fr / silicon.fr

En 2010, Google a annoncé officiellement qu'il tenait compte de la rapidité des sites dans son algorithme de positionnement.

Google recommande un délai moyen de 1,5 seconde pour l’affichage d’une page web.

❶ ❷

Page 16: Introduction à la performance web

QU'EST-CE QUIRALENTITLE WEB

?

Page 17: Introduction à la performance web

LE TYPE DE CONNEXION

EDGE (0,38 Mbit/s)

3G (1,9 Mbit/s)

3G+ (3,6 Mbit/s)

H+ (10 Mbit/s)

Wi-Fi (25 Mbit/s)

ADSL (30 Mbit/s)

4G (40 Mbit/s)

Fibre (100 Mbit/s)

Source : Wikipedia

Page 18: Introduction à la performance web

LE TYPE DE CONNEXION

3G 20 minutes➞

3G+ 1min 15s➞

4G 10 secondes➞

Concrètement...

Source : Orange (bon OK c'est un peu bullshit marketing)

Téléchargement d'un album de musique :

Page 19: Introduction à la performance web

LE POIDS DES RESSOURCES

Images 700 Ko➞

JavaScript 230 Ko➞

CSS 37 Ko➞

HTML 45 Ko➞

Autres 188 Ko➞

1,2Mo au total en moyenne : 

Source : AlexaRank Top 1000 (janvier - août 2013)

Page 20: Introduction à la performance web

LE POIDS DES RESSOURCES

Source : http://mobitest.akamai.com

Page 21: Introduction à la performance web

LE NOMBRE DE REQUÊTES

Images 60 requêtes➞

JavaScript 17 requêtes➞

CSS 3,5 requêtes➞

HTML 10 requêtes➞

Autres 7 requêtes➞

98 requêtes en moyenne : 

Source : AlexaRank Top 1000 (janvier - août 2013)

Page 22: Introduction à la performance web

LE NOMBRE DE REQUÊTES… à cause de la latence

Latence● dépend du serveur, du DNS● dépend de la connexion :

● 20-60ms via ADSL● 200-600ms en 3G

Chargement● dépend du poids

Page 23: Introduction à la performance web

LES RALENTISSEMENTS DIVERS

Scripts bloquants

CSS bloquants

Redirections HTTP/JavaScript

Mauvaises requêtes (404)

Reflow, repaint navigateur

Etc.

Page 24: Introduction à la performance web

LES OUTILS POUR

TESTER

Photo : © Raphaël Goetter

Page 25: Introduction à la performance web

MANUELLEMENTOutil d'audit de Chrome

Module d'audit divers (accessibilité, réseau, performances,...) directement intégré au navigateur Chrome :

Touche F12 Onglet « Audit » Option « Webpage performance »➞ ➞

Page 26: Introduction à la performance web

MANUELLEMENTExtensions : YSlow et PageSpeed 

YSlow (Yahoo!) : plugin disponible sur Firefox, Chrome, Safari, Opera

PageSpeed (Google) : plugin Chrome, Firefox et en ligne

Page 27: Introduction à la performance web

EN LIGNELa référence : WebPageTest.org  

Au choix : lieu du serveur, type de connexion, navigateur, etc.

Page 28: Introduction à la performance web

EN LIGNEHttparchive.org

FilmStrip !

Page 29: Introduction à la performance web

EN LIGNEGoogle PageSpeed Insights

Page 30: Introduction à la performance web

EN LIGNEAkamai Mobitest

Pour les temps d'affichage sur mobiles

Page 31: Introduction à la performance web

QUELQUESEXEMPLES

Page 32: Introduction à la performance web

QUELQUES SITES PASSÉS AU CRIBLE

7schargement

78requêtes

1095kopoids

7.1schargement

163requêtes

2203kopoids

7.2schargement

133requêtes

808kopoids

7.7schargement

57requêtes

1010kopoids

Page 33: Introduction à la performance web

QUELQUES SITES PASSÉS AU CRIBLE

2.3schargement

171requêtes

2058kopoids

Suite...

6.6schargement

66requêtes

671kopoids

Page 34: Introduction à la performance web

ACCÉLÉREZ VOSPAGES WEB

❻Photo : © Raphaël Goetter

Page 35: Introduction à la performance web

BONNES PRATIQUES GÉNÉRALES

Pas de redirections de pages

Scripts placés avant </body> et/ou attributs async / defer

Évitez @import pour les fichiers CSS

Hébergez les ressources sur plusieurs domaines (entre 2 et 4)

Déclarez les dimensions des images dans le HTML (width="", height="")

Évitez les mauvaises requêtes (404)

Page 36: Introduction à la performance web

EN DÉTAILHébergez les ressources sur plusieurs domaines«   »

Hébergez les ressources (images, médias) sur plusieurs domaines différents.Cette technique favorise leur téléchargement en parallèle.Un sous-domaine fonctionne aussi (ex. media.alsacreations.com), et un domaine sans cookies est encore plus performant.

Source : Yahoo!UI blog

Opera : 8 / IE10 : 8 / Chrome : 6 / Firefox : 6 / IE8/IE9 : 6 / Safari : 4 / IE6/IE7 : 2

Page 37: Introduction à la performance web

RÉDUIRE LE POIDS DES RESSOURCES

Minifiez les fichiers CSS

Minifiez les fichiers JS

Compressez les images

Choississez le bon format d'image (.png, .gif, .jpg)

Optez pour des fontes légères(.woff est généralement plus léger)

Page 38: Introduction à la performance web

EN DÉTAILCompressez les images«   » ❷

www.kraken.io

Page 39: Introduction à la performance web

RÉDUIRE LES REQUÊTES

Réunissez les feuilles de styles CSSen une seule si possible

Réduisez / réunifiez le nombre defichiers JavaScript externes si possible

N'utilisez pas (ou presque pas)d'images !

→ Sprites CSS,→ Data-URI, → Caractères unicodes,→ Font Icons, ...

Page 40: Introduction à la performance web

EN DÉTAILFont Icons«   » ❸

icomoon.io

.icon {font-family: "MyFontIcon", sans-serif;}

.icon-twitter:before {content: "t";}

Page 41: Introduction à la performance web

NE CHARGER QUE LE NÉCESSAIRE

Chargez les scripts externes en Asynchrone et/ou Différé

N'utilisez pas display : none pour masquer un élément

jQuery est parfois inutile et remplaçable par jQuip ou Zepto.js, plus légers

Triez les scripts nécessaires et les scripts de confort

JavaScript est parfois avantageusement remplaçable par CSS3 : bordures, arrondis, ombrages, animations, formes simples (triangles, ronds, carrés)

Pensez à faire du chargement conditionnel de ressources (selon taille d'écran, pixel-ratio, ...)

Page 42: Introduction à la performance web

EN DÉTAILCharger conditionnellement les éléments«   » ❹

@media (min-width : 768px) {.deco {background: url(concombre-big.jpg);}

}@media (max-width : 767px) {

.deco {background: url(concombre-small.jpg);}}

concombre-big.jpg

concombre-small.jpg

Page 43: Introduction à la performance web

CÔTÉ SERVEUR

Compressez les fichiers texte côté serveur (HTML, CSS, JS)

Générez certaines pages « à l'avance » (ex. flux RSS)

Gérez les durées de cache des éléments

Page 44: Introduction à la performance web

EN DÉTAILDurée d'expiration du cache«   » ❺

<IfModule mod_expires.c>ExpiresActive OnExpiresByType text/plain "access plus 1 day"ExpiresByType text/html "access plus 1 hour"ExpiresByType application/x-javascript "access plus 3 months"ExpiresByType application/javascript "access plus 3 months"ExpiresByType text/css "access plus 3 months"ExpiresByType image/gif "access plus 3 months"ExpiresByType image/x-icon "access plus 3 months"ExpiresByType image/png "access plus 3 months"ExpiresByType image/jpeg "access plus 3 months"ExpiresByType application/xml "access plus 1 hour"# ExpiresDefault "access plus 1 day"</IfModule>

Outil Google : Google ModPagespeed

Page 45: Introduction à la performance web

Polices : League Gothic + Segoe UI Light

Photos : Fotolia + mon super APN

Pictos : IconFinder (Visual Pharm, Designmodo)

MERCI, BISOUS

Raphaël Goetter www.alsacreations.fr @goetter

Crédits


Recommended