Insight
La performance web come disciplina ingegneristica
Di Alajdin Fetahi, Fondatore e amministratore delegato4 min di lettura
Web Performance, Core Web Vitals, Engineering Practice, CI/CD

La performance è una metrica di prodotto
La maggior parte dei team tratta la performance web come un esercizio una tantum: un audit prima del lancio, uno sprint di correzioni quando qualcuno si lamenta, poi il silenzio fino alla prossima escalation. Questo modello fallisce in modo prevedibile, perché la performance non è uno stato che si raggiunge — è una proprietà che si difende con continuità o si perde gradualmente. Ogni aggiornamento di dipendenza, ogni script di marketing e ogni nuova funzionalità aggiungono peso, e questa deriva non si annuncia mai da sola se nessuno ha costruito l'allarme.
I team che restano veloci trattano i Core Web Vitals come trattano il tasso di conversione o gli error budget: come metriche di prodotto con responsabili, obiettivi e conseguenze. Questo cambio di prospettiva — da questione cosmetica a disciplina ingegneristica — è l'intero argomento di questo articolo.
Leggere correttamente i Core Web Vitals
I Core Web Vitals misurano ciò che gli utenti sperimentano davvero: Largest Contentful Paint (LCP) per il caricamento, Interaction to Next Paint (INP) per la reattività e Cumulative Layout Shift (CLS) per la stabilità visiva. Due dettagli contano più degli acronimi.
- Le soglie sono soglie sul campo — LCP ≤ 2,5 s, INP ≤ 200 ms, CLS ≤ 0,1 — ciascuna valutata al 75º percentile degli utenti reali, non su una macchina di sviluppo collegata al Wi-Fi dell'ufficio.
- Gli strumenti di laboratorio come Lighthouse sono riproducibili ma sintetici; i dati sul campo riflettono dispositivi, reti e sessioni reali. Una pagina può ottenere 95 in laboratorio e fallire comunque l'INP per gli utenti con telefoni di fascia media.
Il requisito del p75 è la parte che i vertici aziendali sottovalutano più spesso: significa che un quarto del Suo traffico può legittimamente essere più lento del numero che riporta. Ottimizzare la mediana abbellisce la dashboard mentre gli utenti più lenti — spesso proprio quelli con i dispositivi che i Suoi clienti possiedono davvero — abbandonano in silenzio.
I budget trasformano le intenzioni in vincoli
Un performance budget converte «la velocità ci sta a cuore» in un numero che la build può far rispettare: un peso JavaScript per rotta, un tetto di byte per le immagini, un LCP massimo su un dispositivo di riferimento con rete limitata. Le cifre esatte contano meno di tre proprietà.
- I budget vivono nel repository, versionati accanto al codice che vincolano — non in una presentazione.
- Vengono allocati per rotta, perché una pagina marketing e una dashboard ricca di dati hanno legittimamente pesi diversi.
- Superarne uno è un fallimento della build con un responsabile designato, non una metrica che qualcuno rivede ogni trimestre.
Una volta che un budget esiste, le conversazioni sulla performance cambiano natura. «Possiamo aggiungere questo tag di analytics?» diventa un compromesso con un prezzo visibile, negoziato prima del merge invece che scoperto in produzione.
Bloccare le regressioni in CI, dove costano poco
Una regressione di performance intercettata in code review costa minuti; la stessa regressione trovata in produzione costa un bisect attraverso settimane di merge, un ciclo di hotfix e tutto il fatturato bruciato nel frattempo. L'economia indica una sola direzione: i gate vanno messi in CI.
- Esegua Lighthouse, o un controllo sintetico equivalente, sulle rotte chiave a ogni pull request — con asserzioni che fanno fallire la build, non con punteggi puramente consultivi.
- Confronti le dimensioni dei bundle per rotta e blocchi il merge quando una soglia viene superata; il gonfiarsi delle dipendenze è la regressione silenziosa più comune.
- Monitori nel tempo il margine di budget residuo — un budget consumato al 98% è un avvertimento, non una promozione.
Il real-user monitoring chiude il cerchio
I gate in CI prevengono i modi di guasto noti; non possono vedere un endpoint di terze parti diventato lento, una configurazione errata della CDN in una singola regione o i dispositivi di fascia media che il profilo di laboratorio non emula mai. Il real-user monitoring — raccogliere LCP, INP e CLS dalle sessioni reali tramite le performance API del browser — è la verità sul campo. Lo segmenti per classe di dispositivo, tipo di connessione, area geografica e rotta; aggreghi al p75; imposti gli allarmi su derive persistenti anziché su picchi isolati. Quando campo e laboratorio sono in disaccordo, ha ragione il campo.
Quanto costa davvero una regressione
Il costo di una regressione è raramente un incidente clamoroso. È una tassa lenta: qualche centinaio di millisecondi di LCP in più che erodono la conversione di una frazione misurabile, un INP degradato che fa sembrare l'interfaccia scadente, una valutazione Core Web Vitals fallita che riduce silenziosamente la visibilità nella ricerca. Poiché ogni singola regressione è piccola, nessuna fa scattare un progetto — ed è esattamente per questo che solo una disciplina permanente le intercetta.
È così che affrontiamo la performance nei sistemi che costruiamo in Vendenis: budget definiti fin dall'inizio, gate in ogni pipeline, telemetria degli utenti reali in ogni deployment di produzione. Non un servizio che si acquista una volta, ma una proprietà che la codebase impone a sé stessa. I team che adottano questa disciplina smettono di condurre progetti di performance — perché smettono di accumulare debito di performance.