Tutorial

Come ottimizzare la velocità di un sito web: tecniche pratiche

· · Aggiornato · 13 min lettura · 2.674 parole
Come ottimizzare la velocità di un sito web — tecniche pratiche

Un sito lento perde visitatori, posizioni su Google, e vendite. Questa guida ti mostra come misurare la velocità attuale, identificare i colli di bottiglia reali, e applicare le ottimizzazioni con il maggior impatto — dalle immagini alla cache, dal hosting ai Core Web Vitals.

Il tuo sito impiega più di 3 secondi a caricarsi? Stai perdendo più della metà dei tuoi visitatori potenziali prima che vedano qualcosa. La velocità di un sito web non è una questione tecnica astratta — è direttamente collegata al traffico che ricevi da Google, al tasso di conversione dei visitatori, e alla percezione di professionalità del tuo brand. Questa guida ti mostra come misurare, diagnosticare e risolvere i problemi di performance nel modo più efficiente.

Trasparenza

In questo articolo cito anche Nalu Web Agency, con cui collaboro da oltre 8 anni. La conosco da vicino, ed è il motivo per cui ne parlo: tienine conto leggendo il confronto.

53%
degli utenti mobile abbandona un sito che impiega più di 3 secondi a caricarsi, secondo i dati Google/SOASTA.
+7%
di conversioni in media per ogni secondo di riduzione del tempo di caricamento — fonte: Akamai.
2024
è l'anno in cui Google ha completato il passaggio al mobile-first indexing: la velocità mobile è il parametro principale per il ranking.

Come misurare la velocità del sito: gli strumenti giusti

Prima di ottimizzare qualcosa, devi misurarlo. Esistono diversi strumenti per analizzare la velocità di un sito — ognuno con prospettive diverse. Usarli insieme dà un quadro completo.

PageSpeed Insights: il punto di partenza

PageSpeed Insights è lo strumento gratuito di Google che analizza le performance di qualsiasi URL e fornisce un punteggio da 0 a 100 separato per mobile e desktop, insieme a indicazioni specifiche su cosa ottimizzare. La sezione "Opportunità" mostra i miglioramenti con il maggior impatto stimato. La sezione "Diagnostica" dettaglia i problemi tecnici. I dati "Field Data" (quando disponibili) mostrano le performance reali misurate dagli utenti Chrome — più affidabili dei test di laboratorio per capire l'esperienza reale.

Core Web Vitals: le metriche che contano per Google

Google misura la user experience tramite tre metriche chiamate Core Web Vitals: LCP (Largest Contentful Paint) — tempo di caricamento dell'elemento principale della pagina, dovrebbe essere sotto i 2,5 secondi; CLS (Cumulative Layout Shift) — misura quanto gli elementi si spostano durante il caricamento, dovrebbe essere sotto 0,1; INP (Interaction to Next Paint) — reattività agli input dell'utente, dovrebbe essere sotto 200ms. Questi tre valori sono fattori di ranking diretto su Google dal 2021.

GTmetrix e WebPageTest per analisi più profonde

GTmetrix offre waterfall chart dettagliate che mostrano l'ordine e la durata del caricamento di ogni risorsa — utile per identificare risorse bloccanti specifiche. WebPageTest permette di testare da server locati in diverse parti del mondo e con connessioni diverse (3G, 4G, fibra), dando una visione più realistica dell'esperienza degli utenti con connessioni diverse dalla tua.

Ottimizzazione immagini: il guadagno più veloce

Nella maggior parte dei siti web, le immagini non ottimizzate sono responsabili del 50-80% del peso totale della pagina. Ottimizzare le immagini è quasi sempre l'intervento con il miglior rapporto effort/impatto.

Formato WebP: perché e come passarci

Il formato WebP produce immagini di qualità paragonabile a JPEG e PNG ma con dimensioni del file ridotte del 25-35%. È supportato da tutti i browser moderni (Chrome, Firefox, Safari, Edge). Per convertire le immagini esistenti: Squoosh (online, gratuito), ImageOptim (Mac, gratuito), o plugin WordPress come ShortPixel o Imagify che convertono automaticamente durante l'upload. Sui CMS moderni, il tag HTML <picture> con fallback JPG garantisce compatibilità anche sui browser più datati.

Dimensioni corrette: non caricare immagini più grandi del necessario

