Cos'è una CDN: significato, perché usarla e come collegarla a WordPress

Ambiente di test Famiglia RHELAlmaLinux 9.8Verificato il 2026-10-16

Una CDN (Content Delivery Network) è una rete di distribuzione dei contenuti che salva i file del server di origine su server edge in più regioni e risponde dal server più vicino al visitatore. Per vedere se i server edge rispondono dalla cache abbiamo controllato le intestazioni di risposta di un servizio pubblico di distribuzione di librerie come jsDelivr: il file di jQuery veniva servito da una copia in cache. I due modi per collegare WordPress, la sostituzione degli URL dei file e il proxy DNS, li abbiamo confrontati in base alla documentazione ufficiale.

1️⃣ Significato di CDN: server edge e server di origine

Un POP (Point of Presence) è il data center che ospita i server edge, e la richiesta del visitatore viene inoltrata al POP più vicino.

Il server edge che riceve una richiesta risponde subito se ha il file salvato; altrimenti prende il file dal server di origine, risponde e lo salva sul server edge. CloudFront, la CDN di AWS, inizia la consegna al visitatore appena arriva il primo byte dal server di origine (secondo la documentazione ufficiale di AWS).

Server edge della CDN e server di origine

Sui server edge vengono salvati solo i file richiesti dai visitatori, quindi anche per lo stesso file la prima richiesta su ogni server edge arriva fino al server di origine.

Prendere i file quando arriva una richiesta, come in questo caso, si chiama metodo pull; esiste anche il metodo push, in cui carichi i file sulla CDN in anticipo.

2️⃣ Perché usare una CDN: distanza e carico del server di origine

Più il visitatore e il server sono lontani, più si allunga il tempo di andata e ritorno (RTT) di ogni richiesta. Aprendo una pagina partono, oltre all'HTML, anche le richieste di immagini, CSS e JavaScript, quindi se risponde un server edge vicino il tempo di andata e ritorno si accorcia per ogni richiesta.

Le richieste a cui risponde un server edge non arrivano al server di origine, così calano anche l'uso della CPU e il traffico (larghezza di banda) del server di origine. Se colleghi il DNS tramite il proxy di Cloudflare, l'IP del server di origine non viene esposto e gli attacchi DDoS vengono bloccati prima dalla CDN (secondo la documentazione ufficiale di Cloudflare).

Per un sito i cui visitatori si trovano nella stessa regione del server di origine, il vantaggio della distanza è piccolo. Per questi siti, il vantaggio maggiore di una CDN non è ridurre il tempo di risposta ma alleggerire il carico del server di origine e risparmiare traffico.

3️⃣ File messi in cache: file statici e HTML

Con le impostazioni predefinite, Cloudflare mette in cache solo file statici come immagini, CSS e JavaScript, individuati in base all'estensione (secondo la documentazione ufficiale di Cloudflare). L'HTML delle pagine e il JSON sono esclusi dalla cache predefinita, quindi anche dopo aver collegato Cloudflare risponde ancora il server di origine.

Per mettere in cache anche l'HTML devi creare a parte una regola di cache sulla CDN. In questo caso escludi dalla regola le pagine il cui contenuto cambia da persona a persona, come quelle degli utenti connessi o il carrello, così da evitare che si mescoli la schermata di un altro visitatore.

4️⃣ Collegamento a WordPress: sostituzione degli URL dei file e proxy DNS

Per collegare una CDN a WordPress sostituisci solo gli URL dei file statici con quelli della CDN, oppure imposti il DNS del dominio sul proxy della CDN in modo che tutte le richieste passino dalla CDN.

ModalitàDove si collegaRichieste che passano dalla CDNIP del server di origine
Sostituzione degli URL dei fileInserire l'indirizzo della CDN (CNAME) nelle impostazioni CDN del plugin di cacheFile statici come immagini, CSS e JavaScriptResta pubblico
Proxy DNSCollegare i record DNS del dominio al proxy della CDNTutte le richieste HTTP e HTTPS del sitoNascosto dietro la CDN

Con il metodo di sostituzione degli URL dei file, nelle impostazioni CDN di un plugin di cache come WP Rocket inserisci l'indirizzo (CNAME) fornito dal provider della CDN. Una volta inserito, gli URL di immagini, CSS e JavaScript nell'HTML della pagina diventano quelli della CDN (secondo la documentazione ufficiale di WP Rocket). L'HTML continua a essere servito dal server di origine.

