Cloudflare cache: ottimizzazione del TTL per massime performance

Cloudflare cache: ottimizzazione del TTL per massime performance

L'ottimizzazione della cache su Cloudflare ruota intorno al concetto di TTL (Time To Live), il tempo in cui un contenuto resta valido nelle copie distribuite sull'edge e nel browser dei visitatori. Configurare correttamente Edge Cache TTL e Browser Cache TTL può ridurre del 70-90% le richieste verso l'origine, abbattere il tempo di risposta e migliorare il punteggio sui Core Web Vitals di Google.

Differenza tra Edge e Browser TTL

Edge Cache TTL determina quanto a lungo i 300+ data center di Cloudflare conservano una risorsa prima di richiederla nuovamente all'origine. Browser Cache TTL invece imposta l'header Cache-Control inviato al browser dell'utente: una volta scaduto, il browser farà una nuova richiesta verso l'edge (non necessariamente verso l'origine). La combinazione corretta dei due valori permette di servire contenuti istantaneamente sia da edge che da local cache.

Procedura passo-passo

  1. Vai su Caching → Configuration nel dashboard Cloudflare.
  2. Imposta Browser Cache TTL globale a 4 ore come baseline ragionevole.
  3. Crea una Page Rule o Cache Rule per pattern *tuosito.it/wp-content/* con Edge Cache TTL: 1 month.
  4. Per i CSS/JS versionati (con hash nel nome) imposta Edge Cache TTL: 1 year.
  5. Per HTML usa Edge Cache TTL: 2 hours combinato con Bypass on cookie per utenti loggati.
  6. Verifica con curl -I gli header CF-Cache-Status (HIT, MISS, EXPIRED, BYPASS).
  7. Monitora il pannello Cache Analytics per misurare hit ratio.
  8. Implementa Tiered Cache dalla scheda Caching per concentrare le richieste origine.
  9. Per siti dinamici considera Cache Reserve (paid) come storage di lungo periodo.
  10. Esegui Purge Everything dopo deploy importanti.

Valori TTL consigliati per tipo di contenuto

Per CSS, JS e font versionati: Edge 1 anno, Browser 1 anno. Per immagini: Edge 1 mese, Browser 1 settimana. Per HTML statico: Edge 2 ore, Browser 30 minuti. Per HTML dinamico con cookie utente: Bypass (no cache) ma considera Cache Everything con bypass on cookie per servire visitatori anonimi dalla cache. Per API: bypass salvo endpoint stateless cacheabili (con header esplicito).

Header Cache-Control e sovrascritture

Cloudflare rispetta gli header Cache-Control inviati dall'origine, salvo override esplicito tramite Page Rule. Se l'origine invia Cache-Control: no-cache, Cloudflare non cacherà nulla, indipendentemente da Edge Cache TTL impostato. Per forzare la cache anche su HTML che il CMS marca come no-cache, devi creare una regola con Cache Level: Cache Everything e Edge Cache TTL esplicito.

Errori comuni e come risolverli

  • Hit ratio basso (<50%): probabilmente HTML non cachato. Crea regola Cache Everything per pagine pubbliche.
  • Contenuti vecchi serviti dopo deploy: TTL troppo aggressivo. Usa Purge by URL o cache key versioning.
  • CF-Cache-Status DYNAMIC sempre: l'origine invia no-cache o set-cookie. Override con Page Rule.
  • Utenti loggati vedono cache anonima: manca Bypass Cache on Cookie. Aggiungilo subito.
  • Browser cache troppo lunga blocca aggiornamenti: usa asset versioning (filename con hash) e mantieni TTL elevato.

Tiered Cache e Argo

Tiered Cache è una feature gratuita che organizza i data center Cloudflare in due livelli: edge locali e upper-tier centralizzati. Quando un'edge locale ha un MISS, prima di tornare all'origine consulta un'upper-tier che probabilmente ha già la copia. Questo aumenta sensibilmente il cache hit ratio, riducendo il carico sull'origine. Argo Smart Routing è la versione a pagamento che aggiunge intelligenza nel percorso verso l'origine.

Cache Rules vs Page Rules

Cloudflare ha introdotto Cache Rules come evoluzione delle Page Rules per la sola gestione cache. Offrono pattern più ricchi (filtering per header, cookie, query string), maggiore numero di regole anche su Free e syntax migliorata. Per nuove configurazioni è consigliabile usare Cache Rules invece di Page Rules. Le regole esistenti possono coesistere temporaneamente.

Domande frequenti

D: Qual è il massimo Edge Cache TTL?
R: 1 anno (31536000 secondi) sul piano Free, fino a 30 giorni di default ma estendibile.

D: Posso forzare HIT anche per URL con query string?
R: Sì, con Cache Deception Armor attento o tramite Cache Key custom su piano Enterprise.

D: Quanto tempo richiede un Purge Everything?
R: Tipicamente 30 secondi per propagarsi globalmente.

D: La cache funziona anche con cookie di sessione?
R: Sì, ma serve configurare Cache Key per ignorare i cookie non rilevanti.

Considerazioni operative finali

Quando applichi una configurazione di questo tipo in produzione è sempre buona norma seguire un'approccio incrementale: parti con un test su staging, monitora gli effetti per qualche giorno, poi estendi gradualmente al traffico live. La rete Cloudflare elabora ogni cambiamento in pochi secondi a livello globale, quindi le modifiche sono effettive quasi immediatamente, ma gli effetti collaterali su utenti reali possono richiedere ore o giorni per emergere. Annota nel runbook interno data, motivo e parametri di ogni modifica significativa. Una documentazione precisa accelera enormemente il troubleshooting futuro e facilita il passaggio di consegne tra membri del team.

Vale anche la pena ricordare che Cloudflare aggiorna frequentemente l'interfaccia del dashboard e le posizioni delle voci di menu. La logica e le funzionalità descritte in questa guida restano valide, ma il percorso esatto per raggiungere ogni opzione può variare leggermente nel tempo. In caso di difficoltà a trovare una specifica voce, utilizza la barra di ricerca interna del dashboard oppure consulta la documentazione ufficiale aggiornata. La community Cloudflare sul forum ufficiale e su Stack Overflow è inoltre molto attiva e offre spesso risposte rapide a problemi specifici di configurazione.

Per progetti complessi che coinvolgono più servizi Cloudflare contemporaneamente (CDN, Workers, WAF, Access, R2) conviene strutturare la configurazione come codice tramite Terraform o Pulumi. Questo permette versioning, code review, rollback atomici e deploy ripetibili tra environment. Per team con esigenze più semplici la gestione manuale via dashboard resta perfettamente valida, soprattutto se accompagnata da una checklist scritta delle impostazioni applicate. La scelta dell'approccio dipende dalle dimensioni del progetto e dal grado di automazione desiderato. L'importante è essere consistenti e mantenere tracciabilità delle modifiche effettuate.

Hai bisogno di aiuto?

Se vuoi configurare Cloudflare per il tuo sito con il team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?