Un errore frequente è caricare immagini da 3000×2000 pixel per mostrarle in uno slot da 800×500px. Il browser scarica l'immagine intera e poi la ridimensiona via CSS — spreco puro. Le immagini devono essere ridimensionate alle dimensioni massime in cui vengono mostrate, moltiplicato per 2 (per gli schermi retina). Una hero image che occupa tutta la larghezza dello schermo su desktop può andare a 1440×810px — non 4000×2666px.

Lazy loading: caricare solo quello che serve

Il lazy loading ritarda il caricamento delle immagini che sono al di fuori del viewport iniziale dell'utente. Si implementa aggiungendo loading="lazy" al tag <img>. Questa tecnica è supportata nativamente da tutti i browser moderni senza JavaScript aggiuntivo. Attenzione: non applicare lazy loading all'immagine principale (LCP element) — peggiorerebbe il punteggio Core Web Vitals invece di migliorarlo.

Cache: servire i file più velocemente

La cache è un meccanismo che salva copie di risorse già scaricate per non doverle riscaricare ad ogni visita. Implementata correttamente, riduce drasticamente i tempi di caricamento per i visitatori di ritorno e alleggerisce il carico sul server.

Browser cache: HTTP headers

Il browser cache si configura tramite HTTP headers che dicono al browser per quanto tempo conservare una copia locale di ogni tipo di file. File statici come immagini, font e CSS cambiano raramente — possono avere un TTL (Time To Live) di 30-365 giorni. File HTML cambiano più spesso — un TTL di pochi minuti o nessuna cache è più appropriato. Su server Apache, si configura nel file .htaccess; su Nginx, nella configurazione del server.

Plugin di cache per WordPress

Per WordPress, i plugin di cache più efficaci sono: WP Rocket (a pagamento, ~50€/anno, il più completo), W3 Total Cache (gratuito, potente ma complesso da configurare), LiteSpeed Cache (gratuito, ottimo se il hosting usa LiteSpeed come web server). Un plugin di cache ben configurato può ridurre i tempi di caricamento del 40-60% senza toccare una riga di codice.

CDN: avvicinare i file ai tuoi utenti

Un CDN (Content Delivery Network) distribuisce copie dei file statici del sito su server localizzati in tutto il mondo. Quando un utente visita il sito, riceve i file dal server CDN geograficamente più vicino a lui — riducendo la latenza. Cloudflare offre un CDN gratuito che si attiva modificando i nameserver del dominio e migliora le performance anche senza toccare il codice del sito. Per siti con traffico significativo o audience internazionale, un CDN non è opzionale.

CSS e JavaScript: ridurre il blocco del rendering

CSS e JavaScript non ottimizzati possono bloccare il rendering della pagina — l'utente vede una pagina bianca o parziale mentre il browser aspetta di scaricare e processare questi file. Questo è uno dei problemi più comuni che abbassano il punteggio LCP.

Minificazione e concatenazione

La minificazione rimuove spazi, commenti e ritorni a capo dai file CSS e JavaScript senza cambiarne il comportamento, riducendo le dimensioni del 20-40%. La concatenazione unisce più file in uno solo, riducendo il numero di richieste HTTP. Entrambe le tecniche sono automatizzate da plugin WordPress (WP Rocket, Autoptimize) o da tool di build come Webpack, Vite, o Gulp.

Caricamento asincrono e defer del JavaScript

Per default, quando il browser incontra un tag <script> nell'HTML smette di renderizzare la pagina finché il file JS non è scaricato ed eseguito — questo blocca il rendering. Le soluzioni: defer fa scaricare il file in parallelo e lo esegue dopo che l'HTML è stato parsato; async scarica ed esegue il file appena disponibile, senza attendere l'HTML. Per quasi tutto il JavaScript non critico, defer è l'attributo corretto.

Eliminare il CSS inutilizzato

I temi WordPress e i framework CSS come Bootstrap includono migliaia di righe di CSS per funzionalità che probabilmente non usi. Strumenti come PurgeCSS analizzano il sito e rimuovono le regole CSS non utilizzate, riducendo spesso il peso dei file CSS del 70-90%. Su WordPress, plugin come Asset CleanUp permettono di disabilitare selettivamente script e style per pagine specifiche.

Ottimizzazione guidata da professionisti

Se hai già applicato le basi ma il sito rimane lento, spesso il problema è architetturale e richiede un'analisi tecnica approfondita. Marco Bagiacchi offre audit di performance con piano d'azione prioritizzato. Per un approccio integrato su sviluppo e performance, Nalu Web Agency costruisce siti con la performance nel DNA dall'inizio.

