Skip to content

Time on page: cosa significa per il coinvolgimento

Il time on page è la durata media di tempo che un visitatore trascorre attivamente su una singola pagina web prima di navigare via; la misura varia a seconda dello strumento (es. metriche di engaged time in GA4) e della configurazione.

Time on Page: Understanding Website Visitor Engagement

Overview

Il time on page descrive il tempo che un utente passa su una specifica pagina prima di chiudere la scheda o navigare altrove. È una metrica di coinvolgimento, non una misura univoca di qualità: da sola non “determina” il posizionamento nei risultati di ricerca. Time on page può essere utile per identificare contenuti che trattengono gli utenti o, al contrario, pagine che generano abbandoni rapidi; però la sua interpretazione dipende fortemente da come viene misurata (client-side, server-side, eventi manuali) e dal tipo di pagina (articolo lungo, pagina prodotto, app single-page).

Nota tecnica: crawling, indicizzazione e ranking sono processi distinti. Time on page è una metrica di comportamento degli utenti (post-crawl/index) e può correlare con segnali che i motori considerano, ma non è un sostituto dei segnali tecnici che influenzano crawl o indicizzazione.

Step-by-step: come viene misurato

1) Calcolo tradizionale (pageview timestamp): molti strumenti calcolano il time on page come differenza tra il timestamp di una pageview e il timestamp della pageview successiva. Questo approccio fallisce per l'ultima pagina di una sessione perché manca un evento successivo, spesso portando a valori sottostimati.

2) Misure basate su eventi/client-side: per correggere il problema dell'ultima pagina si usano heartbeat periodici, eventi di visibilitychange o eventi di unload che inviano intervalli di tempo al sistema di analytics. Per single-page applications (SPA) è necessario inviare virtual pageviews o eventi di navigazione quando cambia il contenuto senza reload.

3) GA4 e 'engaged time': con Universal Analytics dismesso, GA4 fornisce metriche basate su eventi (user_engagement) e report su average engagement time; queste misure tengono conto di focus/visibilità e sessioni con interazione, ma la terminologia e la logica differiscono dall'«average time on page» di UA.

Problemi comuni

• Sessioni di una sola pagina non misurate correttamente — senza heartbeat o eventi, il time on page risulta spesso pari a zero per l'ultima visualizzazione.
• Traffico bot o crawler che genera pageviews ma non interazioni, distorcendo la media. Filtra i bot nella configurazione analytics quando possibile.
• SPA senza virtual pageviews — gli strumenti vedono una singola pageview anche se l'utente naviga tra contenuti diversi.
• Eventi duplicati o mancati dovuti a configurazioni errate di GTM/gtag, che gonfiano o diminuiscono i valori.
• Campionamento o esportazioni incomplete: analisi su campioni può mascherare pattern reali.

Time on page: controllare — checklist tecnica

**Tag presenza** — where to verify: view-source o curl / console Network — passes when: lo snippet analytics (gtag/GA4, dataLayer) è presente nella pagina HTML o viene caricato dopo navigazione.
**Eventi engaged** — where to verify: GA4 > Realtime / Reports > Pages and screens — passes when: vedi user_engagement o eventi custom che corrispondono a interazioni attese.
**Visibility tracking / heartbeat** — where to verify: Chrome DevTools Performance / Network or site JS source — passes when: script invia eventi periodici o invia engaged events su visibilitychange.
**SPA virtual pageviews** — where to verify: Network / console o logs — passes when: ogni cambio di contenuto chiave genera una page_view o evento che aggiorna l'URL o lo stato della pagina.
**Bot filtering** — where to verify: analytics settings / server logs — passes when: filtri bot applicati e i log mostrano discrepanze tra visite reali e visite in analytics.
**Session attribution e cross-domain** — where to verify: GA4 configuration / cookie settings — passes when: sessioni cross-domain sono mantenute e non frammentate.

Verifica e troubleshooting: strumenti e comandi utili

Google Analytics 4 (GA4)

Controlla il report "Pages and screens" e il Realtime per vedere user_engagement e average engagement time. Se hai BigQuery export attivo puoi confrontare eventi raw (event_timestamp) per calcoli personalizzati. Ricorda che GA4 è event-driven: la presenza o assenza di eventi determina cosa viene calcolato.

Chrome DevTools / Performance

Usa il pannello Network per verificare che gli eventi analytics siano inviati nei momenti attesi, e Performance per misurare tempi di interazione reali e visibilitychange. Per controllare lo script nella sorgente HTML usa la scheda Elements o salva la risposta HTML.

curl e controllo sorgente

Per ispezionare l'HTML che il server restituisce usa: curl -L https://example.com (nota: curl -I restituisce solo header). Poi cerca snippet come gtag o dataLayer: curl -L https://example.com | grep -i gtag. Questo verifica la presenza del codice client-side, ma non la sua esecuzione in-browser.

Server logs e misurazione server-side

I log del server mostrano richieste e timestamp; confrontali con gli eventi client per identificare bot, reload ripetuti o sessioni incomplete. La misurazione server-side evita alcuni blocchi lato client, ma non può misurare la visibilità/attenzione dell'utente senza eventi client che comunichino stato di visibilità.

Esempio pratico per SPA: invia virtual pageviews al cambio di route e usa la Page Visibility API per heartbeat quando la pagina resta in background: ascolta document.visibilityState e invia un evento periodico con l'intervallo attivo al tuo endpoint analytics.

Snippet illustrativo (concetto): quando la pagina diventa nascosta o visibile, registra il tempo e invia un evento: `document.addEventListener('visibilitychange', () => { /* invia evento engaged_time */ })`. Questo esempio spiega il principio; adatta la logica al tuo framework e alla tua politica sulla privacy.

<a href="/guide/technical-seo">Leggi la guida Technical SEO</a>

Domande frequenti

Qual è la differenza fra time on page e average session duration?

Time on page misura il tempo speso su una singola pagina; average session duration misura la durata media di una sessione completa (tutte le pagine e gli eventi della stessa sessione). Entrambe vanno interpretate insieme per capire comportamento e funnel.

GA4 fornisce il time on page come prima?

GA4 non usa gli stessi nomi e logiche di Universal Analytics: fornisce metriche basate su user_engagement e average engagement time. Per ottenere una metrica equivalente a 'time on page' devi mappare eventi e, se necessario, creare metriche personalizzate o analisi su BigQuery.

Una pagina non indicizzata influisce sul time on page?

L'indicizzazione è separata dal tempo che gli utenti trascorrono su una pagina. Se una pagina non è indicizzata, perderai traffico organico che potrebbe aumentare il time on page medio, ma l'indicizzazione stessa non è ciò che misura il time on page.

Come evitare le misurazioni errate causate dai bot?

Filtra il traffico noto da crawler nella configurazione analytics quando possibile, usa user-agent checking nei log server per identificare pattern sospetti e applica soglie minime di durata/azione per escludere visite che non rappresentano utenti reali.

Termini correlati

Time on Page: Comprendere il Coinvolgimento dei Visitatori · BlogDrip