SlideShare une entreprise Scribd logo
1  sur  59
Come e perché ($)
migliorare le
prestazioni web
Consigli pratici per il 2023
5 aprile 2023 – Bologna JS + GDG Bologna
3
How do your website users feel?
1 secondo
di tempo di
caricamento
-14%
utenti che
lasciano il sito
all'atterraggio
(frequenza di rimbalzo)
+13%
utenti che raggiungono
gli obiettivi del sito
(tasso di conversione)
Source: How Renault improved its bounce and conversion rates by measuring and optimizing Largest Contentful Paint
● Cosa sono le prestazioni web
● Impatto sul business
● Suggerimenti per il miglioramento
delle prestazioni web
Andrea Verlicchi
● Tonnellate di siti
● Sviluppo front-end
● Consulente per le
prestazioni web
8 Google Hackathon, London
1. Prestazioni web, Search Engine
Optimization, impatto business
2. Misurazione web performance
Gioco a premi! 🎉
1. Suggerimenti per il 2023
Prestazioni web, SEO,
e impatto sul business
1
1
1
How do your website users feel?
Google Core Web Vitals
Good Ok Poor
2.5 s 4.0 s
Good Ok Poor
0.10 0.25
Stabilità Visiva
Ad
Buy now
Good Ok Poor
100 ms 300 ms
Interattività
Buy now
Caricamento
Buy now
Largest Contentful Paint (LCP) Cumulative Layout Shift (CLS) First Input Delay (FID)
👆
Come fa Google a saperlo?
Chrome User Experience
(CrUX)
Google Chrome CrUX Report
I Core Web Vitals impattano il posizionamento in Google Search
Source: https://developers.google.com/search/blog/2020/11/timing-for-page-experience
Core
Web
Vitals
Mobile friendly
HTTPS
No intrusive interstitials
Search signals for
page experience
Loading
Largest Contentful Paint (LCP)
Interactivity
First Input Delay (FCP)
Visual stability
Cumulative Layout Shift (CLS)
2022 © cognizant netcentric
Quanto impattano i Core Web Vitals nella classificazione
SISTRIX
Visibility
Index
90%
95%
100%
105%
Good domains
110%
Google Update Poor domains
4%
Increase in
ranking
Source: https://www.sistrix.com/blog/core-web-vitals-is-a-measurable-ranking-factor/
15
2022 © cognizant netcentric
Alte conversioni +
Basso costo del
traffico
Buone prestazioni
Basse conversioni +
Alto costo del traffico
Prestazioni scarse
16
Successo =
Traffico ×
Conversioni
Misurare le
prestazioni web
2
Sul sito - Real User Monitoring In laboratorio - Synthetic
Quadro generale,
scovare anomalie
Investigarne le cause,
testare le soluzioni
Sul sito - Real User Monitoring In laboratorio - Synthetic
Pagespeed
insights
Lighthouse
Chrome User
Experience Report
(CrUX)
Quadro generale,
scovare anomalie
Investigarne le cause,
testare le soluzioni
Sul sito - Real User Monitoring In laboratorio - Synthetic
● Su tutte le pagine, mentre
gli utenti navigano
● Utenti reali, dispositivi reali,
connessioni, posizioni reali
● Dati in una dashboard
● Un determinato URL
● Emulazione, singola località
● Risultati immediati
● Dettagli! Fotogrammi, video,
waterfall di rete, CPU, etc.
Quadro generale,
scovare anomalie
Investigarne le cause,
testare le soluzioni
Gioco a premi! 🎉
Suggerimenti per il
miglioramento nel 2023
3
● Maggiore impatto nel mondo reale
● Pertinenti e applicabili a tutti i siti
● Realistici da implementare
Google Core Web Vitals
Good Ok Poor
2.5 s 4.0 s
Good Ok Poor
100 ms 300 ms
Interactivity
Buy now
Loading
Buy now
Largest Contentful Paint (LCP) First Input Delay (FID)
👆
Good Ok Poor
0.10 0.25
Visual Stability
Ad
Buy now
Cumulative Layout Shift (CLS)
Assicurati che la risorsa
LCP sia rilevabile 🔍 dal
sorgente HTML
72% delle pagine, su smartphone,
elemento LCP = un’immagine
39% di queste immagini
non è rilevabile dalla sorgente HTML
Sources: Web Almanac
● Carica l'immagine usando un elemento
<img> con l'attributo src or srcset
● Preferisci il rendering lato server (SSR)
rispetto al rendering lato client (CSR)
● Se la tua immagine deve essere
referenziata da un file CSS o JS esterno,
includila nel sorgente HTML tramite tag
<link rel="preload"> tag.
Assicurati che la 🔺
chiamata alla risorsa LCP
abbia la massima priorità
● Aggiungi fetchpriority="high" al tag
<img> della tua immagine LCP
● Non impostare mai loading="lazy" sul
tag <img> della tua immagine LCP
● Rimandare le risorse non critiche, in ogni
caso in cui è possibile farlo
Utilizza una CDN 🌐
per ottimizzare il tempo di
risposta del server (TTFB)
di HTML e risorse
Servire i tuoi contenuti dal punto più
geograficamente vicino ai tuoi utenti.
Memorizzare nella cache i contenuti
in modo che, quando richiesti nuovamente,
possano essere serviti rapidamente.
Sources: Web Almanac
● Aumenta il tempo per cui i contenuti
vengono memorizzati nella cache.
● Memorizza nella cache il contenuto a
tempo indeterminato e svuota la cache
quando fai gli aggiornamenti.
● Sposta la logica dinamica, dal server di
origine (origin) all'edge server
Google Core Web Vitals
Good Ok Poor
2.5 s 4.0 s
Good Ok Poor
100 ms 300 ms
Interactivity
Buy now
Loading
Buy now
Largest Contentful Paint (LCP) First Input Delay (FID)
👆
Good Ok Poor
0.10 0.25
Visual Stability
Ad
Buy now
Cumulative Layout Shift (CLS)
Imposta dimensioni
esplicite 🖼️ su ogni
contenuto caricato dalla
pagina
Sources: Web Almanac,
0px altezza predefinita iniziale
delle immagini non dimensionate
72% delle pagine ha
almeno un'immagine senza dimensioni
● Setta in modo esplicito gli attributi width
e height (or proprietà CSS equivalenti)
nelle immagini
● Usa la proprietà CSS aspect-ratio per
riservare spazio per contenuti caricati
lazy (annunci, video incorporati, ecc.)
● Se aspetto sconosciuto, usa min-height
Assicurati che le pagine
siano idonee per la cache
back/forward 💭 (bfcache)
35% delle pagine
non sono idonee per bfcache
Sources: Web Almanac
● Verifica se le tue pagine sono idonee
utilizzando lo strumento bfcache tester
(in developer tools)
● Lavora sui motivi per cui non lo sono 😊
Sources: bfcache tester in DevTools
Evita animazioni/transizioni
🎞️ che utilizzano
proprietà CSS che
inducono il ricalcolo del
layout
15% in meno di probabilità di avere un
buon CLS se animi qualsiasi proprietà CSS
che possa influenzare il layout
Gli elementi posizionati con absolute, di
cui si animano le proprietà top o left,
causano layout shift ️
Sources: Web Almanac, Optimize LCP / Make it discoverable
● Mai animare o transizionare le proprietà
CSS che richiedono ai browser di
aggiornare il layout della pagina
● Invece di animare le proprietà top o left,
animare transform:translateX() o
transform:translateY()
Google Core Web Vitals
Good Ok Poor
2.5 s 4.0 s
Good Ok Poor
100 ms 300 ms
Interactivity
Buy now
Loading
Buy now
Largest Contentful Paint (LCP) First Input Delay (FID)
👆
Good Ok Poor
0.10 0.25
Visual Stability
Ad
Buy now
Cumulative Layout Shift (CLS)
Google Core Web Vitals
Good Ok Poor
2.5 s 4.0 s
Good Ok Poor
200 ms 500 ms
Interactivity
Buy now
Loading
Buy now
Largest Contentful Paint (LCP) Interaction to Next Paint (INP)
👆
Good Ok Poor
0.10 0.25
Visual Stability
Ad
Buy now
Cumulative Layout Shift (CLS)
Evita o spezzetta 🔪
i long task
Task = rendering e layouting, oltre ad
analisi, compilazione, esecuzione di script.
50 ms di blocco nel thread principale
soglia per cui un task è considerato “lungo”.
19 è il numero mediano
di long task su mobile
Sources: Web Almanac
● Suddividi le attività lunghe (long task)
in attività più piccole, trasferendo spesso
l’esecuzione al thread principale
● Prendi in considerazione l'utilizzo di API
come isInputPending e Scheduler
Sources: Optimize long tasks
Evita codice JavaScript ️
non necessario
460 kb/pagina
mediana del peso del codice JS servito
Questo Javascript crea
un ambiente in cui le le attività competono
per l’attenzione del thread principale
Sources: Web Almanac, Optimize LCP / Make it discoverable
● Utilizza lo strumento Coverage in
DevTools per trovare il codice inutilizzato
● Se c’e codice inutilizzato perché verrà
utilizzato in seguito, spostalo in un un
pacchetto separato (code splitting)
● Utilizzi un gestore di tag?
Controlla periodicamente i tuoi tag.
Sources: Coverage, Code splitting, Tag best practices
Evita i grandi 🐙
aggiornamenti di
rendering
Javascript non è l'unica cosa che può
influenzare la reattività del tuo sito web.
Rendering può essere costoso e può
interferire con la capacità del tuo sito web di
rispondere agli input dell'utente.
● Evita di usare requestAnimationFrame()
per eseguire lavoro non visivo.
● Mantieni piccole le dimensioni del tuo DOM.
● Usa il contenimento CSS
(proprietà contain)
Sources: Avoid an excessive DOM size, CSS Containment property
Per concludere
2022 © cognizant netcentric
56
2022 © cognizant netcentric
57
2022 © cognizant netcentric
Feedback,
please? 👉🏼
Google form