Hosting: il fondamento che si trascura

Puoi ottimizzare ogni immagine, minificare ogni file, e configurare la cache alla perfezione — ma se il server che ospita il sito è lento, tutto il resto conta poco. L'hosting è il fondamento della performance.

Come valutare le performance dell'hosting attuale

Il TTFB (Time To First Byte) misura il tempo che passa tra la richiesta della pagina e il momento in cui il browser riceve il primo byte di risposta dal server. Un TTFB sotto i 200ms è ottimo; sopra i 600ms è segnale che il server è lento, sovraccarico, o geograficamente lontano. PageSpeed Insights mostra il TTFB nella sezione diagnostica. Se il tuo TTFB è costantemente alto, il problema non è il codice del sito — è il server.

Quando cambiare hosting

Segnali che è ora di cambiare provider: TTFB costantemente sopra 500ms, downtime frequenti, supporto tecnico lento o incompetente, server in paesi lontani dall'audience principale (un server USA per un sito italiano aggiunge 100-150ms di latenza). I provider con i migliori benchmark di performance per il mercato italiano sono SiteGround (server EU, ottimo TTFB), Kinsta (hosting WordPress managed su Google Cloud), e Cloudways (VPS managed su cloud provider scelto).

Font web: ottimizzare senza sacrificare il design

I font web personalizzati migliorano l'identità visiva ma hanno un costo in performance se non gestiti correttamente. Il caricamento di font da Google Fonts o Adobe Fonts aggiunge richieste HTTP esterne e può causare FOUT (Flash of Unstyled Text) o CLS.

Self-hosting dei font

Ospitare i font direttamente sul proprio server elimina la dipendenza da server esterni, riduce le richieste HTTP e permette di sfruttare la cache locale. Gli strumenti per convertire e ottimizzare i font: Google Webfonts Helper (scarica i font Google in formato WOFF2 ottimizzato), Font Squirrel Webfont Generator. Il formato WOFF2 offre la migliore compressione — usa quello come formato primario con fallback WOFF per browser datati.

Preload dei font critici

Il tag <link rel="preload"> in <head> dice al browser di scaricare il font prima che venga richiesto dal CSS, eliminando il ritardo. Usalo solo sui font critici (quelli visibili above the fold senza scroll) — il preload di troppi font ha l'effetto opposto, creando contesa di banda per le risorse veramente critiche.

LCP: come ottimizzare l'elemento più grande della pagina

Il Largest Contentful Paint (LCP) misura quando l'elemento principale della pagina diventa visibile. Per la maggior parte dei siti, questo elemento è un'immagine hero, un video in evidenza, o un blocco di testo di grandi dimensioni. Ottimizzare l'LCP ha l'impatto più diretto sul punteggio Core Web Vitals.

Identificare l'elemento LCP

Chrome DevTools (scheda Performance, poi analizza il caricamento) evidenzia l'elemento LCP con un riquadro colorato. Spesso è l'immagine header della homepage o l'immagine in evidenza di un articolo. Una volta identificato, la strategia di ottimizzazione è specifica per quel tipo di elemento.

Ottimizzare un'immagine LCP

Se l'LCP element è un'immagine: convertila in WebP, ridimensionala alle dimensioni esatte di visualizzazione, aggiungile fetchpriority="high" (dice al browser di scaricarla prima di tutto il resto), non applicare lazy loading, e considera di pre-caricarla con <link rel="preload">. Queste quattro ottimizzazioni insieme portano quasi sempre l'LCP sotto i 2,5 secondi su siti che partivano da 4-6 secondi.

Performance non è un progetto: è un processo continuo

Un sito ottimizzato oggi può peggiorare domani — ogni aggiornamento di plugin, ogni nuova immagine non compressa, ogni script di terze parti aggiunto abbassa progressivamente le performance. Il monitoraggio regolare è parte dell'ottimizzazione.

Script di terze parti: il nemico nascosto della performance

Ogni script di terze parti che aggiungi al sito — Google Analytics, Facebook Pixel, chat widget, popup di newsletter, heatmap tools — ha un costo in performance. Non sono gratuiti: si pagano in millisecondi di ritardo nel caricamento.

Auditing degli script di terze parti

