Data di pubblicazione: 20 aprile 2026
Chrome prevede di rilasciare l'API Soft Navigations con cui abbiamo sperimentato in precedenza entro la fine dell'anno. In preparazione, stiamo offrendo un'altra prova dell'origine a partire da Chrome 147 fino a Chrome 149. Questa prova incorpora il feedback delle prove precedenti nella forma finale prevista dell'API. Invitiamo i proprietari di siti web interessati a questa funzionalità a condurre un test finale della forma finale prevista dell'API prima del suo rilascio.
Che cosa sono le navigazioni soft?
Una "navigazione soft" si verifica quando JavaScript intercetta una navigazione (ad esempio, facendo clic su un link) e aggiorna i contenuti della pagina esistente, anziché caricare una nuova pagina, mentre l'URL viene comunque aggiornato nella barra degli indirizzi. Per gli utenti, queste navigazioni appaiono uguali a quelle convenzionali, ma dal punto di vista del browser la pagina è ancora quella originale.
Necessità dell'API Soft Navigation
L'API Soft Navigations è un'API proposta per il rilevamento delle navigazioni soft utilizzate dai siti di applicazioni a pagina singola (SPA). Poiché per una navigazione soft non si verifica alcuna navigazione di pagina effettiva, JavaScript deve gestire manualmente determinate azioni che normalmente si verificano per una navigazione. Alcune azioni, come la gestione della cronologia di navigazione, sono possibili con le API attuali. Tuttavia, altre azioni, come la misurazione dei Core Web Vitals, non sono possibili per queste navigazioni.
L'API Soft Navigation consente di osservare le navigazioni soft. Sebbene il codice JavaScript che avvia la navigazione soft (in genere un framework JavaScript) sia a conoscenza del momento in cui si verifica una navigazione, altri JavaScript utilizzati dal sito (ad esempio, script di analisi) e il browser stesso non ne saranno a conoscenza.
Core Web Vitals e SPA
Uno dei principali motivi per cui è stata creata l'API Soft Navigation è consentire la misurazione dei Core Web Vitals per le SPA. I Core Web Vitals vengono misurati sia dal browser (per essere visualizzati in strumenti come il Report sull'esperienza utente di Chrome) sia dai proprietari dei siti che utilizzano soluzioni di monitoraggio degli utenti reali (RUM).
I framework JavaScript possono misurare alcuni aspetti dei Core Web Vitals per le SPA. In particolare, Interaction to Next Paint (INP) e Cumulative Layout Shift (CLS) si basano su primitive (rispettivamente l'API Event Timing e l'API Layout Instability) che possono essere misurate in qualsiasi intervallo di tempo per calcolare queste metriche. Tuttavia, altre metriche come Largest Contentful Paint (LCP) vengono emesse solo dal browser in base alle navigazioni di pagina e vengono finalizzate al momento dell'interazione.
In che modo l'API consente la misurazione dei Core Web Vitals per le SPA
L'API Soft Navigation introduce due nuove voci di prestazioni:
- Una voce
SoftNavigationEntryche viene emessa quando vengono soddisfatti tutti i requisiti di navigazione soft. Include uninteractionIdper l'interazione che ha causato la navigazione soft, unnavigationIdunivoco e unnameimpostato sul nuovo URL e su varie tempistiche di visualizzazione che possono essere utilizzate per misurare la prima visualizzazione di contenuti della navigazione soft. - Una voce
InteractionContentfulPaintche consente di misurare più visualizzazioni di contenuti di dimensioni sempre maggiori dopo le interazioni per misurare l'LCP per le navigazioni soft.
Queste nuove voci possono essere osservate utilizzando un PerformanceObserver con i tipi soft-navigation e interaction-contentful-paint rispettivamente.
L'API espande anche ciascuna delle voci di prestazioni largest-contentful-paint, interaction-contentful-paint, event-timing e layout-shift (e altre) per includere un identificatore, navigationId, che rappresenta la navigazione a cui si riferisce la voce. Poiché PerformanceObserver non osserva le voci di prestazioni finché la pagina non è inattiva, può trascorrere del tempo tra l'evento che ha creato la voce di prestazioni e la sua osservazione. Questo è particolarmente vero quando la pagina è molto occupata, ad esempio durante le navigazioni soft. Questo valore navigationId consente di attribuire le voci alla navigazione corretta.
Alcune voci interaction-contentful-paint possono verificarsi prima della navigazione e altre dopo. Anziché dover monitorare tutte le visualizzazioni che potrebbero comportare una navigazione soft, la voce soft-navigation include una voce largestInteractionContentfulPaint che è la visualizzazione più grande vista fino a questo momento.
Insieme, questi elementi consentono di misurare i Core Web Vitals per:
- LCP: Utilizzando
largest-contentful-paintper il caricamento iniziale della pagina e le nuove vociinteraction-contentful-paintesoft-navigationper le navigazioni soft. - CLS: utilizzando le voci
layout-shifte suddividendole in base alle vocisoft-navigationper le navigazioni soft. - INP: Utilizzando le voci
evente suddividendole in base alle vocisoft-navigationper le navigazioni soft. - FCP: Utilizzando
first-contentful-paintper il caricamento iniziale della pagina e i dettagli sulla tempistica di visualizzazione delle nuove vocisoft-navigationper le navigazioni soft.
Per maggiori dettagli, consulta la documentazione relativa alle navigazioni soft.
Come vengono attivate le navigazioni soft?
L'API Soft Navigation attiva una navigazione soft quando si verifica quanto segue:
- Si verifica un'interazione dell'utente,
- … che comporta una visualizzazione visibile dei contenuti per l'utente,
- … e si verifica un aggiornamento dell'URL.
L'API adotta questo approccio anziché consentire a un framework JavaScript di "emettere" una navigazione soft o basarsi sull'API Navigation per due motivi:
- Innanzitutto, include tutti i siti SPA esistenti senza richiedere modifiche a questi siti.
- In secondo luogo, consente di comprendere in modo coerente cosa costituisce una navigazione soft, indipendentemente dal modo in cui un framework o uno sviluppatore gestisce le navigazioni.
I framework o gli sviluppatori possono aggiornare l'URL per una navigazione soft anche senza un'interazione dell'utente o un aggiornamento DOM che gli utenti considererebbero una navigazione. Possono anche aggiornare l'URL in momenti diversi: all'inizio dell'interazione, solo alla fine quando è completata o in qualsiasi stato intermedio.
Anziché fare affidamento sulle scelte di framework e sviluppatori, l'integrazione del rilevamento delle navigazioni soft nel browser stabilisce una definizione canonica che consente di misurare i Core Web Vitals per le navigazioni soft su larga scala e di rendere queste misurazioni comparabili su larga scala.
I framework e gli sviluppatori possono anche ignorare l'API Soft Navigations e utilizzare le API Event Timing e Layout Instability sottostanti e la nuova voce di prestazioni InteractionContentfulPaint per misurare le metriche di prestazioni aggiuntive a loro scelta. Tuttavia, ti consigliamo di utilizzare l'API per misurare i Core Web Vitals per consentire una misurazione coerente tra i siti e gli strumenti.
Aiuto necessario per testare l'API Soft Navigation
Abbiamo bisogno del tuo aiuto per testare l'API Soft Navigations e determinare se corrisponde correttamente alle tue aspettative per quando si verifica una navigazione soft. L'API non segnala le navigazioni soft quando le consideri avvenute? Al contrario, l'API segnala in eccesso le navigazioni che non consideri tali?
Che cosa è cambiato rispetto all'ultima prova dell'origine
La modifica principale in questa ultima iterazione è il disaccoppiamento di InteractionContentfulPaint dalle navigazioni soft per consentire altri casi d'uso per questa voce di prestazioni e l'attributo largestInteractionContentfulPaint aggiuntivo a SoftNavigationEntry.
Dal punto di vista del sito web, l'API ora include anche replaceState come navigazioni soft perché abbiamo ricevuto il tuo feedback che è importante considerarlo come navigazione in molte circostanze. Non vediamo l'ora di conoscere altri casi in cui l'API non riconosce una navigazione soft.
Abbiamo anche apportato innumerevoli altri miglioramenti all'implementazione. Per chi cerca esattamente cosa è cambiato nell'ultima iterazione, è possibile trovare una cronologia dettagliata di tutte le modifiche nel log delle modifiche delle navigazioni soft.
Vogliamo che l'API sia il più utile possibile e siamo aperti a ulteriori modifiche per raggiungere questo obiettivo. Le modifiche all'API sono molto più facili da implementare prima del lancio e prima che i siti inizino a dipendere da un'implementazione. Pertanto, chiediamo agli sviluppatori di SPA e a chi è interessato alla misurazione delle prestazioni web per questi siti di testare questa API e fornire feedback.
Come eseguire il test
L'API può essere testata localmente con i flag di Chrome o le opzioni della riga di comando. Inoltre, puoi testarla sul campo con la prova dell'origine (scopri di più sulle prove dell'origine).
Per maggiori dettagli tecnici sull'API, in particolare su come misurare i Core Web Vitals, consulta la nostra documentazione o il repository GitHub.
Inoltre, è disponibile una versione sperimentale di navigazione soft della libreria web-vitals su GitHub e npm.
Per un test più semplice, il riquadro Prestazioni di Chrome DevTools mostra la navigazione soft nelle tracce di prestazioni a partire da Chrome 145, anche senza abilitare la funzionalità:

Feedback
Il feedback sull'API deve essere segnalato come problemi su GitHub e i bug sull'implementazione di Chromium nel tracker dei problemi di Chrome. Se non sai in quale categoria rientra il feedback, non preoccuparti troppo. Preferiamo ricevere feedback in entrambi i casi, quindi esamineremo i problemi in entrambi i casi e li reindirizzeremo alla posizione corretta.