Contenu connexe

Similaire à Come e perché ($) migliorare le prestazioni web - Aprile 2023.pptx

Come strutturare un design semplice ed efficace per WordPress
Come strutturare un design semplice ed efficace per WordPressCome strutturare un design semplice ed efficace per WordPress
Come strutturare un design semplice ed efficace per WordPressSiteGround.com
 
Analizzare un link con gli occhi di Google
Analizzare un link con gli occhi di GoogleAnalizzare un link con gli occhi di Google
Analizzare un link con gli occhi di GoogleBizup
 
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!Stefano Marchisio
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
Siamo tutti bravi con il browser degli altri!
Siamo tutti bravi con il browser degli altri!Siamo tutti bravi con il browser degli altri!
Siamo tutti bravi con il browser degli altri!Francesco Sciuti
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
 
Eseguire test sintetici delle Web Performance con webpagetest.org
Eseguire test sintetici delle Web Performance con webpagetest.orgEseguire test sintetici delle Web Performance con webpagetest.org
Eseguire test sintetici delle Web Performance con webpagetest.orgOlegs Belousovs
 
[IT] Comprendere la Crawl Budget Optimization
[IT] Comprendere la Crawl Budget Optimization[IT] Comprendere la Crawl Budget Optimization
[IT] Comprendere la Crawl Budget OptimizationFederico Sasso
 
