Una semplice regola: "Progetta e sviluppa con le performance in mente"
ย
ย ย ย
ย
ย
ย ย ย
ย
ย ย
ย ย ย
ย
ย Come usarla โข Contribuisci โข Product Hunt
๐จ๐ณ ๐ซ๐ท ๐ฐ๐ท ๐ต๐น ๐ท๐บ ๐ฏ๐ต ๐ฎ๐ท ๐ฎ๐น
Altre Checklists:
๐ Front-End Checklist โข ๐ Front-End Design Checklist
Il tematica delle performance รจ molto ampia, ma non รจ sempre un aspetto da considerare a livello "back-end" oppure "admin": infatti รจ anche una responsabilitร a livello Front-end. La Checklist delle Performance Front-end rappresenta una lista esaustiva di elementi che dovresti seguire o per lo meno esserne consapevole, come sviluppatore Front-End e applicare ai tuoi progetti (personali e lavorativi).
Per ogni regola, troverai un paragrafo che spiega perchรจ questa regola รจ importante e come puoi sistemarla. Per informazioni piรน approfondite, dovresti trovare link che puntano a ๐ strumenti, ๐ articoli o ๐น contenuti multimediali che possono completare la checklist.
Tutti gli elementi contenuti nella Checklist delle Performance Front-End sono essenziali per raggiungere livelli di performance piรน alti, ma troverai anche un indicatore che ti aiuterร a dare prioritร ad alcune regole rispetto ad altre. Ci sono 3 livelli di prioritร :
livello di prioritร basso.
livello di prioritร medio. Non dovresti evitare di affronare quell'elemento.
livello di prioritร alto. Non puoi evitare di seguire quella regola e dovresti implementare le correzioni segnalate.
Lista degli strumenti che puoi utilizzare per testare o monitorare il tuo sito web o la tua applicazione:
- ๐ WebPagetest - Website Performance and Optimization Test
- ๐ โ Dareboost: Website Speed Test and Website Analysis (utilizza il coupon WPCDD20 per avere uno sconto del 20%)
- ๐ Treo: Page Speed Monitoring
- ๐ GTmetrix | Website Speed and Performance Optimization
- ๐ PageSpeed Insights
- ๐ Web.dev
- ๐ Pingdom Website Speed Test
- ๐ Make the Web Fasterย | Google Developers
- ๐ Sitespeed.io - Welcome to the wonderful world of Web Performance
- ๐ Calibre
- ๐ Website Speed Test | Check Web Performance ยป Dotcom-Tools
- ๐ Website and Server Uptime Monitoring - Pingdom (Free Signup Link)
- ๐ Uptime Robot
- ๐ SpeedCurve: Monitor front-end performance
- ๐ PWMetrics - CLI tool and lib to gather performance metrics
- ๐ Varvy - Page speed optimization
- ๐ Lighthouse - Google
- ๐ Checkbot browser extension - Checks for web performance best practices
- ๐ Yellow Lab Tools | Online test to help speeding up heavy web pages
- ๐ Speedrank - Web Performance Monitoring
- ๐ DebugBear - Monitor website performance and Lighthouse scores
- ๐ packtracker.io - Check your webpack bundle size on every pull request.
- ๐ Exthouse - Analyze the impact of a browser extension on web performance
- ๐ LogRocket - Measure front-end performance in production apps
- ๐น The Cost Of JavaScript - YouTube (text version)
- ๐ AddyOsmani.com - Start Performance Budgeting
- ๐ Get Started With Analyzing Runtime Performance ย |ย Google Developers
- ๐ State of the Web | 2018_01_01
- ๐ Page Weight Doesn't Matter
- ๐ Front-End Performance Checklist 2021 [PDF, Apple Pages, MS Word]
- ๐ Designing for Performance Weighing Aesthetics and Speed - By Lara Callender Hogan [eBook, Print]
- ๐ Varvy - Web performance glossary
- ๐ fabkrum/web-performance-resources: Up to date collection of valuable web performance resources
- ๐ Checkbot - Web Speed Best Practices
- ๐ Progressive Tooling - A list of community-built, third-party tools that can be used to improve page performance
-
HTML Minificato:
Il codice HTML viene minimizzato, i commenti, gli spazi bianchi e le nuove righe vengono eliminati dai file di produzione.
Perchรจ:
La rimozione di tutti gli spazi, i commenti e gli attributi non necessari ridurra le dimensioni del tuo documento HTML e velocizzerร il tempo di caricamento del tuo sito web ed ovviamente ciรฒ allegerirร il download per gli utenti finali.
Come:
La maggior parte dei framework dispone di plugin per facilitare la minificazione delle pagine web. Puoi utilizzare diversi moduli NPM che faranno automaticamente il lavoro al tuo posto.
-
Posiziona i tag CSS sempre prima di quelli Javascript:
Assicurati che il tuo CSS venga sempre caricato prima del codice Javascript.
<!-- Non raccomandato --> <script src="jquery.js"></script> <script src="foo.js"></script> <link rel="stylesheet" href="foo.css"/> <!-- Raccomandato --> <link rel="stylesheet" href="foo.css"/> <script src="jquery.js"></script> <script src="foo.js"></script>
Perchรจ?:
Avere i tag CSS prima di qualsiasi tag Javascript consente un download parallelo migliore e questo accellera i tempi di rendering del browser.
Come?:
โ Assicurati che
<link>
e<style>
nell'<head>
vengono sempre prima di<script>
. -
Minimizza il numero degli iframe:
Usa gli iframe solo se non hai altre possibilitร tecniche. Use iframes only if you don't have any other technical possibility. Cerca di evitarli il piรน possibile.
-
Ottimizzazione del pre-load con prefetch, dns-prefetch e prerender:
I browser piรน popolari possono utilizzare direttive sui tag
<link>
e attributi "rel" con alcune keyword particolari per pre-caricare URL specifici.Perchรจ?:
Il prefetching permette ai browser di prendere in maniera silenziosa le risorse necessarie per mostrare i contenuti che un utente potrebbe accedere nel futuro prossimo. I browser sono capaci di conservare queste risorse in cache e quindi velocizzare il caricamento delle pagine web quando utilizzano domini differenti per le risorse delle pagine. Quando una pagina web รจ stata caricata e il tempo di inattivitร รจ trascorso, il browser inizia a scaricare altre risorse. Quando un utente entra in un particolare link (giร precaricato), il contenuto verrร servito istantaneamente.
Come?:
โ Assicurati che tutti i
<link>
siano nella sezione<head>
.
-
Minificazione:
Tutti i file CSS vengono minificati, i commenti, gli spazi bianchie le nuove linee vengono rimosse dai file di produzione.
Perchรจ?:
Quando i file CSS vengono minificati, il contenuto viene caricato piรน velocemente e vengono inviati meno dati al client. Minificare i file CSS in ambiente di produzione รจ molto importante. ร vantaggioso sia per l'utente ma anche per ridurre i costi dovuti alla larghezza della banda e all'utilizzo delle risorse.
Come:
โ Utilizzare strumenti che permettono di minificare automaticamente i file CSS in fase di build oppure in fase di deploy.
-
Concatenazione:
questa pratica consiste nell'unire diversi file CSS in un singolo file (Non sempre valido se si utilizza il protocollo HTTP/2).
<!-- Non raccomandato --> <link rel="stylesheet" href="foo.css"/> <link rel="stylesheet" href="bar.css"/> <!-- Raccomandato --> <link rel="stylesheet" href="foobar.css"/>
Perchรจ?:
Se stai ancora utilizzando la versione HTTP/1, dovresti ancora continuare a concatenare i file CSS, mentre se usi HTTP/2 non dovresti aver piรน bisogno di unirli (per sicurezza conviene fare dei test).
Come:
โ Utilizza strumenti online o qualsiasi plugin prima o durante la build o il deploy dei tuoi file per effettuare la concatenzaione.
โ Assicurati, ovviamente, che la concatenazione non spacchi il front-end del tuo progetto. -
Non bloccante:
I file CSS devono essere non bloccanti per evitare che il caricamento del DOM di pagina richieda piรน tempo.
<link rel="preload" href="global.min.css" as="style" onload="this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="global.min.css"></noscript>
Perchรจ?:
I file CSS possono bloccare il caricamento di pagina e ritardare il rendering. Utilizzando
preload
si puรฒ caricare un file css prima che il browser inizi a mostrare il contenuto di una pagina.Come?:
โ Bisogna aggiungere l'attributo
rel
attribute con il valorepreload
e aggiungereas="style"
sull'elemento<link>
. -
CSS inutilizzato:
Rimozione dei selettori css non utilizzati.
Perchรจ?:
La rimozione dei selettori CSS non utilizzati puรฒ ridurre la dimensione dei file e quindi velocizzare il caricamento delle risorse.
Come:
โ
โ ๏ธ Controlla sempre se il framework CSS che vuoi utilizzare non abbia giร incluso codice per fare il reset o la normalizzazione CSS. Alcune volte puรฒ capiare che non ti serva tutto che รจ contenuto all'interno dei file di reset o normalizzazione.- ๐ UnCSS Online
- ๐ PurifyCSS
- ๐ PurgeCSS
- ๐ Chrome DevTools Coverage
-
CSS critico:
Il CSS critico (o "above the fold") raggruppa tutto il CSS utilizzato per rendereizzare la porzione di pagina visibile. Questo viene incorporato prima di chiamare il CSS principale e all'interno dei tag
<style></style>
in una singola linea (possibilmente minificato).Perchรจ?:
Mettere in linea il CSS critico aiuta a velocizzare la renderizzazione delle pagine web riducendo il numero delle richieste al server.
Come:
Generare il CSS critico con strumenti online oppure utilizzando un plugin come quello sviluppato da Addy Osmani.
-
CSS incorporato o in linea:
Evita di utilizzare CSS incorporati o in linea all'interno del tag
<body>
(Non valido se si utilizza HTTP/2)Perchรจ?:
Una delle prime ragioni รจ perchรจ รจ buona pratica separare il contenuto dal design. Questo aiuta anche ad avere una codebase piรน mantenibile e rende il tuo sito web accessibile. Ma per quanto riguarda le performance dipende semplicemente dal fatto che riduce la dimensione delle pagine HTML e riduce i tempi di caricamento.
Come:
Utilizza sempre fogli di stile esterni oppure incorpora il CSS all'interno del tag
<head>
(e segui le altre regole di performance lato CSS). -
Analizza la complessitร dei file CSS:
Analizzare i tuoi fogli di stile puรฒ aiutarti ad identificare problematiche, ridondanze e selettori CSS duplicati.
Perchรจ?:
Qualche volta potresti avere ridondanze o errori di validazione nei tuoi file CSS, analizzandoli e riducendo queste complessitร puรฒ aiutarti a velocizzarli (perchรจ il tuo browser riuscirร a caricarli piรน velocemente).
Come:
Il tuo CSS dovrebbe essere organizzato, magari utilizzando un preprocessore CSS. Alcuni degli strumenti online riportati sotto possono anche aiutarti ad analizzare e correggere il tuo codice.
- ๐ TestMyCSS | Optimize and Check CSS Performance
- ๐ CSS Stats
- ๐ macbre/analyze-css: CSS selectors complexity and performance analyzer
- ๐ Project Wallace is like CSS Stats but stores stats over time so you can track your changes
-
Formati Webfont:
Utilizza il formato WOFF2 nel tuo progetto o applicazione web.
Perchรจ?:
Secondo Google, il formato di compresisone Web Font WOFF2 offre un guadagno medio del 30% rispetto a WOFF 1.0. ร quindi utile utilizzare WOFF 2.0, WOFF 1.0 come fallback e TTF.
Come?:
Prima di acquistare un font controlla che il venditore fornisca il formato WOFF2. Se stai utilizzando un font gratuito, puoi sempre utilizzare Font Squirrel per generare tutti i formati che ti servono.
-
Usa
preconnect
per caricare i tuoi web fonts piรน velocemente:<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
Perchรจ?:
Quando atterri su un sito web, il tuo dispositivo ha bisogno di sapere dove risiede il tuo applicativo e verso quale server deve connettersi. Il tuo browser deve contattare un server DNS ed aspettare il completamento del lookup prima di iniziare a recuperare le risorse (fonts, file css, ecc.). Prefetch e Preconnect permettono al browser di cercare le informazioni DNS ed iniziare da subito una connessione TCP verso il server che ospita il file dei font. Questo permette di avere un incremento delle performance perchรฉ quando il browser riesce ad analizzare il file css con le informazioni sul font e scopre che deve richiedere un file di font dal server, avrร giร pre-risolto le informazioni DNS e avrร una connessione aperta al server pronta in il suo pool di connessioni.
Come?:
โ Prima di precaricare i tuoi caratteri web, usa webpagetest per valutare il tuo sito web
โ Cerca le i lookup DNS andati a buon fine e prendi nota degli host che vengono richiesti
โ Fai il prefetch dei webfont nell'<head>
e aggiungi alla fine questi nomi host che dovresti anche precaricare- ๐ Google Fonts piรน veloci con Preconnect - CDN Planet
- ๐ Rendi il tuop sito piรน veloce con i suggerimenti Preconnect | Viget
- ๐ Guida definitiva ai suggerimenti del browser: Preload, Prefetch, and Preconnect - MachMetrics Speed Blog
- ๐ Una guida completa alle strategie di caricamento dei fontsโzachleat.com
- ๐ typekit/webfontloader: Web Font Loader ti offre un controllo aggiuntivo quando utilizzi i font collegati tramite @font-face.
-
Dimensione dei Webfont:
La dimensione dei Webfont non deve superare i 300kb (con tutte le varianti incluse)
- Prevenire il flash o il testo invisibile:
Evita il testo trasparente finchรฉ il Webfont non viene caricato
-
๐ Image Bytes in 2018
-
Ottimizzazione immagini:
Le tue immagini devono essere ottimizzate, compresse senza nessun impatto verso l'utente finale.
Perchรจ?:
Le immagini ottimizzate si caricano piรน velocemente nel browser e consumano meno dati.
Come?:
โ Prova ad utilizzare qualche effetto CSS2 quando รจ possibile (invece di utilizzare piccole immagini)
โ Quando รจ possibile, usa i font invece di testo codificato nelle tue immagini
โ Usa gli SVG
โ Usa uno strumento e specifica un livello di compressione inferiore all'85%.- ๐ Ottimizzazione immagini | Web Fundamentals | Google Developers
- ๐ Essential Image Optimization - An eBook by Addy Osmani
- ๐ TinyJPG โ Comprimi le immagini JGP in maniera intelligente
- ๐ Kraken.io - Ottimizzatore online di immagini
- ๐ Compressor.io - ottimizza e comprimi immagini png ed foto
- ๐ Cloudinary - Strumento di analisi di immagini
- ๐ ImageEngine - Test di caricamento delle immagini di una pagina web
- ๐ SVGOMG - Ottimizza i file SVG
-
Formati immagine:
Scegli il tuo formato immagine in maniera appropriata.
Perchรจ?:
Per garantire che le tue immagini non rallentino il tuo sito web, scegli il formato che corrisponderร alla tua immagine. Se si tratta di una foto, JPEG รจ il formato piรน appropriato rispetto a PNG o GIF. Ma non dimenticarti di guardare ai nuovi formati immagine che possono ridurre la dimensione dei tuo file. Ogni formato immagine ha dei pro e dei contro, รจ importante conoscerli e fare la miglior scelta possibile.
Come?:
โ Utlizza Lighthouse per identificare quale immagine eventualmente puรฒ utilizzare un formato di nuova generazione (come JPEG 2000m, JPEG XR o WebP)
โ Compara diversi formati, spesso utilizzare PNG8 รจ meglio rispetto ad usare PNG16, altre volte invece รจ vero il contrario.
-
Utilizza immagini vettoriali rispetto a quelle rasterizzate o bitmap:
Preferisci l'utilizzo di immagini vettoriali rispetto alle immagini bitmap (quando possibile).
Perchรจ:
Le immagini vettoriali (SVG) tendono ad essere piรน piccole rispetto alle immagini e gli SVG inoltre sono responsive e scalano perfettamente. Queste immagini possono essere animato e modificate via CSS.
-
Dimensioni immagine:
Specifica
width
edheight
sui tag<img>
se conosci la dimensione dell'immagine finale renderizzata.Perchรจ:
Se altezza e larghezza vengono specificate, lo spazio richiesto per l'immagine viene riservato quando la pagina viene caricata. Altrimenti, senza l'utilizzo di questi attributi, il browser non conosce la dimensione dell'immagine, e non puรฒ riservare lo spazio appropriato per essa. L'effetto sarร che il layout di pagina cambierร durante il caricamento (mentre l'immagine viene caricata).
-
Evita di utilzzare immagini in base64:
Alla fine potresti convertire immagini minuscole in base64, ma in realtร non รจ la migliore pratica.
- ๐ Base64 Encoding & Performance, Parte 1 e 2 a cura di Harry Roberts
- ๐ Uno sguardo piรน da vicino alle prestazioni delle immagini Base64 โ The Page Not Found Blog
- ๐ Quando codificare le immagini in base64 (e quando no) | David Calhoun
- ๐ Immagini con codifica Base64 per pagine piรน veloci | Performance and seo factors
-
Lazy loading:
Le immagini fuori viewport vengono caricate in lazy load (Una fallback noscript viene sempre fornita).
Perchรจ?:
Migliorerร il tempo di risposta della pagina corrente e quindi eviterร di caricare immagini non necessarie di cui l'utente potrebbe non aver bisogno.
Come?:
โ Utilizza Lighthouse per identificare quante immagini sono fuori schermo.
โ Utilizza un plugin javascript come quelli suggeriti dopo per caricare le immagini in lazy load. Assicurati di agire solo sulle immagini fuori viewport.
โ Inoltre assicurati di caricare in lazy load le immagini alternative mostrate a mouseover oppure dopo un'azione utente.- ๐ verlok/lazyload: GitHub
- ๐ aFarkas/lazysizes: GitHub
- ๐ mfranzke/loading-attribute-polyfill: GitHub
- ๐ Lazy Loading di immagini e video ย |ย Web Fundamentals ย |ย Google Developers
- ๐ 5 modi geniali per caricare le immagini in lazy load per caricamenti di pagina piรน rapidi - Dynamic Drive Blog
-
Immagini responsive:
Assicurati di pubblicare immagini vicine alle dimensioni del tuo display.
Perchรจ?:
I dispositivi di piccole dimensioni non hanno bisogno di immagini piรน grandi del loro viewport. Si consiglia di avere piรน versioni di un'immagine su dimensioni diverse.
How:
โ Crea immagini di dimensioni diverse per i dispositivi che vuoi scegliere come target.
โ Usasrcset
epicture
per fornire piรน varianti di ogni immagine.
-
Minificazione Javascript:
Tutti i file JavaScript sono minimizzati, i commenti, gli spazi bianchi e le nuove righe vengono rimossi dai file di produzione (ancora valido se si utilizza HTTP/2).
Perchรจ?:
La rimozione di tutti gli spazi, i commenti e le interruzioni non necessari ridurrร le dimensioni dei tuoi file JavaScript e accelererร i tempi di caricamento della pagina del tuo sito e ovviamente alleggerirร il download per il tuo utente.
Come?:
โ Usa gli strumenti suggeriti di seguito per minimizzare automaticamente i tuoi file prima o durante la compilazione o la distribuzione.
-
Nessun JavaScript nel mezzo della pagina:
(Valido solo per i siti Web) Evita di avere piรน codici JavaScript incorporati nel mezzo del tuo corpo. Raggruppa il tuo codice JavaScript all'interno di file esterni o eventualmente in
<head>
o alla fine della tua pagina (prima di</body>
).Perchรจ?:
L'inserimento di codice JavaScript incorporato direttamente nel tuo
<body>
puรฒ rallentare la tua pagina perchรฉ si carica mentre il DOM viene costruito. L'opzione migliore รจ utilizzare file esterni conasync
odefer
per evitare di bloccare il DOM. Un'altra opzione รจ inserire alcuni script all'interno del tuo<head>
. Il piรน delle volte codice di analisi o piccolo script che deve essere caricato prima che il DOM arrivi all'elaborazione principale.Come?:
Assicurati che tutti i tuoi file siano caricati usando
async
odefer
e decidi saggiamente il codice che dovrai inserire nel tuo<head>
. -
Javascript non bloccante:
I file JavaScript vengono caricati in modo asincrono utilizzando "async" o differiti utilizzando l'attributo "defer".
<!-- Defer Attribute --> <script defer src="foo.js"></script> <!-- Async Attribute --> <script async src="foo.js"></script>
Perchรจ?:
JavaScript blocca la normale analisi del documento HTML, quindi quando il parser raggiunge un tag
<script>
(in particolare si trova all'interno di<head>
), si ferma per recuperarlo ed eseguirlo. L'aggiunta diasync
odefer
รจ altamente raccomandata se i tuoi script sono posizionati nella parte superiore della pagina, ma รจ meno utile se appena prima del tag</body>
. Tuttavia, รจ consigliabile utilizzare sempre questi attributi per evitare qualsiasi problema di prestazioni.Come?:
โ Aggiungi
async
(se lo script non si basa su altri script) odefer
(se lo script si basa o si basa su uno script asincrono) come attributo al tag dello script.
โ Se disponi di script di piccole dimensioni, potresti utilizzare lo script inline posto sopra gli script asincroni. -
Librerie JS ottimizzate e aggiornate:
Tutte le librerie JavaScript utilizzate nel tuo progetto sono necessarie (preferisci Vanilla JavaScript per funzionalitร semplici), aggiornate alla loro ultima versione e non sovraccaricano il tuo JavaScript con metodi non necessari.
Perchรจ?:
La maggior parte delle volte, le nuove versioni vengono fornite con l'ottimizzazione e la correzione della sicurezza. Dovresti utilizzare il codice piรน ottimizzato per velocizzare il tuo progetto e assicurarti di non rallentare il tuo sito Web o la tua app senza un plug-in obsoleto.
Come?:
Se il tuo progetto usa i pacchetti NPM, npm-check รจ una libreria piuttosto interessante per aggiornare / aggiornare le tue librerie. Greenkeeper puรฒ cercare automaticamente le tue dipendenze e suggerire un aggiornamento ogni volta che esce una nuova versione.
-
Controlla il limite delle dimensioni delle dipendenze:
Assicurati di utilizzare saggiamente librerie esterne, la maggior parte delle volte puoi utilizzare una libreria piรน leggera per la stessa funzionalitร .
Perchรจ?:
You may be tempted to use one of the 745 000 packages you can find on npm, but you need to choose the best package for your needs. For example, MomentJS is an awesome library but with a lot of methods you may never use, that's why Day.js was created. It's just 2kB vs 16.4kB gz for Moment.
Come?:
Confronta e scegli sempre la libreria migliore e piรน leggera per le tue esigenze. Puoi anche usare strumenti come npm trends per confrontare i conteggi dei download dei pacchetti NPM o Bundlephobia per conoscere la dimensione delle tue dipendenze.
- ๐ ai/size-limit: Prevenire il gonfiamento delle librerie JS. Se aggiungi accidentalmente una dipendenza massiccia, Size Limit genererร un errore.
- ๐ webpack-bundle-analyzer - npm
- ๐ js-dependency-viewer - npm
- ๐ Size Limit: Rendi il web piรน leggero โ Martian Chronicles, Evil Martiansโ team blog
-
Profilazione Javascript:
Verifica la presenza di problemi di prestazioni nei tuoi file JavaScript (e anche CSS).
Perchรจ?:
La complessitร di JavaScript puรฒ rallentare le prestazioni di runtime. L'identificazione di questi possibili problemi รจ essenziale per offrire un'esperienza utente ottimale.
Come?:
Utilizza lo strumento Timeline in Chrome Developer Tool per valutare gli eventi degli script e trovare quello che potrebbe richiedere troppo tempo.
- ๐ Aumenta la velocitร di esecuzione di Javascript ย |ย Tools for Web Developers ย |ย Google Developers
- ๐ Profilazione JavaScript con gli strumenti per sviluppatori di Chrome โ Smashing Magazine
- ๐ Come registrare istantanee Heapย |ย Tools for Web Developers ย |ย Google Developers
- ๐ Capitolo 22 - Profilare il Frontend - Blackfire
- ๐ 30 suggerimenti per migliorare le prestazioni di Javascript
-
Utilizzo dei Service Worker:
Stai utilizzando Service Worker nella tua PWA per memorizzare nella cache i dati o eseguire possibili attivitร pesanti senza influire sull'esperienza utente della tua applicazione. ย ย ย
- ๐ Service Workers: Introduzioneย |ย Web Fundamentals ย |ย Google Developers
- ๐ Misurazione dell'impatto sulle prestazioni nel mondo reale dei Service Worker ย |ย Web ย |ย Google Developers
- ๐ Cosa sono i Service Workers e come ci possono aiutare a migliorare le performance
- ๐น Come lavora un Service Worker? - YouTube
-
Perchรจ?:
HTTPS non รจ solo per i siti Web di e-commerce, ma per tutti i siti Web che scambiano dati. Dati condivisi da un utente o dati condivisi con un'entitร esterna. I browser moderni oggi limitano le funzionalitร per i siti che non sono sicuri. Ad esempio: la geolocalizzazione, le notifiche push e i service worker non funzionano se l'istanza non utilizza HTTPS. E oggi รจ molto piรน facile configurare un progetto con un certificato SSL rispetto a prima (e gratuitamente, grazie aLet's Encrypt).
- ๐ Perchรจ usare HTTPS? | Cloudflare
- ๐ Abilita HTTPS senza sacrificare le performance - Moz
- ๐ Come HTTPS influisce sulle performance dei siti web
- ๐ HTTP vs HTTPS vs HTTP2 - La vera storia | Tune The Web
- ๐ HTTP vs HTTPS โ Testali da solo
-
Il peso della pagina inferiore a < 1500 KB (idealmente < 500 KB):
Riduci la dimensione delle pagine e risorse piรน che puoi.
Perchรจ?:
Idealmente dovresti provare a scegliere come target <500 KB, ma lo stato del Web mostra che la mediana di kilobyte รจ di circa 1500 KB (anche su dispositivi mobili). A seconda degli utenti target, della connessione di rete, dei dispositivi, รจ importante ridurre il piรน possibile i kilobyte totali per avere la migliore esperienza utente possibile.
Come?:
โ Tutte le regole all'interno della Front-End Performance Checklist ti aiuteranno a ridurre il piรน possibile le tue risorse e il tuo codice.
-
Tempi di caricamento pagina inferiori a 3 secondi:
Riduci il piรน possibile i tempi di caricamento della tua pagina per consegnare rapidamente i tuoi contenuti ai tuoi utenti.
Perchรจ?:
Piรน veloce รจ il tuo sito web o la tua app, meno hai probabilitร di aumenti di rimbalzo, in altri termini hai meno possibilitร di perdere il tuo utente o futuro cliente. Abbastanza ricerche sull'argomento dimostrano questo punto.
Come?:
Utilizza strumenti online come Page Speed Insight oppure WebPageTest per analizzare cosa potrebbe rallentarti e utilizzare l'elenco di controllo delle prestazioni del front-end per migliorare i tempi di caricamento.
-
Time To First Byte inferiore a 1.3 secondi:
Riduci il piรน possibile il tempo di attesa del tuo browser prima di ricevere i dati.
-
Dimensione dei cookie:
Se stai utilizzando i cookie, assicurati che ognuno dei cookie non superi i 4096 bytes ed il tuo nome dominio non abbia piรน di 20 cookies.
Perchรจ?:
I cookie vengono scambiati nelle intestazioni HTTP tra server Web e browser. ร importante mantenere la dimensione dei cookie il piรน bassa possibile per ridurre al minimo l'impatto sul tempo di risposta dell'utente.
Come?:
Elimina i cookie non necessari.
- Minimizzare le richieste HTTP:
Assicurati sempre che ogni file richiesto sia essenziale per il tuo sito web o applicazione.
- Usa una CDN per servire le tue risorse:
Usa un CDN per distribuire piรน velocemente i tuoi contenuti in tutto il mondo.
- ๐ 10 Consigli per ottimizzare le performance CDN - CDN Planet
- ๐ HTTP Caching ย |ย Web Fundamentals ย |ย Google Developers
-
Servire i file con lo stesso protocollo:
Evita che il tuo sito Web serva file provenienti dalla fonte utilizzando HTTP sul tuo sito Web che utilizza HTTPS, ad esempio. Se il tuo sito Web utilizza HTTPS, i file esterni dovrebbero provenire dallo stesso protocollo.
-
Servire file raggiunbili:
Evita di richiedere file non raggiungibili (404).
- Imposta correttamente le intestazioni della cache HTTP:
Imposta le intestazioni HTTP per evitare un numero costoso di roundtrip tra il tuo browser e il server.
- Compressione GZIP / Brotli abilitata:
Usa un metodo di compressione come Gzip o Brotli per ridurre le dimensioni dei tuoi file JavaScript. Con un file di dimensioni inferiori, gli utenti saranno in grado di scaricare l'asset piรน velocemente, con conseguente miglioramento delle prestazioni.
- ๐ Ottimizzazione performance - React
- ๐ Manipolazione immagini con React | Cloudinary
- ๐ Debug delle prestazioni di React con React 16 e Chrome Devtools.
- ๐ Costrusci in maniera performante- React
- ๐ 19 consigli per velocizzare le prestazioni di WordPress (Aggiornato)
- ๐ Velocizza il tuo WordPress - Come salvare le immagini ottimizzate per il Web
- ๐ Plugin di memorizzazione nella cache per WordPress: velocizza il tuo sito Web con WP Rocket
- ๐ WP-Sweep | WordPress.org
- ๐ Imagify Ottimizzatore di immagini | WordPress.org
La Front-End Performance Checklist vuole essere disponibile anche in altre lingue! Non esitare a inviare il tuo contributo!
- ๐ต๐น Portuguese: fernandofawkes/Front-End-Performance-Checklist
- ๐จ๐ณ Chinese: JohnsenZhou/Front-End-Performance-Checklist
- ๐ท๐บ Russian: lex111/Front-End-Performance-Checklist
- ๐ซ๐ท French: WilliamDASILVA/Front-End-Performance-Checklist
- ๐ฐ๐ท Korean: ParkSB/Front-End-Performance-Checklist
- ๐ช๐ธ Spanish: dagerzuga/Front-End-Performance-Checklist
- ๐ป๐ณ Vietnamese : huynhan147/Front-End-Performance-Checklist
- ๐ฏ๐ต Japanese: GameWith/Front-End-Performance-Checklist
- ๐ต๐ฑ Polish: mbiesiad/Front-End-Performance-Checklist
- ๐ฎ๐ท Persian: ms-fadaei/Front-End-Performance-Checklist
- ๐ฎ๐น Italian: [marbio/Front-End-Performance-Checklist] (https://github.com/marbio/Front-End-Performance-Checklist)
Apri una issue o una pull request per suggerire modifiche o aggiunte.
Se hai domande o suggerimenti, non esitare a usare Discord o Twitter:
**Costruita con โค๏ธ da David Dias
Questo progetto esiste grazie a tutte le persone che contribuiscono. [Contribute].
Grazie a tutti i nostri sostenitori! ๐ [Diventa un sostenitore]
Sostieni questo progetto diventando uno sponsor. Il tuo logo apparirร qui con un link al tuo sito web. [Diventa sponsor]
Tutte le icone sono fornite da Icons8