{"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\/it\/speed-test\/","title":{"rendered":"Esegui il testi di velocit\u00e0 del sito web e scopri come velocizzare il caricamento del sito"},"content":{"rendered":"<p>Tutti sanno che un sito lento non \u00e8 bello. Per questo motivo, diventa problematico risolvere problemi di tutti i giorni. A volte \u00e8 semplicemente noioso. Spesso, un sito lento \u00e8 una vera e propria rottura, tutto questo, comporta il rifiuto del servizio dell&#8217;utente, che non attende il download e va via. Questo \u00e8 importante in caso di radica frenata da parte del sito, ad esempio, quando l&#8217;inizio del rendering della pagina inizia 8-10 secondi dopo il clic.<\/p>\n<p>Anche con una situazione relativamente favorevole (con un download veloce su internet cablato e un computer moderno), i ritardi nel download possono portare a perdite di pubblico e tassi di conversione inferiori. Ad esempio, Amazon ha condotto un esperimento in cui ha scoperto che 100 ms (0,1 s) di ritardo, comportano una diminuzione delle vendite dell&#8217;1%.<\/p>\n<p>Ma pi\u00f9 della met\u00e0 del pubblico internet, oggi utilizza dispositivi mobile per accedere ai siti. Per cui, possono trovarsi ad utilizzare canali lenti per l&#8217;accesso e processori per scaricare il sito.<\/p>\n<p>Il terzo motivo dell&#8217;importanza della velocit\u00e0 del sito \u00e8 di questione tecnica. In genere, i siti lenti consumano una quantit\u00e0 maggiore di risorse di hosting, il che comporta costi aggiuntivi. Un rallentamento da parte del server, riduce la capacit\u00e0 di sperimentare carichi di picco problematici sul sito.<\/p>\n<p>Pertanto, la velocit\u00e0 del sito dovrebbe essere affrontata sia dal punto di vista tecnico, che economico. In questo articolo ci concentreremo sul lato tecnico per accelerare il sito.<\/p>\n    <div class=\"blog__conversion blog__conversion-app element__logged_out\">\n        <div class=\"blog__conversion-inner\">\n            <p class=\"title\">Rileva pagine con codice ridondante<\/p>\n            <p class=\"description\">Controlla il tuo sito Web per scoprire pagine con contenuti da codificare meno del 10%<\/p>\n            <form id=\"audit__form\"\n                  class=\"article__seo-search audit__form Controlla il tuo sito Web per scoprire pagine con contenuti da codificare meno del 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=\"Inserisci il tuo nome di dominio\">\n                                <button type=\"submit\"\n                        class=\"sitechecker__text\">\n                    <span>Inizio<\/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\">Velocit\u00e0 del sito web: i componenti principali<\/h2>\n<p>La velocit\u00e0 del sito riguarda due lati: client e server. Ad oggi, ciascuna di queste parti \u00e8 equivalente al risultato finale. Ma ognuna con le sue caratteristiche.<\/p>\n<p>Per capire quale sia il tempo di caricamento della pagina di un sito, diamo un&#8217;occhiata al procedimento. Di conseguenza, saremo in grado di capire dove si trovano le possibilit\u00e0 di ottimizzazione di server e client.<\/p>\n<p>L&#8217;intero processo di download del sito (prima visita) \u00e8 il seguente:<\/p>\n<ul>\n<li>\u00a0Richiesta del <a href=\"http:\/\/test.sitechecker.pro\/it\/dns-checker\/\">DNS<\/a> dal nome del sito.<\/li>\n<li>Connessione al server tramite IP (connessione TCP).<\/li>\n<li>Stabilire una connessione sicura quando si utilizza HTTPS (connessione TLS).<\/li>\n<li>Richiedere la pagina HTML per URL e attesa del server (richiesta HTTP).<\/li>\n<li>Caricamento HTML.<\/li>\n<li>Analisi di un documento HTML dal lato del browser, creazione di una coda di query nelle risorse del documento.<\/li>\n<li>Caricamento e analisi degli stili CSS.<\/li>\n<li>Caricamento ed esecuzione del codice JS.<\/li>\n<li>Inizio del rendering della pagina, esecuzione del codice JS.<\/li>\n<li>Download dei font del web.<\/li>\n<li>Caricamento di immagini e altri elementi.<\/li>\n<li>Fine del rendering della pagina, esecuzione del codice JS differito.<\/li>\n<\/ul>\n<p>In questo processo, alcune parti si verificano in parallelo, alcune possono cambiare posizione, ma l&#8217;essenza rimane la stessa.<\/p>\n<p>L&#8217;ottimizzazione del server riguarda le fasi dalla prima alla quarta. I passaggi dal 5 al 12 riguardano l&#8217;ottimizzazione del client. Il tempo dedicato a ciascuna di queste fasi, \u00e8 personale ad ogni sito, quindi \u00e8 necessario ottenere le metriche del sito e identificare la principale fonte di problemi. E qui passiamo alla domanda su come ottenere queste metriche e interpretarle.<\/p>\n<h2 id=\"measuring\">Misurazione della velocit\u00e0 del sito web<\/h2>\n<p>La domanda principale \u00e8: cosa bisogna misurare? Esistono diverse metriche per misurare la velocit\u00e0 dei siti, ma non ce ne sono molte di base.<\/p>\n<p><strong>Primo<\/strong>, questa volta fino al primo byte (TTFB &#8211; time to first byte) \u00e8 il tempo dall&#8217;inizio del processo di download alla ricezione della prima porzione di dati dal server. Questa \u00e8 la metrica principale per l&#8217;ottimizzazione del server.<\/p>\n<p><strong>Secondo<\/strong>, questo \u00e8 l&#8217;inizio del rendering della pagina (avvio del rendering, prima immagine). La metrica mostra il tempo fino alla fine del periodo &#8220;schermo bianco&#8221; del browser, quando la pagina inizia ad apparire.<\/p>\n<p><strong>Terzo<\/strong>, vengono caricati gli elementi principali della pagina (tempo di caricamento). Ci\u00f2 include il caricamento e l&#8217;interpretazione di tutte le risorse per lavorare con la pagina, fatto ci\u00f2, l&#8217;indicatore di caricamento della pagina smette di girare.<\/p>\n<p><strong>Quarto<\/strong>, questo \u00e8 il caricamento completo della pagina: il tempo prima della fine dell&#8217;attivit\u00e0 principale del browser, vengono caricate tutte le risorse principali e differite.<\/p>\n<p>Queste metriche di base sono misurate in secondi. \u00c8 anche utile avere una stima della quantit\u00e0 di traffico per la terza e la quarta metrica. \u00c8 necessario conoscere il traffico per valutare l&#8217;effetto della velocit\u00e0 di connessione sul tempo di caricamento.<\/p>\n<p>Ora dobbiamo capire come testare la velocit\u00e0. Esistono molti servizi e strumenti per valutare le metriche della velocit\u00e0 di download dei siti, ognuno dei quali \u00e8 migliore per un compito specifico.<\/p>\n<p>Uno degli strumenti pi\u00f9 potenti \u00e8 il pannello di sviluppo del browser. La funzionalit\u00e0 pi\u00f9 avanzata del pannello si trova in Chrome. Nella scheda Rete, puoi ottenere le metriche per il tempo di caricamento di tutti gli elementi, incluso il documento HTML stesso. Quando si passa con il mouse su un elemento, \u00e8 possibile vedere quanto tempo \u00e8 trascorso per ogni passaggio nell&#8217;ottenere la risorsa. Per valutare l&#8217;immagine completa del processo di caricamento della pagina, \u00e8 possibile utilizzare la scheda Prestazioni, che fornisce dettagli completi fino al momento della decodifica delle immagini.<\/p>\n<p>Se \u00e8 necessario valutare la velocit\u00e0 del sito senza granularit\u00e0, \u00e8 utile avviare una verifica del sito (scheda Audits), dove il test verr\u00e0 condotto utilizzando il plug-in Lighthouse. Nel rapporto, si otterranno una stima della velocit\u00e0 per i dispositivi mobili (sia integrali dei punti, quindi in base alle nostre metriche di base) e molti altri report.<\/p>\n<p>Per valutare rapidamente l&#8217;ottimizzazione del client, puoi utilizzare <a href=\"https:\/\/developers.google.com\/speed\/pagespeed\/insights\/\">Google PageSpeed \u200b\u200bInsights<\/a> o Sitechecker (noi utilizziamo l&#8217;API di Google PageSpeed Insights). Infine, \u00e8 utile analizzare l&#8217;ora di download del sito da utenti reali. Per questo, ci sono report speciali nei sistemi di analisi web Yandex.Metrics e Google Analytics.<\/p>\n<p>I punti di riferimento per il tempo di caricamento del sito sono i seguenti: l&#8217;inizio del rendering \u00e8 di circa 1 secondo, il caricamento della pagina avviene in 3-5 secondi. In tale contesto, gli utenti non si lamenteranno della velocit\u00e0 del sito e il tempo di download non limiter\u00e0 l&#8217;efficacia del sito. Queste cifre dovrebbero essere raggiunte da utenti reali, anche in condizioni difficili di connessione mobile e dispositivi obsoleti.<\/p>\n<h2 id=\"serveroptimization\">Ottimizzazione del server<\/h2>\n<p>Ora vediamo come accelerare realmente il sito. L&#8217;ottimizzazione della parte server \u00e8 la misura pi\u00f9 comprensibile e ovvia per gli sviluppatori di siti. Innanzitutto, la parte server viene monitorata e controllata dal lato degli amministratori di sistema facilmente. Inoltre, se si verificano gravi problemi con il tempo di risposta del server, il rallentamento \u00e8 evidente a tutti, indipendentemente dalla velocit\u00e0 della connessione o dal dispositivo.<\/p>\n<p>Anche se i motivi che frenano il lato server possono essere molto diversi, ci sono luoghi tipici in cui guardare.<\/p>\n<h3>Hosting (risorse del server)<\/h3>\n<p>Questo \u00e8 il motivo per cui numerosi siti di piccole dimensioni sono lenti. Per caricare il sito, semplicemente non ci sono abbastanza risorse di hosting (in genere CPU e velocit\u00e0 del sistema del disco). Se puoi aumentare rapidamente queste risorse, vale la pena provare. In alcuni casi, il problema verr\u00e0 risolto. Se il costo delle risorse aggiuntive diventa superiore al costo del lavoro di ottimizzazione, \u00e8 necessario prendere in considerazione i seguenti metodi.<\/p>\n<h3>DBMS (database del server)<\/h3>\n<p>Qui ci stiamo gi\u00e0 rivolgendo alla fonte del problema: la bassa velocit\u00e0 del codice del programma. Spesso, la maggior parte delle volte viene utilizzata un&#8217;applicazione web per le richieste del database. Questo \u00e8 ovvio, perch\u00e9 il compito di un&#8217;applicazione web \u00e8 quello di raccogliere dati e convertirli secondo un determinato schema.<\/p>\n<p>Per risolvere il problema delle risposte lente dal database, solitamente si procede in due fasi diverse: ottimizzazione del DBMS e ottimizzazione delle query e gli schemi di dati. L&#8217;ottimizzazione del DBMS (ad esempio, MySQL) pu\u00f2 dare un&#8217;accelerazione pi\u00f9 volte, nel caso in cui non sia stata eseguita in precedenza una sistemazione. La messa a punto pu\u00f2 velocizzare il tempo di caricamento del 12%.<\/p>\n<p>L&#8217;ottimizzazione di query e schemi di dati \u00e8 un modo radicale. Grazie a questa ottimizzazione, \u00e8 possibile ottenere l&#8217;accelerazione di diversi ordini di grandezza. Se il cambiamento nella struttura del database pu\u00f2 verificarsi senza intrusione nel codice del programma del sito, allora l&#8217;ottimizzazione delle richieste di tale intervento sar\u00e0 richiesto.<\/p>\n<p>Per identificare le query lente, \u00e8 necessario raccogliere statistiche sul carico del database per un periodo di tempo abbastanza lungo. Quindi viene analizzato il log e identificati i candidati per l&#8217;ottimizzazione.<\/p>\n<h3>Effetto del CMS e codice del programma<\/h3>\n<p>Molti, credono che la velocit\u00e0 del sito dipenda solo dal CMS (\u201cmotore\u201d). I proprietari di un sito, spesso cercano di dividere il CMS in lento e veloce. Questo per\u00f2 non \u00e8 reale.<\/p>\n<p>Ovviamente, il carico del server dipende dal codice incluso nel CMS. Tuttavia, i sistemi pi\u00f9 popolari cercano di ottimizzare la velocit\u00e0 massima e problemi fatali con la velocit\u00e0 del sito.<\/p>\n<p>Tuttavia, oltre al codice CMS principale, il sito pu\u00f2 contenere moduli aggiuntivi (plug-in), estensioni e modifiche dagli sviluppatori del sito. E gi\u00e0 questo codice pu\u00f2 avere un impatto negativo sulla velocit\u00e0 del sito.<\/p>\n<p>Inoltre, i problemi di velocit\u00e0 si verificano quando il sistema viene utilizzato in modo improprio. Ad esempio, il sistema per il blog viene utilizzato per creare un negozio. Oppure il sistema per siti di piccole dimensioni viene utilizzato per sviluppare un portale.<\/p>\n<h3>Caching<\/h3>\n<p>Il mezzo pi\u00f9 potente e universalmente noto per aumentare la velocit\u00e0 del server, \u00e8 il caching. Qui parliamo del caching lato server, e non delle intestazioni della cache. Se il calcolo del risultato (assemblaggio della pagina, blocco) richiede risorse significative, \u00e8 necessario inserire il risultato nella cache e aggiornarlo periodicamente. L&#8217;idea \u00e8 semplice e complessa allo stesso tempo: i sistemi di caching sono integrati nei linguaggi di programmazione, nei sistemi di gestione dei siti e nei server web.<\/p>\n<p>In genere, la memorizzazione nella cache delle pagine consente di ridurre il tempo di rendering della pagina di decine di millisecondi. Chiaramente, in questo caso, il server sperimenta facilmente i picchi di presenze. Ci sono due problemi in questo caso: non tutto pu\u00f2 essere memorizzato nella cache e la cache deve essere correttamente disabilitata (scartata). Se i problemi vengono risolti, la memorizzazione nella cache pu\u00f2 essere consigliata come mezzo efficace di accelerazione del server.<\/p>\n<h3>Ottimizzazione di TCP, TLS, HTTP\/2<\/h3>\n<p>In questa parte, abbiamo combinato le sottili ottimizzazioni di rete, che accelerano il server. L&#8217;effetto qui non \u00e8 grande come per altri metodi, ma \u00e8 ottenuto esclusivamente tramite un&#8217;impostazione libera.<br \/>\nOggi, il tuning TCP \u00e8 necessario per grandi progetti e server con una connessione da 10G, la cosa principale da ricordare \u00e8: il sottosistema di rete viene regolarmente aggiornato con il rilascio di nuovi kernel Linux, quindi vale la pena aggiornarlo. La corretta configurazione di TLS (HTTPS) consente di ottenere un elevato livello di sicurezza e ridurre al minimo il tempo necessario per stabilire una connessione sicura. Buoni consigli vengono rilasciati da <a href=\"https:\/\/wiki.mozilla.org\/Security\/Server_Side_TLS\">Mozilla<\/a>.<\/p>\n<p>La nuova versione del protocollo HTTP &#8211; HTTP\/2 \u00e8 progettata per accelerare il download dei siti. Questo protocollo \u00e8 apparso di recente e ora \u00e8 utilizzato attivamente (circa il 20% della quota tra i siti). In generale, in HTTP\/2, i meccanismi di accelerazione sono effettivamente positivi, il principale sta riducendo l&#8217;effetto dei ritardi di rete sul tempo di caricamento della pagina (richiedere il multiplexing). Ma l&#8217;accelerazione dovuta all&#8217;HTTP\/2 non ha sempre successo, quindi non fare affidamento solo su questo protocollo.<\/p>\n<h2 id=\"customeroptimization\">Ottimizzazione del client<\/h2>\n<p>A differenza dell&#8217;ottimizzazione server, il client \u00e8 mirato a tutto ci\u00f2 che accade nel browser dell&#8217;utente. Per questo motivo, il controllo \u00e8 complicato (diversi dispositivi e browser) e nascono molte diverse direzioni di ottimizzazione. Vedremo i metodi pi\u00f9 efficaci e universali che possono essere utilizzati in quasi tutti i progetti.<\/p>\n<h3>Ottimizzazione del percorso critica: CSS, JS<\/h3>\n<p>Il percorso critico di rendering (critical rendering path) \u2013 \u00e8 un set di risorse utilizzato per avviare il rendering della pagina del browser. In genere, questo elenco include il documento HTML stesso, gli stili CSS, i caratteri web e il codice JS.<\/p>\n<p>Dovendo ottimizzare la velocit\u00e0, il nostro compito \u00e8 quello di abbreviare questo percorso sia nel tempo (tenendo conto dei ritardi della rete) sia nel traffico (tenendo conto delle connessioni lente).<\/p>\n<p>Il modo pi\u00f9 semplice per determinare il percorso critico \u00e8 avviare una verifica in Chrome (nel pannello degli sviluppatori), sar\u00e0 il plug-in Lighthouse a determinare la composizione e il tempo di avvio, tenendo conto della connessione lenta.<\/p>\n<p>La tecnica principale per ridurre il percorso critico \u00e8 questa: rimuoviamo tutto ci\u00f2 che non \u00e8 necessario o pu\u00f2 essere rinviato. Ad esempio, la maggior parte del codice JS pu\u00f2 essere posticipata prima che la pagina venga caricata. Per fare ci\u00f2, \u00e8 necessario posizionare la chiamata alla risorsa JS alla fine del documento HTML o usare l&#8217;attributo async.<\/p>\n<p>Per il caricamento ritardato del CSS, \u00e8 possibile utilizzare la connessione dinamica degli stili tramite JS (in attesa dell&#8217;evento domContentLoaded).<\/p>\n<h3>Ottimizzazione dei web font<\/h3>\n<p>Collegare i web font, oggi \u00e8 diventato quasi lo standard in termini di design. Sfortunatamente, influenzano negativamente la velocit\u00e0 di rendering della pagina. I web font (caratteri web in italiano), sono risorse aggiuntive che \u00e8 necessario acquisire prima di iniziare a disegnare del testo.<\/p>\n<p>La situazione peggiora perch\u00e9 spesso i puntatori ai file dei font sono nascosti in un file CSS, che non \u00e8 nemmeno istantaneo. Molti sviluppatori preferiscono utilizzare i servizi di web font pubblici (ad esempio, Google Fonts), il che causa ancora pi\u00f9 ritardi (connessioni aggiuntive, file CSS).<\/p>\n<p>Le regole di ottimizzazione consigliano di ridurre la dimensione del traffico dei web font e di farli arrivare il pi\u00f9 rapidamente possibile.<\/p>\n<p>Per ridurre il traffico, \u00e8 necessario utilizzare formati moderni: WOFF2 per i browser moderni, WOFF per la compatibilit\u00e0. Inoltre, \u00e8 necessario includere solo i set di caratteri utilizzati nel sito (ad esempio, latino e cirillico).<\/p>\n<p>Per influenzare la visualizzazione rapida dei caratteri web, \u00e8 possibile utilizzare le nuove specifiche link rel=\u201dpreload\u201d e la propriet\u00e0 font-display CSS. Il pre-caricamento, ti consentir\u00e0 di comunicare al browser il prima possibile la necessit\u00e0 di scaricare un file di font e la visualizzazione dei font offre un modo flessibile per controllare il comportamento del browser in caso di ritardo del file (attendere, disegnare un file di riserva, non aspettare un font per pi\u00f9 di tre secondi).<\/p>\n<h3>Ottimizzazione delle immagini<\/h3>\n<p>Nei siti moderni, le immagini rappresentano la maggior parte del peso. Ovviamente, le immagini non sono risorse critiche di una pagina, come i codici CSS e JS. Ma per molti siti, le immagini sono una parte importante del contenuto: ricorda qualsiasi scheda prodotto di un negozio online.<\/p>\n<p>La tecnica principale per ottimizzare le immagini, \u00e8 di ridurne le dimensioni. Per fare questo, \u00e8 necessario utilizzare il formato e gli strumenti di compressione corretti:<\/p>\n<ul>\n<li>\u00a0PNG per immagini con trasparenza e testo;<\/li>\n<li>JPEG per foto e immagini complesse;<\/li>\n<li>SVG per grafica vettoriale.<\/li>\n<\/ul>\n<p>A parte questi formati, ne vengono sviluppati anche di nuovi: ad esempio WebP di Google. Questo formato pu\u00f2 coprire l&#8217;area di utilizzo di PNG e JPEG &#8211; supporta le compressioni lossy e lossless, la trasparenza e persino l&#8217;animazione. Per usarlo, \u00e8 sufficiente creare una copia delle immagini in WebP e assegnarle ai browser che le supportano.<\/p>\n<p>Per i PNG, esistono molte utility di ottimizzazione che possono essere utilizzate per ridurne le dimensioni, ad esempio OptiPNG, PNGout, <a href=\"https:\/\/ewww.io\/plans\/ref\/156\/\">EWWW Image Optimizer<\/a> e altri. Inoltre, l&#8217;ottimizzazione interna della compressione dei dati pu\u00f2 essere eseguita utilizzando zopfliPNG. L&#8217;idea principale di tale software consiste nel selezionare i parametri di compressione ottimali, rimuovendo i dati non necessari dal file. Bisogna per\u00f2 fare attenzione: alcune utility fanno perdere qualit\u00e0 alle immagini, il che potrebbe non essere una soluzione adatta alle tue esigenze (se ti aspetti che venga riprodotta la stessa immagine).<\/p>\n<p>L&#8217;ottimizzazione di JPEG \u00e8 suddivisa in due: lossy e lossless. In generale, possiamo consigliare il pacchetto Mozilla JPEG, appositamente progettato per una migliore compressione di questo formato. Per l&#8217;ottimizzazione delle immagini lossless, \u00e8 possibile utilizzare jpegtran, con lossy &#8211; cjpeg.<\/p>\n<h3>Caching headers<\/h3>\n<p>Questo \u00e8 il metodo pi\u00f9 semplice per ottimizzare il client. \u00c8 stato progettato per per memorizzare nella cache del browser le risorse rare: immagini, file CSS e JS, caratteri, a volte persino il documento HTML stesso. Di conseguenza, ogni risorsa viene richiesta dal server solo una volta.<\/p>\n<p>Se stai usando Nginx, aggiungi la direttiva:<\/p>\n<div class=\"code\"><code>add_header Cache-Control \"max-age=31536000, immutable\";<\/code><\/div>\n<p>D&#8217;ora in poi, il browser ha il diritto di memorizzare le risorse per un massimo di un anno (che \u00e8 quasi come dire per sempre). Il nuovo parametro &#8220;immutable&#8221; indica che la risorsa non verr\u00e0 modificata.<\/p>\n<p>Ovviamente, la domanda sorge spontanea: cosa succede se abbiamo bisogno di cambiare la risorsa memorizzata nella cache? La risposta \u00e8 semplice: cambia il suo indirizzo, URL. Ad esempio, \u00e8 possibile aggiungere una versione al nome di un file. Per i documenti HTML, anche questo metodo \u00e8 applicabile, ma, di regola, viene utilizzato un periodo di memorizzazione nella cache pi\u00f9 breve (ad esempio, un minuto o un&#8217;ora).<\/p>\n<h3>Compressione dati<\/h3>\n<p>Una pratica obbligatoria, \u00e8 la compressione di tutti i dati di testo quando vengono trasferiti dal server al browser. La maggior parte dei server ha un&#8217;implementazione di risposte con compressione gzip.<\/p>\n<p>Tuttavia, la semplice attivazione della compressione non \u00e8 sufficiente.<\/p>\n<p>Innanzitutto, il rapporto di compressione \u00e8 regolabile e dovrebbe essere vicino al massimo.<\/p>\n<p>In secondo luogo, \u00e8 possibile utilizzare la compressione statica, ovvero, pre-comprimere i file e inserirli sul disco. Dopodich\u00e9, il server cercher\u00e0 la versione compressa e la restituir\u00e0 immediatamente. In terzo luogo, \u00e8 possibile utilizzare algoritmi di compressione pi\u00f9 efficienti: zopfli (compatibile con gzip) e brotli (nuovo algoritmo di compressione). Brotli funziona solo con HTTPS. Dato che questi algoritmi (specialmente zopfli) sono costosi da comprimere, li usiamo sempre nella versione statica.<\/p>\n<p>Per massimizzare l&#8217;effetto della compressione dei file, il processo di minimizzazione viene applicato in maniera preliminare: eliminando le traduzioni di stringhe, spazi e altri caratteri non necessari. Questo processo \u00e8 specifico per ogni formato. Inoltre, dovresti occuparti della compressione di altri dati di testo sul sito.<\/p>\n<h2 id=\"usingcdn\">Utilizzare il CDN<\/h2>\n<p>L&#8217;applicazione del CDN (content delivery network) per accelerare i siti web, \u00e8 una misura molto pubblicizzata, con tanto marketing attorno all&#8217;essenza della tecnologia.<\/p>\n<h3>Teoria: perch\u00e9<\/h3>\n<p>Inizialmente, i CDN sono stati progettati per scaricare i canali internet dei siti di broadcast media. Ad esempio, guardando un video dal vivo, diverse migliaia di spettatori creano un carico molto pesante sulla larghezza di banda del server. Inoltre, garantire una elevata qualit\u00e0 di comunicazione ininterrotta con la rimozione di client e server di grandi dimensioni, \u00e8 estremamente difficile (a causa di ritardi e instabilit\u00e0 della rete).<\/p>\n<p>La soluzione a questo problema \u00e8 stata creare il CDN, cio\u00e8 una rete distribuita a cui erano connessi i client (ad esempio i visualizzatori) mentre gli host di questa rete sono gi\u00e0 sul server (origine). Allo stesso tempo, il numero di connessioni al server \u00e8 stato ridotto a uno (diversi) e il numero di connessioni al CDN potrebbe raggiungere milioni, a causa della memorizzazione nella cache del contenuto da parte della rete.<\/p>\n<p>Oggi, la maggior parte dei CDN si posiziona come mezzo per accelerare i siti, riducendo la distanza dal contenuto al client (il visitatore del sito).<\/p>\n<h3>Possibili effetti<\/h3>\n<p>Come posso velocizzare un sito usando il CDN?<\/p>\n<p>L&#8217;utente, di regola, si collega al server di rete pi\u00f9 vicino (in termini di tempo d&#8217;accesso) e ottiene un&#8217;elaborazione rapida per la creazione delle connessioni TCP e TLS. Inoltre, se il contenuto si trova sul server CDN, l&#8217;utente pu\u00f2 riceverlo rapidamente. Pertanto, il carico sul nostro server \u00e8 ridotto.<\/p>\n<p>In secondo luogo, il CDN non pu\u00f2 distribuire il contenuto senza modifiche, ma bisogna ottimizzarlo su un lato e dargli una forma pi\u00f9 compatta: comprimere le immagini, applicare la compressione al test, ecc. Grazie a tali ottimizzazioni, \u00e8 possibile ottenere un tempo di download pi\u00f9 breve.<\/p>\n<h3>Svantaggi nell&#8217;uso di CDN<\/h3>\n<p>Come al solito, ai tanti vantaggi, corrispondono altrettanti svantaggi: l&#8217;oggetto potrebbe non essere nella cache del nodo CDN. Ad esempio, non \u00e8 stato ancora richiesto o non pu\u00f2 essere memorizzato nella cache (documento HTML). In questo caso, ci sono ulteriori ritardi tra il nodo CDN e il nostro server.<\/p>\n<p>Nonostante i CDN siano progettati per accelerare l&#8217;accesso al sito, ci sono situazioni in cui il percorso di rete sar\u00e0 meno ottimale rispetto al CDN. \u00c8 particolarmente importante per i CDN globali, per i quali la Russia non \u00e8 un mercato prioritario.<\/p>\n<p>Infine, le reti di distribuzione dei contenuti sono sistemi molto complessi, dove sono possibili anche crash, instabilit\u00e0 e altri problemi. Usando il CDN, aggiungiamo un ulteriore livello di complessit\u00e0.<\/p>\n<h2>Fissiamo il risultato<\/h2>\n<p>Diciamo che sei riuscito a raggiungere una buona velocit\u00e0 del sito. Gli utenti e i proprietari della risorsa sono felici. Ora puoi dimenticare il problema della velocit\u00e0? Ovviamente no. Per ottenere una qualit\u00e0 costante del sito, \u00e8 necessario sviluppare e <a href=\"http:\/\/test.sitechecker.pro\/it\/website-monitoring\/\">monitorare costantemente il sito<\/a>.<\/p>\n<h3>Supporto di accelerazione<\/h3>\n<p>Qualsiasi progetto web live viene aggiornato regolarmente, le modifiche avvengono sia nei modelli comuni (temi di design, interfacce), sia nei contenuti. Inoltre, il codice del programma (sia client che server) cambia attivamente.<\/p>\n<p>Ogni modifica pu\u00f2 influire sulla velocit\u00e0 del sito. Per monitorarne l&#8217;impatto, \u00e8 necessario implementare un sistema di monitoraggio della velocit\u00e0 del sito sintetico in fase di sviluppo. Pertanto, i problemi di velocit\u00e0 possono essere intercettati prima che gli utenti li notino.<\/p>\n<p>Per ottimizzare il contenuto in entrata, \u00e8 richiesta l&#8217;integrazione delle procedure di ottimizzazione nel sistema di gestione dei contenuti. Prima di tutto, ci\u00f2 riguarda l&#8217;elaborazione delle immagini.<\/p>\n<p>L&#8217;accelerazione dei siti \u00e8 un&#8217;area molto dinamica: stanno emergendo nuovi standard, il loro supporto da parte dei browser sta cambiando. Pertanto, \u00e8 importante verificare regolarmente la tecnologia del progetto, i processi e il software utilizzati.<\/p>\n<h3>Monitorare la reale velocit\u00e0 dell&#8217;utente<\/h3>\n<p>Il test sintetico in condizioni di laboratorio ideali, \u00e8 estremamente utile per valutare i cambiamenti nel codice di sistema, ma non \u00e8 sufficiente. Alla fine, vogliamo che il sito funzioni in modo veloce per gli utenti reali. Per raccogliere tali dati, \u00e8 possibile monitorare la velocit\u00e0 dal lato utente (RUM &#8211; monitoraggio utente reale).<\/p>\n<p>Per organizzare il RUM, \u00e8 sufficiente collegare uno dei sistemi di analisi web (Yandex.Metrica, Google Analytics) e consultare i rapporti sull&#8217;ora del download del sito. Per ricevere dati pi\u00f9 dettagliati e accurati, \u00e8 possibile utilizzare servizi di monitoraggio della velocit\u00e0 specializzati.<\/p>\n<h3 id=\"conclusions\">Conclusioni<\/h3>\n<p>Il tema della velocit\u00e0 del sito \u00e8 ampio e abbraccia molti aspetti dello sviluppo e del supporto di un&#8217;applicazione web: dal codice del server al contenuto. Ci\u00f2 significa che ottenere buoni risultati, \u00e8 impossibile non coinvolgere tutto il team di sviluppo.<\/p>\n<p>La cosa pi\u00f9 importante \u00e8: ricordarti degli utenti, prendendo in considerazione le varie condizioni di utilizzo del sito. L&#8217;accelerazione del sito \u00e8 un processo che si verifica con intensit\u00e0 diverse durante tutto il ciclo di vita del progetto.<\/p>","protected":false},"excerpt":{"rendered":"Tutti sanno che un sito lento non \u00e8 bello. Per questo motivo, diventa problematico risolvere problemi di tutti i giorni. A volte \u00e8 semplicemente noioso. Spesso, un sito lento \u00e8 una vera e propria rottura, tutto questo, comporta il rifiuto del servizio dell&#8217;utente, che non attende il download e va via. Questo \u00e8 importante in&#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\/it\/wp-json\/wp\/v2\/pages\/1063"}],"collection":[{"href":"https:\/\/test.sitechecker.pro\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/test.sitechecker.pro\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/test.sitechecker.pro\/it\/wp-json\/wp\/v2\/users\/10380808"}],"replies":[{"embeddable":true,"href":"https:\/\/test.sitechecker.pro\/it\/wp-json\/wp\/v2\/comments?post=1063"}],"version-history":[{"count":0,"href":"https:\/\/test.sitechecker.pro\/it\/wp-json\/wp\/v2\/pages\/1063\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/test.sitechecker.pro\/it\/wp-json\/wp\/v2\/media\/3348"}],"wp:attachment":[{"href":"https:\/\/test.sitechecker.pro\/it\/wp-json\/wp\/v2\/media?parent=1063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/test.sitechecker.pro\/it\/wp-json\/wp\/v2\/categories?post=1063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/test.sitechecker.pro\/it\/wp-json\/wp\/v2\/tags?post=1063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}