Restyling e Web Analytics: quali KPI monitorare quando cambi design sito
Restyling e Web Analytics: quali KPI monitorare quando cambi design sitoRestyling e Web Analytics: quali KPI monitorare quando cambi design sito
Restyling e Web Analytics: quali KPI monitorare quando cambi design sitosemrush_webinars
 
Restyling Sito: Cosa Monitorare su Google Analytics
Restyling Sito: Cosa Monitorare su Google AnalyticsRestyling Sito: Cosa Monitorare su Google Analytics
Restyling Sito: Cosa Monitorare su Google AnalyticsALE AGOSTINI
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
#SEOUX Revolution: Cosa Cambia in Google
#SEOUX Revolution: Cosa Cambia in Google#SEOUX Revolution: Cosa Cambia in Google
#SEOUX Revolution: Cosa Cambia in GoogleALE AGOSTINI
 
Come fare SEO con AngularJS
Come fare SEO con AngularJSCome fare SEO con AngularJS
Come fare SEO con AngularJSGiovanni Sacheli
 
21 SEO actions per il lancio di un nuovo sito
21 SEO actions per il lancio di un nuovo sito21 SEO actions per il lancio di un nuovo sito
21 SEO actions per il lancio di un nuovo sitoMarketing Freaks
 
Il Link Building Oggi: Valore dei Link, Strumenti e Strategie
Il Link Building Oggi: Valore dei Link, Strumenti e Strategie Il Link Building Oggi: Valore dei Link, Strumenti e Strategie
Il Link Building Oggi: Valore dei Link, Strumenti e Strategie Semrush
 
