cloudflare conferma bug cls matrice digitale fix

ESCLUSIVA – Cloudflare conferma il bug CLS scoperto da Matrice Digitale: fix già pronto

🔎 Key findings

  • Cloudflare ha confermato a Matrice Digitale che il beacon Web Analytics arrotonda erroneamente il CLS attraverso Math.ceil(), trasformando valori frazionari positivi in 1.
  • Il team di engineering ha già preparato una correzione che risulta in attesa di distribuzione nell’ambiente di produzione Cloudflare.
  • I dati CLS raccolti durante il periodo interessato restano artificialmente gonfiati e, secondo il supporto, non potranno essere corretti retroattivamente.

Cloudflare ha confermato il bug del Cumulative Layout Shift individuato e segnalato da Matrice Digitale nel beacon di Web Analytics. Dopo l’analisi tecnica pubblicata il 31 agosto, il supporto dell’azienda ha verificato direttamente il comportamento del codice, riprodotto l’anomalia e riconosciuto che la diagnosi fornita dalla testata era corretta. Il problema riguarda l’applicazione di Math.ceil() ai Core Web Vitals durante la costruzione del payload: una trasformazione tollerabile per metriche temporali espresse in millisecondi, ma distruttiva per CLS, che è invece un valore frazionario. Cloudflare ha inoltre comunicato che il fix è già stato preparato dal team di engineering ed è in attesa di rilascio in produzione.

Cloudflare verifica la segnalazione e conferma il bug nel beacon

Annuncio

La vicenda parte dall’analisi tecnica pubblicata da Matrice Digitale il 31 agosto, nella quale era stato isolato un comportamento anomalo del JavaScript pubblico utilizzato da Cloudflare Web Analytics. Il beacon identificato internamente come versione 2026.8.4 riceveva correttamente il valore decimale del CLS ma, nella fase successiva di preparazione del payload WebVitalsV2, applicava Math.ceil() al campo value delle metriche. Il risultato era deterministico: 0.003 diventava 1, esattamente come 0.05, 0.1, 0.25 o 0.999. Dopo la segnalazione inviata a Cloudflare con versione del beacon, frammento di codice, comportamento osservato e casi di test, il supporto ha eseguito una propria verifica. Nella risposta inviata alla redazione, Cloudflare afferma di avere scaricato e analizzato lo script live, riprodotto il comportamento utilizzando valori CLS di prova e controllato anche la configurazione della zona interessata. La conclusione è esplicita: la diagnosi fornita da Matrice Digitale è stata confermata e la configurazione del sito non è responsabile dell’anomalia. Il passaggio è rilevante perché elimina il principale margine di incertezza rimasto dopo la prima analisi. Il 31 agosto era possibile dimostrare tecnicamente che il codice pubblico applicasse l’arrotondamento e che questo producesse risultati incompatibili con la semantica del CLS; non era invece possibile stabilire dall’esterno se quella trasformazione fosse una scelta intenzionale, una peculiarità della pipeline o un effettivo difetto riconosciuto dal produttore. Cloudflare ora lo classifica come bug di prodotto. La documentazione ufficiale continua del resto a descrivere CLS come uno score, a differenza di LCP e INP espressi in millisecondi, e specifica che Web Analytics raccoglie questi valori attraverso il proprio beacon JavaScript.

Leggi anche: Esclusiva Matrice Digitale: bug Cloudflare può trasformare un CLS di 0,003 in 1

Il problema è Math.ceil applicato indiscriminatamente anche al CLS

La conferma di Cloudflare coincide esattamente con il punto tecnico individuato durante l’analisi. Il beacon applica Math.ceil() alle metriche Core Web Vitals prima dell’invio del payload. Una funzione ceiling restituisce il più piccolo numero intero maggiore o uguale al valore ricevuto: 209.2 diventa 210, 15.1 diventa 16, ma anche 0.003 diventa inevitabilmente 1. Per una metrica temporale l’arrotondamento determina una perdita relativamente modesta di precisione; per il Cumulative Layout Shift, invece, distrugge quasi completamente l’informazione contenuta nel dato. Cloudflare utilizza infatti CLS per descrivere la stabilità visiva della pagina e la propria documentazione mostra esplicitamente valori decimali, arrivando a utilizzare 0.001 come esempio di CLS trasmesso dal RUM beacon. Questo spiega anche la caratteristica che aveva fatto scattare l’indagine: percentili P50, P75, P90 e P99 concentrati sul valore 1, senza una distribuzione intermedia coerente con il comportamento reale delle pagine. Un sito con CLS di 0.003 e uno con CLS di 0.9 possono così produrre lo stesso valore trasformato. La conseguenza operativa è molto più importante di una semplice imprecisione statistica. Un webmaster che osserva un CLS pari a 1 può iniziare a modificare CSS, advertising, CMP, dimensioni delle immagini, font, JavaScript o struttura del tema, cercando un enorme layout shift che in realtà non esiste. Nel caso analizzato da Matrice Digitale, proprio il confronto tra dashboard, codice pubblico del beacon e misurazioni indipendenti aveva permesso di evitare interventi inutili sul sito.