Fai un inventario di tutti gli script attualmente installati sul sito. PageSpeed Insights mostra l'impatto di ogni script di terze parti nella sezione "Ridurre l'impatto di codice di terze parti". Elimina gli script che non usi attivamente (quante heatmap tool hai installato e mai guardato?). Per quelli essenziali, caricali con defer o in modo asincrono, e considera di caricarli solo dopo l'interazione dell'utente (click, scroll) invece che al caricamento della pagina.

Google Tag Manager: centralizzare per controllare

Se usi più script di tracciamento, Google Tag Manager centralizza la gestione in un unico sistema: aggiungi o rimuovi script senza toccare il codice del sito, puoi ritardare il caricamento di tag non critici, e hai visibilità completa su tutti gli script attivi. Il tradeoff: GTM stesso è uno script con peso proprio (~28KB gzippato) — vale la pena solo se gestisci almeno 3-4 tag diversi.

Checklist completa di ottimizzazione velocità

Ottimizzazioni ad alto impatto — fai subito
  • Converti tutte le immagini in WebP e comprimi sotto 200KB
  • Aggiungi loading="lazy" a tutte le immagini non LCP
  • Installa un plugin di cache (WP Rocket o LiteSpeed Cache)
  • Abilita Cloudflare CDN (gratuito)
  • Verifica il TTFB e valuta il cambio di hosting se >500ms
Ottimizzazioni avanzate — fase 2
  • Minifica CSS e JavaScript
  • Aggiungi defer/async agli script non critici
  • Self-hosting dei font con preload per i critici
  • Rimuovi CSS inutilizzato con PurgeCSS
  • Auditing e riduzione degli script di terze parti

Monitoraggio continuo: non ottimizzare una volta sola

La performance di un sito degrada nel tempo — ogni nuovo plugin, ogni immagine non compressa, ogni script aggiunto abbassa progressivamente i punteggi. Il monitoraggio regolare è l'unico modo per mantenere le ottimizzazioni nel tempo.

Strumenti di monitoraggio automatico

Google Search Console mostra i problemi Core Web Vitals aggregati su dati reali degli utenti — controlla il report ogni mese. Uptime Robot (gratuito) monitora la disponibilità del sito e ti avvisa via email se va offline. SpeedVitals o DebugBear offrono monitoraggio automatico delle performance nel tempo con alert quando i punteggi scendono sotto soglie definite.

Database e query: ottimizzare il backend WordPress

Per i siti WordPress, il database è spesso il collo di bottiglia nascosto che nessuno controlla. Ogni pagina caricata esegue decine di query SQL — se il database è frammentato, sovraccarico di revisioni, o le query non sono ottimizzate, il TTFB sale anche con un hosting eccellente.

Pulire e ottimizzare il database WordPress

Un database WordPress non mantenuto accumula nel tempo: revisioni dei post (ogni salvataggio crea una nuova revisione — su siti attivi da anni possono essere migliaia), commenti spam, transient scaduti, post auto-draft abbandonati. Il plugin WP-Optimize permette di pulire queste voci in un click e di ottimizzare le tabelle del database (equivalente a un OPTIMIZE TABLE SQL). La pulizia regolare — mensile o trimestrale — mantiene il database snello e le query veloci.

Limitare le revisioni in WordPress

Per default WordPress salva un numero illimitato di revisioni per ogni post. Su siti con molti contenuti, questo gonfia il database inutilmente. Aggiungi questa riga al file wp-config.php per limitare le revisioni a 3: define('WP_POST_REVISIONS', 3);. Non impatta il lavoro di editing — puoi ancora tornare alle ultime 3 versioni — ma riduce il peso del database in modo significativo nel tempo.

Object cache: ridurre le query ripetute

L'object cache salva in memoria i risultati delle query database più frequenti, evitando di rieseguirle ad ogni richiesta. Su hosting che supportano Redis o Memcached (SiteGround, Kinsta, Cloudways), un plugin come Redis Object Cache può ridurre il numero di query per pagina del 40-60%. Su hosting shared senza Redis, i plugin di cache a pagina (WP Rocket) implementano un object cache su filesystem che offre benefici simili, anche se meno potenti.

Ottimizzazione video: l'elemento più pesante

I video sono gli elementi più pesanti che si possano inserire in una pagina web. Un video non ottimizzato può da solo rendere inutili tutte le altre ottimizzazioni di performance implementate.

Non ospitare video direttamente sul server