Tre modi per aumentare la velocità del tuo Business Website e guadagnare on...
Tre modi per aumentare la velocità del tuo Business Website e guadagnare on...Tre modi per aumentare la velocità del tuo Business Website e guadagnare on...
Tre modi per aumentare la velocità del tuo Business Website e guadagnare on...Matteo Stefan
 
Come creare un progetto web
Come creare un progetto webCome creare un progetto web
Come creare un progetto webRiccardo Mares
 

Similaire à Come e perché ($) migliorare le prestazioni web - Aprile 2023.pptx (20)

Come strutturare un design semplice ed efficace per WordPress
Come strutturare un design semplice ed efficace per WordPressCome strutturare un design semplice ed efficace per WordPress
Come strutturare un design semplice ed efficace per WordPress
 
Analizzare un link con gli occhi di Google
Analizzare un link con gli occhi di GoogleAnalizzare un link con gli occhi di Google
Analizzare un link con gli occhi di Google
 
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
Siamo tutti bravi con il browser degli altri!
Siamo tutti bravi con il browser degli altri!Siamo tutti bravi con il browser degli altri!
Siamo tutti bravi con il browser degli altri!
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
 
Eseguire test sintetici delle Web Performance con webpagetest.org
Eseguire test sintetici delle Web Performance con webpagetest.orgEseguire test sintetici delle Web Performance con webpagetest.org
Eseguire test sintetici delle Web Performance con webpagetest.org
 
[IT] Comprendere la Crawl Budget Optimization
[IT] Comprendere la Crawl Budget Optimization[IT] Comprendere la Crawl Budget Optimization
[IT] Comprendere la Crawl Budget Optimization
 
Errori Comuni nella SEO - Intervento Smau 2020
Errori Comuni nella SEO - Intervento Smau 2020Errori Comuni nella SEO - Intervento Smau 2020
Errori Comuni nella SEO - Intervento Smau 2020
 
Seonoantri
SeonoantriSeonoantri
Seonoantri
 
Restyling e Web Analytics: quali KPI monitorare quando cambi design sito
Restyling e Web Analytics: quali KPI monitorare quando cambi design sitoRestyling e Web Analytics: quali KPI monitorare quando cambi design sito
Restyling e Web Analytics: quali KPI monitorare quando cambi design sito
 
Restyling Sito: Cosa Monitorare su Google Analytics
Restyling Sito: Cosa Monitorare su Google AnalyticsRestyling Sito: Cosa Monitorare su Google Analytics
Restyling Sito: Cosa Monitorare su Google Analytics
 
Salvo
SalvoSalvo
Salvo
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
#SEOUX Revolution: Cosa Cambia in Google
#SEOUX Revolution: Cosa Cambia in Google#SEOUX Revolution: Cosa Cambia in Google
#SEOUX Revolution: Cosa Cambia in Google
 
Come fare SEO con AngularJS
Come fare SEO con AngularJSCome fare SEO con AngularJS
Come fare SEO con AngularJS
 
21 SEO actions per il lancio di un nuovo sito
21 SEO actions per il lancio di un nuovo sito21 SEO actions per il lancio di un nuovo sito
21 SEO actions per il lancio di un nuovo sito
 
Il Link Building Oggi: Valore dei Link, Strumenti e Strategie
Il Link Building Oggi: Valore dei Link, Strumenti e Strategie Il Link Building Oggi: Valore dei Link, Strumenti e Strategie
Il Link Building Oggi: Valore dei Link, Strumenti e Strategie
 
Tre modi per aumentare la velocità del tuo Business Website e guadagnare on...
Tre modi per aumentare la velocità del tuo Business Website e guadagnare on...Tre modi per aumentare la velocità del tuo Business Website e guadagnare on...
Tre modi per aumentare la velocità del tuo Business Website e guadagnare on...
 
Come creare un progetto web
Come creare un progetto webCome creare un progetto web
Come creare un progetto web
 