Schermata delle impostazioni di WP Rocket: Other CDN nella scheda Content Delivery, l'interruttore Your CDN e la riga CDN CNAME(s)
Nella scheda [Content Delivery] di [Impostazioni › WP Rocket], aprendo [Other CDN] compare la riga [CDN CNAME(s)] in cui inserire l'indirizzo della CDN. Inserisci l'indirizzo della CDN e attiva l'interruttore [Your CDN] in alto per far passare gli URL dei file all'indirizzo della CDN; se hai più indirizzi, aggiungi righe con [+ Add CNAME].

Con il metodo del proxy DNS, il DNS del dominio viene gestito dal provider della CDN. Cloudflare offre anche un modo per collegare il proxy senza spostare i nameserver, aggiungendo solo record CNAME presso il tuo provider DNS attuale. Questo metodo è disponibile solo dai piani Business in su (secondo la documentazione ufficiale di Cloudflare).

5️⃣ Controllare i cache hit: le intestazioni cf-cache-status e age

Per sapere se la CDN ha servito un file dalla cache si guardano le intestazioni di risposta. Qui sotto trovi il comando con cui abbiamo controllato le intestazioni di risposta del file di jQuery distribuito da jsDelivr e il risultato.

curl -sI https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js | grep -iE "^(cache-control|cf-cache-status|age|server):"
cache-control: public, max-age=31536000, s-maxage=31536000, immutable
age: 45920
cf-cache-status: HIT
server: cloudflare

[server: cloudflare] indica che questa risposta è stata inviata da un server edge di Cloudflare, e [cf-cache-status: HIT], aggiunto da Cloudflare, significa che la risposta arriva dalla cache. [age: 45920] indica che il file è in cache da circa 12 ore e 45 minuti. [max-age=31536000] è l'istruzione del server di origine secondo cui il file può essere conservato per 1 anno.

Per vedere fin dove arriva la richiesta quando il valore è [MISS], [DYNAMIC] o [BYPASS] invece di [HIT], premi i pulsanti dei valori nel diagramma qui sotto.

🧩 cf-cache-status Dove va la richiesta per ogni valore
Diagramma esplicativo
📨 cf-cache-status
🧑‍💻 Visitatore
Intestazione di risposta ricevutacf-cache-status: HITcf-cache-status: MISScf-cache-status: DYNAMICcf-cache-status: BYPASS
Risposta diretta dalla cacheRisposta con il file presoRisposta dell'origine inoltrataRisposta dell'origine inoltrata→
🌐 Server edge vicino (POP)
💾 CacheFile salvato presenteNessun file salvato, file preso viene salvatoFuori dalla cache (HTML), nessun controlloMemorizzabile ma non salvato
Server vicino al visitatore
Non arriva al server di originePrende il fileInoltrata senza controllo della cachePrende il file→
🖥️ Server di origine
Nessuna richiestaRisponde con il fileRisposta HTMLHeader di risposta Cache-Control: no-store o private
[cf-cache-status: HIT] significa che il server edge ha risposto direttamente dalla cache; questa richiesta non arriva al server di origine.
Un file che non era in cache ed è stato preso dal server di origine viene indicato come [MISS], e il server edge salva quel file mentre risponde.
L'HTML escluso dalla cache, e quindi inoltrato al server di origine senza controllare la cache, viene indicato come [DYNAMIC].
Se la risposta del server di origine contiene l'istruzione [Cache-Control: no-store] o [private], anche un file memorizzabile viene indicato come [BYPASS] e non viene salvato.

🔢 FAQ & contenuti consigliati

L'hosting web è il server con i file originali e il database del sito, mentre la CDN è una rete davanti a esso che risponde con copie dei file. Anche con una CDN collegata, il server di origine resta necessario.

Varnish salva le risposte in un solo punto davanti al server di origine, mentre una CDN fa lo stesso lavoro su server edge in molti luoghi del mondo. Le intestazioni di risposta della CDN ufficiale di jQuery (code.jquery.com) contengono [via: 1.1 varnish, 1.1 varnish]. Da questa intestazione puoi verificare che il server edge di code.jquery.com ha risposto passando da Varnish.

Con la funzione di svuotamento della cache (Purge) nel pannello della CDN elimini URL specifici o l'intera cache. Alcuni plugin di cache per WordPress svuotano anche la cache della CDN collegata quando modifichi un articolo.

ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.