Ospitare file video direttamente sul proprio server e caricarli con il tag <video> è quasi sempre un errore: i file sono enormi, consumano banda del server, non si adattano automaticamente alla connessione dell'utente, e non hanno CDN dedicata. La soluzione corretta è usare piattaforme specializzate: YouTube (gratuito, eccellente per contenuti pubblici, ma aggiunge branded player e suggerimenti), Vimeo (piano base gratuito, player personalizzabile, nessun branding), Cloudflare Stream (a pagamento, ottimale per siti ad alto traffico con video privati).

Lazy load per embed video

Anche incorporare un video YouTube con iframe ha un costo: carica decine di script e risorse di Google anche se l'utente non interagisce mai con il video. La tecnica del lazy facade sostituisce l'iframe con un'immagine di anteprima cliccabile — l'iframe vero e proprio viene caricato solo quando l'utente clicca per riprodurre il video. Su WordPress, il plugin Lyte Embed o una soluzione custom con JavaScript riduce il peso di una pagina con video embedded di 400-600KB.

Dalla teoria alla pratica

Se vuoi applicarlo al tuo progetto, guarda il servizio di dev support e manutenzione: prezzi chiari da 60 €/ora, preventivo gratuito e risposta entro 24 ore.

Domande frequenti

Le risposte alle domande più comuni su questo argomento.

L'obiettivo è un LCP (Largest Contentful Paint) sotto i 2,5 secondi, un CLS (Cumulative Layout Shift) sotto 0,1, e un INP (Interaction to Next Paint) sotto 200ms. Per il tempo di caricamento totale su mobile con connessione 4G, sotto i 3 secondi è il benchmark minimo accettabile — sotto i 2 secondi è ottimo.
Lo strumento principale è PageSpeed Insights (pagespeed.web.dev) — gratuito, fornito da Google, analizza sia mobile che desktop e mostra i Core Web Vitals. Per analisi più dettagliate usa GTmetrix (waterfall chart complete) o WebPageTest (test da diverse localizzazioni geografiche e tipi di connessione).
Le cause più comuni: immagini non ottimizzate (peso eccessivo), troppi plugin attivi (ogni plugin aggiunge CSS e JavaScript), tema pesante con molti builder a layer, hosting lento o condiviso sovraccarico, nessuna cache configurata, script di terze parti che bloccano il rendering. L'analisi con PageSpeed Insights identifica il problema specifico nel tuo caso.
Un plugin di cache migliora significativamente le performance per i visitatori di ritorno e riduce il carico sul server, ma non risolve problemi strutturali come immagini troppo pesanti, hosting lento (TTFB alto), o JavaScript bloccante. È uno degli interventi più efficaci, ma parte di una strategia più ampia.
Per un sito con audience prevalentemente italiana, l'impatto di un CDN è minore rispetto a un sito con audience internazionale — ma c'è comunque. Cloudflare gratuito aggiunge ottimizzazioni automatiche (compressione Brotli, minificazione, cache di risorse statiche) che migliorano le performance anche per utenti vicini al server originale.
Sì, direttamente. I Core Web Vitals (LCP, CLS, INP) sono fattori di ranking confermati da Google dal 2021. Un sito con scarsi Core Web Vitals può perdere posizioni rispetto a competitor con contenuti simili ma performance migliori. L'impatto è più evidente su query competitive dove Google usa la performance come fattore di differenziazione.
Le ottimizzazioni base (immagini, cache, Cloudflare) sono gratuite o quasi — richiedono tempo ma non costi diretti. Un'ottimizzazione professionale completa (audit tecnico, implementazione, test) costa tipicamente tra 300€ e 800€ come progetto una tantum. WP Rocket, il plugin di cache più completo per WordPress, costa circa 50€/anno.
Ogni pagina ha le proprie performance — Google misura le Core Web Vitals su tutte le pagine che ricevono traffico, non solo la homepage. Tuttavia, iniziare dalla homepage e dalle pagine di atterraggio principali è la priorità corretta: hanno il maggior impatto su conversioni e impressioni del brand. Le ottimizzazioni globali (cache, CDN, immagini) si applicano automaticamente a tutte le pagine.

Hai bisogno di aiuto?

Posso aiutarti a mettere in pratica quello che hai letto in questo articolo.

Parliamo del tuo progetto →

Ultimi articoli

Vedi tutti →

I miei servizi

Tutti i servizi →