Plus de Andrea Verlicchi

How and Why ($) to improve web performance.pdf
How and Why ($) to improve web performance.pdfHow and Why ($) to improve web performance.pdf
How and Why ($) to improve web performance.pdfAndrea Verlicchi
 
2022.04 - CSS Day IT - Images Optimisation 4.0
2022.04 - CSS Day IT - Images Optimisation 4.02022.04 - CSS Day IT - Images Optimisation 4.0
2022.04 - CSS Day IT - Images Optimisation 4.0Andrea Verlicchi
 
Responsive images, an html 5.1 standard
Responsive images, an html 5.1 standardResponsive images, an html 5.1 standard
Responsive images, an html 5.1 standardAndrea Verlicchi
 
Agile CSS development with Compass and Sass
Agile CSS development with Compass and SassAgile CSS development with Compass and Sass
Agile CSS development with Compass and SassAndrea Verlicchi
 
Sviluppo CSS agile con SASS e Compass - CSS Day 2015 Faenza
Sviluppo CSS agile con SASS e Compass - CSS Day 2015 FaenzaSviluppo CSS agile con SASS e Compass - CSS Day 2015 Faenza
Sviluppo CSS agile con SASS e Compass - CSS Day 2015 FaenzaAndrea Verlicchi
 
Css3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQueryCss3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQueryAndrea Verlicchi
 

Plus de Andrea Verlicchi (6)

How and Why ($) to improve web performance.pdf
How and Why ($) to improve web performance.pdfHow and Why ($) to improve web performance.pdf
How and Why ($) to improve web performance.pdf
 
2022.04 - CSS Day IT - Images Optimisation 4.0
2022.04 - CSS Day IT - Images Optimisation 4.02022.04 - CSS Day IT - Images Optimisation 4.0
2022.04 - CSS Day IT - Images Optimisation 4.0
 
Responsive images, an html 5.1 standard
Responsive images, an html 5.1 standardResponsive images, an html 5.1 standard
Responsive images, an html 5.1 standard
 
Agile CSS development with Compass and Sass
Agile CSS development with Compass and SassAgile CSS development with Compass and Sass
Agile CSS development with Compass and Sass
 
Sviluppo CSS agile con SASS e Compass - CSS Day 2015 Faenza
Sviluppo CSS agile con SASS e Compass - CSS Day 2015 FaenzaSviluppo CSS agile con SASS e Compass - CSS Day 2015 Faenza
Sviluppo CSS agile con SASS e Compass - CSS Day 2015 Faenza
 
Css3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQueryCss3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQuery
 

