Cache e CDN: come velocizzare un sito senza impazzire
Ti spiego cache e CDN come li spiego ai miei clienti: niente paroloni, solo quello che serve davvero per un sito più veloce. Con esempi concreti dal mio lavoro quotidiano.
Settimana scorsa un cliente mi chiama: "Alex, il mio sito è lento, mi serve un CDN". Gli chiedo perché, mi risponde che gliel'ha detto il cugino che si intende di computer. Ecco, questo è esattamente il problema: tutti parlano di cache e CDN come se fossero la soluzione magica a tutto, ma pochi sanno davvero cosa sono e quando servono.
Dopo oltre vent'anni che faccio questo mestiere, vi posso dire una cosa: la velocità di un sito è importante, ma complicarsi la vita con tecnologie che non si capiscono è peggio. Quindi facciamo chiarezza, una volta per tutte, con parole normali.
La cache: il cassetto delle cose che usi spesso
Immaginate di avere una cucina. Ogni volta che dovete fare il caffè, aprite la credenza, prendete la moka, il caffè, lo zucchero. Perdete tempo. Oppure, se fate il caffè tutti i giorni (e chi non lo fa?), tenete tutto a portata di mano sul piano di lavoro. Ecco, questa è la cache.
Nel mondo dei siti web funziona uguale. Quando qualcuno visita il vostro sito web, il server deve:
- Leggere il database
- Elaborare il codice PHP
- Generare la pagina HTML
- Inviarla al browser
Ogni. Singola. Volta. È uno spreco.
Con la cache, il server genera la pagina una volta sola e la tiene pronta. Le visite successive? Pagina già pronta, zero lavoro. Il risultato è che un sito che impiegava 2 secondi a caricare scende a 0.3 secondi. La differenza si vede, ve lo garantisco.
Io uso la cache su praticamente tutti i progetti, dai siti vetrina agli e-commerce. Un ristorante di Trento per cui ho fatto il sito aveva tempi di caricamento imbarazzanti: 4-5 secondi. Il problema? Tante foto ad alta risoluzione e zero ottimizzazione. Ho attivato la cache del browser e quella del server, e siamo scesi sotto il secondo. Il proprietario mi ha chiamato convinto che avessi cambiato hosting.
I tipi di cache che uso davvero
Diciamocelo: esistono milioni di tipi di cache, ma nella pratica quotidiana ne uso principalmente tre.
Cache del browser: dici al browser del visitatore "ehi, questa immagine/CSS/JavaScript non cambiano mai, tienili salvati per un mese". Risultato? La seconda visita è istantanea. Su Apache basta un po' di configurazione nel file .htaccess:
# Cache per immagini e asset statici
Header set Cache-Control "max-age=2592000, public"
Niente di trascendentale, ma fa la differenza.
Cache del server (opcode cache): PHP non è il linguaggio più veloce del mondo. Ogni volta che esegue un file, lo deve leggere, interpretare, compilare. Con OPcache (che è incluso in PHP dalla versione 5.5) questo succede una volta sola. È tipo avere gli appunti già pronti invece di riscriverli ogni volta. Su un gestionale che ho realizzato per un'azienda artigiana, attivare OPcache ha ridotto del 60% i tempi di risposta. Sessanta percento. Gratis.
Cache dell'applicazione: questa è quella che gestisco io nel codice. Nei miei progetti Laravel uso Redis per salvare query pesanti, risultati di calcoli complessi, dati che non cambiano spesso. Un esempio? Un gestionale per prenotazioni che sviluppai tempo fa calcolava la disponibilità interrogando migliaia di record. Operazione lenta. Ho cachato il risultato per 5 minuti: stesso dato, ma invece di 2 secondi rispondeva in 50 millisecondi.
Il CDN: quando la distanza conta
Il CDN (Content Delivery Network) è un altro animale. Se la cache è il cassetto delle cose che usi spesso, il CDN è avere lo stesso cassetto in più case sparse per il mondo.
Funziona così: invece di avere il vostro sito su un unico server (diciamo a Milano), avete copie dei file statici (immagini, CSS, JavaScript) su server in tutto il mondo. Un visitatore da Tokyo? Prende i file dal server più vicino a lui, non da Milano. Più veloce, meno latenza.
Il punto è: vi serve davvero? Nella mia esperienza, dipende.
Un e-commerce locale che vende solo in Italia non ha bisogno di un CDN globale. Un sito con 50 visitatori al giorno non lo nota neanche. Ma un progetto con traffico internazionale o con molte immagini pesanti? Lì sì che fa la differenza.
Io uso Cloudflare per la maggior parte dei miei progetti, anche quelli piccoli. Perché? Piano gratuito, facile da configurare, e oltre al CDN offre protezione DDoS e certificato SSL automatico. Per un'associazione culturale qui in Trentino ho attivato Cloudflare e il sito è diventato più veloce del 40% senza che io toccassi una riga di codice. Praticamente magia.
Quando cache e CDN non bastano
Però attenzione: cache e CDN non sono la bacchetta magica. Se il vostro sito è lento perché avete 50 plugin WordPress inutili, 10 MB di immagini non ottimizzate per pagina, e un tema scrauso pieno di JavaScript, nessun CDN vi salverà.
L'ho visto troppe volte: gente che spende soldi in CDN premium mentre il vero problema è un database non indicizzato o immagini da 5000x4000 pixel caricate direttamente dalla fotocamera. È come comprare un motore turbo per un'auto con le ruote sgonfie.
Prima ottimizzate il codice, poi le immagini, poi il database. Solo dopo pensate a cache e CDN. Io seguo sempre questo ordine, e di solito arrivo a risultati ottimi senza neanche dover toccare il CDN.
Come lo spiego ai clienti (e cosa faccio davvero)
Quando un cliente mi chiede di velocizzare il sito, parto sempre dall'analisi. Uso PageSpeed Insights di Google e GTmetrix per capire dove sono i colli di bottiglia. Nove volte su dieci il problema è evitabile con modifiche semplici.
Il mio approccio:
- Ottimizzazione delle immagini (WebP, compressione, lazy loading)
- Minificazione di CSS e JavaScript
- Attivazione della cache del browser e del server
- Solo se serve: CDN
Con questo metodo un sito vetrina di una parrucchiera di Trento è passato da un punteggio PageSpeed di 45 (pessimo) a 92 (ottimo) in un pomeriggio di lavoro. Niente CDN, solo buon senso e ottimizzazioni mirate.
Il mio consiglio pratico
Se avete un sito WordPress, installate un plugin di cache come WP Rocket o W3 Total Cache (quest'ultimo è gratuito). Attivate la cache del browser, quella delle pagine, e la minificazione. Già questo vi porta lontano.
Per il CDN, se siete agli inizi, partite con Cloudflare piano free. Non pagate nulla, configurate in 10 minuti, e vedete se fa differenza. Se il vostro traffico è prevalentemente italiano e il sito già carica in meno di 2 secondi, probabilmente non serve neanche.
Ma se avete un progetto complesso, tante immagini, traffico internazionale, allora sì: cache e CDN diventano strumenti essenziali. L'importante è capire quando usarli, non installarli a caso perché "lo fanno tutti".
Sono oltre vent'anni che lavoro su questi temi, tra siti web e progetti software personalizzati. Se avete dubbi, se il vostro sito è lento e non sapete da dove partire, scrivetemi. Vi spiego cosa serve davvero per il vostro caso specifico, senza vendervi soluzioni che non vi servono. A volte basta davvero poco per fare la differenza.
Ti serve aiuto con questo argomento?
Sono disponibile per consulenze, sviluppo e supporto tecnico. Contattami per discutere il tuo progetto.
Servizi correlati
Articoli correlati
Cache e CDN: velocizzare senza impazzire
Ti spiego con parole semplici come funzionano cache e CDN, quando servono davver...
Ho perso tutto una volta: da quel giorno backup ogni sera
Una mattina di novembre il database non c'era più. Quello che ho imparato quel g...
Alle 3 di notte: quando un cliente mi chiama per un hack
La telefonata che nessun sviluppatore vuole ricevere. Storia vera di un sito com...