Il supporto riconosce il merito della diagnosi e il fix passa all’engineering

La corrispondenza con Cloudflare mostra anche un percorso di escalation particolarmente rapido. In una prima risposta, il supporto ha comunicato di avere verificato l’analisi e di averla inoltrata al team di escalation per stabilire definitivamente se il comportamento fosse intenzionale o costituisse un bug. Nel messaggio successivo la posizione diventa definitiva: “Your diagnosis is spot on”, scrive il tecnico, confermando che il beacon Web Analytics applica erroneamente Math.ceil() ai valori CLS durante la costruzione del payload. Cloudflare ringrazia inoltre esplicitamente per il lavoro svolto nel rintracciare e documentare l’anomalia. Non si tratta quindi soltanto di una segnalazione generica inviata all’assistenza e presa in carico, ma di un caso nel quale l’analisi tecnica esterna ha permesso di isolare un difetto successivamente riprodotto e riconosciuto dal produttore. Secondo quanto comunicato alla redazione, il team di engineering ha già preparato una correzione e il fix è “pending release”, quindi in attesa di essere distribuito nell’ambiente di produzione. Al momento della risposta non è stata fornita una data pubblica precisa per il rollout. Anche il changelog ufficiale del beacon Cloudflare non registra ancora una correzione specifica relativa a Math.ceil() e CLS: l’ultimo aggiornamento riportato riguarda il 20 agosto 2026, quando Cloudflare ha aggiornato la libreria Google web-vitals alla versione 6.1.0 e aggiunto miglioramenti per le soft navigation.

È importante mantenere separati i due fatti. La presenza del bug è ora confermata da Cloudflare, ma non esistono elementi sufficienti per attribuirne l’origine all’aggiornamento del 20 agosto. La prima analisi di Matrice Digitale aveva già escluso questa scorciatoia interpretativa: la libreria web-vitals produce correttamente valori CLS frazionari, mentre la trasformazione osservata avviene successivamente nella pipeline del beacon Cloudflare. La risposta del supporto rafforza precisamente questa ricostruzione.

Nessuna modifica al sito: il CLS visualizzato è artificialmente gonfiato

Uno dei chiarimenti più importanti forniti da Cloudflare riguarda gli interventi che i clienti devono compiere. La risposta è netta: nessuna modifica è richiesta al sito per correggere questo specifico problema. Il supporto precisa che non è necessario intervenire sul tema WordPress, sui CSS, sulle posizioni pubblicitarie o sulle altre configurazioni della pagina, perché i valori anomali osservati nella dashboard sono prodotti dall’errore di arrotondamento e non rappresentano automaticamente la reale stabilità visiva dell’esperienza utente.

È precisamente la cautela indicata nella prima analisi di Matrice Digitale. Il CLS resta naturalmente una metrica reale e un sito può avere problemi autentici dovuti a immagini prive di dimensioni riservate, annunci che modificano il layout, banner tardivi, font o componenti caricati dopo il rendering. La scoperta del bug non significa quindi che ogni valore CLS elevato debba essere ignorato. Significa invece che la dashboard Cloudflare interessata dal difetto non può essere utilizzata come prova sufficiente per diagnosticare il problema, soprattutto quando restituisce l’anomalo valore intero 1. Cloudflare stessa presenta Web Analytics come una piattaforma RUM che raccoglie metriche dagli utenti reali e consente di analizzare LCP, INP e CLS attraverso percentili e Debug View.