Come e perché ($) migliorare le prestazioni web - Aprile 2023.pptx

  • 1. Come e perché ($) migliorare le prestazioni web Consigli pratici per il 2023 5 aprile 2023 – Bologna JS + GDG Bologna
  • 2.
  • 3. 3 How do your website users feel?
  • 4. 1 secondo di tempo di caricamento -14% utenti che lasciano il sito all'atterraggio (frequenza di rimbalzo) +13% utenti che raggiungono gli obiettivi del sito (tasso di conversione) Source: How Renault improved its bounce and conversion rates by measuring and optimizing Largest Contentful Paint
  • 5.
  • 6. ● Cosa sono le prestazioni web ● Impatto sul business ● Suggerimenti per il miglioramento delle prestazioni web
  • 7. Andrea Verlicchi ● Tonnellate di siti ● Sviluppo front-end ● Consulente per le prestazioni web
  • 9. 1. Prestazioni web, Search Engine Optimization, impatto business 2. Misurazione web performance Gioco a premi! 🎉 1. Suggerimenti per il 2023
  • 10. Prestazioni web, SEO, e impatto sul business 1
  • 11. 1 1 How do your website users feel?
  • 12. Google Core Web Vitals Good Ok Poor 2.5 s 4.0 s Good Ok Poor 0.10 0.25 Stabilità Visiva Ad Buy now Good Ok Poor 100 ms 300 ms Interattività Buy now Caricamento Buy now Largest Contentful Paint (LCP) Cumulative Layout Shift (CLS) First Input Delay (FID) 👆
  • 13. Come fa Google a saperlo? Chrome User Experience (CrUX) Google Chrome CrUX Report
  • 14. I Core Web Vitals impattano il posizionamento in Google Search Source: https://developers.google.com/search/blog/2020/11/timing-for-page-experience Core Web Vitals Mobile friendly HTTPS No intrusive interstitials Search signals for page experience Loading Largest Contentful Paint (LCP) Interactivity First Input Delay (FCP) Visual stability Cumulative Layout Shift (CLS)
  • 15. 2022 © cognizant netcentric Quanto impattano i Core Web Vitals nella classificazione SISTRIX Visibility Index 90% 95% 100% 105% Good domains 110% Google Update Poor domains 4% Increase in ranking Source: https://www.sistrix.com/blog/core-web-vitals-is-a-measurable-ranking-factor/ 15
  • 16. 2022 © cognizant netcentric Alte conversioni + Basso costo del traffico Buone prestazioni Basse conversioni + Alto costo del traffico Prestazioni scarse 16 Successo = Traffico × Conversioni
  • 18. Sul sito - Real User Monitoring In laboratorio - Synthetic Quadro generale, scovare anomalie Investigarne le cause, testare le soluzioni
  • 19. Sul sito - Real User Monitoring In laboratorio - Synthetic Pagespeed insights Lighthouse Chrome User Experience Report (CrUX) Quadro generale, scovare anomalie Investigarne le cause, testare le soluzioni
  • 20. Sul sito - Real User Monitoring In laboratorio - Synthetic ● Su tutte le pagine, mentre gli utenti navigano ● Utenti reali, dispositivi reali, connessioni, posizioni reali ● Dati in una dashboard ● Un determinato URL ● Emulazione, singola località ● Risultati immediati ● Dettagli! Fotogrammi, video, waterfall di rete, CPU, etc. Quadro generale, scovare anomalie Investigarne le cause, testare le soluzioni
  • 23. ● Maggiore impatto nel mondo reale ● Pertinenti e applicabili a tutti i siti ● Realistici da implementare
  • 24. Google Core Web Vitals Good Ok Poor 2.5 s 4.0 s Good Ok Poor 100 ms 300 ms Interactivity Buy now Loading Buy now Largest Contentful Paint (LCP) First Input Delay (FID) 👆 Good Ok Poor 0.10 0.25 Visual Stability Ad Buy now Cumulative Layout Shift (CLS)
  • 25. Assicurati che la risorsa LCP sia rilevabile 🔍 dal sorgente HTML
  • 26. 72% delle pagine, su smartphone, elemento LCP = un’immagine 39% di queste immagini non è rilevabile dalla sorgente HTML Sources: Web Almanac
  • 27. ● Carica l'immagine usando un elemento <img> con l'attributo src or srcset ● Preferisci il rendering lato server (SSR) rispetto al rendering lato client (CSR) ● Se la tua immagine deve essere referenziata da un file CSS o JS esterno, includila nel sorgente HTML tramite tag <link rel="preload"> tag.
  • 28. Assicurati che la 🔺 chiamata alla risorsa LCP abbia la massima priorità
  • 29. ● Aggiungi fetchpriority="high" al tag <img> della tua immagine LCP ● Non impostare mai loading="lazy" sul tag <img> della tua immagine LCP ● Rimandare le risorse non critiche, in ogni caso in cui è possibile farlo
  • 30. Utilizza una CDN 🌐 per ottimizzare il tempo di risposta del server (TTFB) di HTML e risorse
  • 31. Servire i tuoi contenuti dal punto più geograficamente vicino ai tuoi utenti. Memorizzare nella cache i contenuti in modo che, quando richiesti nuovamente, possano essere serviti rapidamente. Sources: Web Almanac
  • 32. ● Aumenta il tempo per cui i contenuti vengono memorizzati nella cache. ● Memorizza nella cache il contenuto a tempo indeterminato e svuota la cache quando fai gli aggiornamenti. ● Sposta la logica dinamica, dal server di origine (origin) all'edge server
  • 33. Google Core Web Vitals Good Ok Poor 2.5 s 4.0 s Good Ok Poor 100 ms 300 ms Interactivity Buy now Loading Buy now Largest Contentful Paint (LCP) First Input Delay (FID) 👆 Good Ok Poor 0.10 0.25 Visual Stability Ad Buy now Cumulative Layout Shift (CLS)
  • 34. Imposta dimensioni esplicite 🖼️ su ogni contenuto caricato dalla pagina
  • 35. Sources: Web Almanac, 0px altezza predefinita iniziale delle immagini non dimensionate 72% delle pagine ha almeno un'immagine senza dimensioni
  • 36. ● Setta in modo esplicito gli attributi width e height (or proprietà CSS equivalenti) nelle immagini ● Usa la proprietà CSS aspect-ratio per riservare spazio per contenuti caricati lazy (annunci, video incorporati, ecc.) ● Se aspetto sconosciuto, usa min-height
  • 37. Assicurati che le pagine siano idonee per la cache back/forward 💭 (bfcache)
  • 38. 35% delle pagine non sono idonee per bfcache Sources: Web Almanac
  • 39. ● Verifica se le tue pagine sono idonee utilizzando lo strumento bfcache tester (in developer tools) ● Lavora sui motivi per cui non lo sono 😊 Sources: bfcache tester in DevTools
  • 40. Evita animazioni/transizioni 🎞️ che utilizzano proprietà CSS che inducono il ricalcolo del layout
  • 41. 15% in meno di probabilità di avere un buon CLS se animi qualsiasi proprietà CSS che possa influenzare il layout Gli elementi posizionati con absolute, di cui si animano le proprietà top o left, causano layout shift ️ Sources: Web Almanac, Optimize LCP / Make it discoverable
  • 42. ● Mai animare o transizionare le proprietà CSS che richiedono ai browser di aggiornare il layout della pagina ● Invece di animare le proprietà top o left, animare transform:translateX() o transform:translateY()
  • 43. Google Core Web Vitals Good Ok Poor 2.5 s 4.0 s Good Ok Poor 100 ms 300 ms Interactivity Buy now Loading Buy now Largest Contentful Paint (LCP) First Input Delay (FID) 👆 Good Ok Poor 0.10 0.25 Visual Stability Ad Buy now Cumulative Layout Shift (CLS)
  • 44. Google Core Web Vitals Good Ok Poor 2.5 s 4.0 s Good Ok Poor 200 ms 500 ms Interactivity Buy now Loading Buy now Largest Contentful Paint (LCP) Interaction to Next Paint (INP) 👆 Good Ok Poor 0.10 0.25 Visual Stability Ad Buy now Cumulative Layout Shift (CLS)
  • 45. Evita o spezzetta 🔪 i long task
  • 46. Task = rendering e layouting, oltre ad analisi, compilazione, esecuzione di script. 50 ms di blocco nel thread principale soglia per cui un task è considerato “lungo”. 19 è il numero mediano di long task su mobile Sources: Web Almanac
  • 47. ● Suddividi le attività lunghe (long task) in attività più piccole, trasferendo spesso l’esecuzione al thread principale ● Prendi in considerazione l'utilizzo di API come isInputPending e Scheduler Sources: Optimize long tasks
  • 48. Evita codice JavaScript ️ non necessario
  • 49. 460 kb/pagina mediana del peso del codice JS servito Questo Javascript crea un ambiente in cui le le attività competono per l’attenzione del thread principale Sources: Web Almanac, Optimize LCP / Make it discoverable
  • 50. ● Utilizza lo strumento Coverage in DevTools per trovare il codice inutilizzato ● Se c’e codice inutilizzato perché verrà utilizzato in seguito, spostalo in un un pacchetto separato (code splitting) ● Utilizzi un gestore di tag? Controlla periodicamente i tuoi tag. Sources: Coverage, Code splitting, Tag best practices
  • 51. Evita i grandi 🐙 aggiornamenti di rendering
  • 52. Javascript non è l'unica cosa che può influenzare la reattività del tuo sito web. Rendering può essere costoso e può interferire con la capacità del tuo sito web di rispondere agli input dell'utente.
  • 53. ● Evita di usare requestAnimationFrame() per eseguire lavoro non visivo. ● Mantieni piccole le dimensioni del tuo DOM. ● Usa il contenimento CSS (proprietà contain) Sources: Avoid an excessive DOM size, CSS Containment property
  • 55. 2022 © cognizant netcentric 56
  • 56. 2022 © cognizant netcentric 57
  • 57.
  • 58. 2022 © cognizant netcentric