Fino alla distribuzione della correzione, il supporto suggerisce di utilizzare strumenti esterni come Google Search Console, PageSpeed Insights o Lighthouse per verificare la stabilità reale delle pagine. Il principio è lo stesso già applicato nella case history tecnica di MatriceDigitale.it su Cloudflare, server, CSS e analisi dei log: un dato proveniente da una dashboard deve essere confrontato con il livello tecnico che lo genera prima di trasformarlo in una modifica infrastrutturale.

I dati storici raccolti durante il bug non saranno recuperabili

La parte meno favorevole della risposta riguarda lo storico. Cloudflare comunica che, una volta distribuito il fix, la dashboard inizierà automaticamente a raccogliere e mostrare nuovi valori CLS corretti, ma i dati registrati mentre il bug era attivo non potranno essere corretti retroattivamente. Questo significa che la serie storica prodotta nel periodo interessato continuerà a contenere valori artificialmente gonfiati e non potrà essere utilizzata come una normale baseline per confrontare l’evoluzione delle prestazioni. Il dettaglio ha conseguenze concrete per chi utilizza Cloudflare Web Analytics per attività di monitoraggio professionale. Un grafico storico può contenere una discontinuità che non corrisponde a un reale cambiamento del sito, ma al momento nel quale il beacon ha iniziato o smesso di applicare la trasformazione errata. Finché Cloudflare non fornirà una cronologia precisa delle build coinvolte, non è possibile stabilire con certezza da quale giorno tutti i dati CLS eventualmente alterati debbano essere considerati inaffidabili. La versione osservata e riprodotta da Matrice Digitale era la 2026.8.4, ma versione individuata, data di introduzione del bug e intervallo dei dati contaminati restano questioni distinte. La perdita dello storico evidenzia inoltre un limite tipico dei sistemi di Real User Monitoring: quando una trasformazione errata avviene prima che il dato venga memorizzato nella sua forma utile, un successivo aggiornamento del software non può necessariamente ricostruire l’informazione originaria. La documentazione Cloudflare conferma che il beacon raccoglie direttamente nel browser le metriche di performance e invia i dati attraverso gli endpoint RUM destinati all’elaborazione. Una volta sostituito il valore frazionario con l’intero attraverso Math.ceil(), il numero originale non è più ricavabile dal solo valore trasformato: da un CLS memorizzato come 1 non è possibile sapere se la sessione originaria avesse prodotto 0.003, 0.09, 0.24 oppure 0.91.

Continua con:

Da un valore impossibile a un bug confermato dal produttore

La sequenza del caso è lineare. Matrice Digitale osserva un’anomalia nella dashboard Cloudflare, evita di attribuirla automaticamente al sito, ispeziona il beacon pubblico, individua Math.ceil(), riproduce localmente il comportamento, pubblica i risultati e trasmette la diagnosi al produttore. Cloudflare verifica indipendentemente il codice, conferma il difetto e prepara una correzione. È esattamente il percorso che dovrebbe distinguere una segnalazione tecnica da una semplice impressione basata sull’interfaccia di una piattaforma. Il risultato più importante non è soltanto il riconoscimento ottenuto dalla testata, ma la correzione di un errore capace di condizionare l’interpretazione dei Core Web Vitals da parte di webmaster, sviluppatori ed editori che utilizzano Web Analytics. Un CLS artificiosamente portato a 1 può far apparire pessima una pagina stabile e indirizzare ore di debugging verso componenti innocenti. La risposta rapida di Cloudflare merita quindi di essere registrata insieme al bug: l’azienda ha preso in carico una segnalazione esterna documentata, l’ha riprodotta, ne ha riconosciuto la correttezza e ha già portato il fix nel processo di rilascio. Resta ora un ultimo elemento da verificare pubblicamente: quando la nuova versione del beacon entrerà effettivamente in produzione e quale sarà il primo intervallo di dati nuovamente affidabile. Fino ad allora, i valori CLS interessati devono essere interpretati con cautela e confrontati con strumenti indipendenti. Quello che il 31 agosto era un bug dimostrato nel codice è, dal 1° settembre, un bug Cloudflare confermato dalla stessa Cloudflare.

Iscriviti alla Newsletter

Non perdere le analisi settimanali: Entra nella Matrice Digitale.

Matrice Digitale partecipa al Programma Affiliazione Amazon EU. In qualità di Affiliato Amazon, ricevo un guadagno dagli acquisti idonei. Questo non influenza i prezzi per te.

Torna in alto