Un paio di settimane fa abbiamo parlato di una innovazione di
Chrome 13, Instant Pages. In quel post avevamo accennato di qualche conseguenza a livello
SEO.
Vediamo di approfondire. Però facciamo prima un piccolo reminder.
Instant Pages, precarica il primo sito che esce fuori nelle SERP da ogni ricerca effettuata su Google. In questo modo nel momento in cui clicchiamo su quel link, il sito sarà visualizzato immediatamente (per i dettagli leggete il post
Instant Pages su Chrome 13)
Come vi avevo detto allora, sul blog ufficiale di Google, si faceva riferimento al fatto che su
Google Webmaster Tools, la visita sarebbe stata contata solo dopo effettivamente il click sulla SERP. Però
non si faceva riferimento a quello che sarebbe potuto succedere su Google Analytics o su qualunque altro software di Web Analysys.
Dato che la cosa mi interessa non poco, sono andato un po' ad investigare. La Web Analysys è molto importante per pianificare lo sviluppo di un sito, permette di non andare a sensazione, ma tramite grafici e numeri, scoprire cosa va e cosa non va sulla nostra casa su web.
Il punto del problema è che,
i dati di uno strumento di analisi come Google Analytics potrebbero essere contaminati da questa nuova funzionalità di Chrome. Ovvero potrebbe essere contata una visita, che magari può non essere mai accaduta, nel caso in cui il sito sia precaricato, ma l'utente non abbia mai cliccato sul primo link della SERP. Anche perchè quello che effettivamente avviene è che Chrome non precarica solo la pagina e tutti i file correlati (script, css, immagini), ma effettivamente la prerenderizza anche.
Questo vuole dire che dopo aver caricato i file, li elabora e costruisce la pagina sul browser.
Fateci caso, tante volte su pagine molto grosse, tipo i grandi portali editoriali, la pagina impiega qualche istante a mostrarsi completamente dopo aver finito il download dei file. Questo perchè il browser dei interpretare tutti i file ed in base a questi crea quello che vediamo (
tecnicamente si dice appunto renderizzare).
Se vedete il video del post su Instant Pages, vedete che dopo il click sulla SERP, la pagina appare immediatamente e bene formata. Questo vuol dire che è già stata renderizzata, quindi sono stati eseguiti anche tutti gli script ad essa collegata.
I software di Web Analysys hanno principalmente due modi di funzionamento. Il primo è quello di analisi dei log del web server (in questo caso però bisogna essere proprietari della macchina, per poter accedere a questi file), nel secondo caso si inserisce un codice nella pagine, che può essere o un'immagine invisibile o un javascript che si occupano di mandare i dati di visita al software di analisi).
Nel primo caso i dati sono evidentemente contaminati. Il log viene scritto nel momento in cui un browser chiede ad un web server delle pagine. Il web server non può discriminare se sono stati richiesti per vederli o per precaricarli.
Però obiettivamente, rispetto al passato, i software che si basano sui file di log, sono molto meno usati.
Adesso sono decisamente più usati software del secondo tipo, e
su questi il più usato di tutti è sicuramente Google Analytics.
Prendiamo il caso di Google Analytics. Lo strumento di analisi di Google cattura le informazioni delle visite tramite un javascript che deve essere inserito in tutte le pagine del sito. Lo potete trovare ovunque qui sul sito di ideativi, visto che apprezziamo molto il modo con cui Google Analytics aiuta le nostre analisi.
Essendo uno script anche questo verrà prerenderizzato da Chrome con Instant Pages, e quindi teoricamente dovrebbe contarmi una visita. Per documentarmi ulteriormente sono andato a cercare altre informazioni ed ho trovato un post ufficiale sul
pre-rendering di Chrome.
Qui non troviamo una risposta al nostro quesito, ma importati indizi.
Esiste una API in via di definizione dal W3C che si chiama Page Visibility API, tramite la quale si può capire se la pagina è in prerendering o meno. Dato che è ancora sperimentale, e potrebbe essere modifica o cancellata, per Chrome è stata creata una API apposita che è descritta su
questa pagina.
Con questa API un software di analisi può capire se la pagina è in prerender oppure no. Il punto che rimane quindi è uno. Chi implementa questa API? Ho provato a fare dei test tramite
Fiddler (che permette di scoprire se c'è traffico web sul computer e verso quali siti) e scoprire se poi queste visite venivamo contate su Google Analytics. Purtroppo in nessun caso Chrome, malgrado abbia la funzionalità attivata, ha scaricato in background la prima pagina della SERP. Come spiegato da loro, non si attiva sempre, ma solo quando l'algoritmo è sicuro che cliccheremo sulla prima voce. Anche se ho usato ricerche molto specifiche non ho rivelato traffico di rete, non ho una spiegazione di questo, dovrò continuare ad investigare.
Comunque ho sufficienti elementi per tirare fuori una supposizione. Conoscendo Google,
posso immaginare che Analytics implementi questa API e possa contare correttamente le visite. Per altri software, essendo casi particolari, potrebbero passare anni prima che verifichino il prerendering delle pagine.
Andando a guardare la documentazione tecnica del
prerendering scopriamo qualche cosa in più, non direttamente connessa all'analytics, però interessante lo stesso. Ci sono varie limitazioni al prerendering, fra cui
può essere in prerendering massimo una pagina per istanza di chrome (non per tab).
Il prerendering non viene effettuato per plugin tipo Flash, questi verranno attivati all'effettivo caricamento della pagina da parte dell'utente. In diversi casi invece il prerendering viene abortito in maniera silente:
- The URL initiates a download
- HTMLAudio or Video in the page
- POST, PUT, and DELETE XMLHTTPRequests
- HTTP Authentication
- HTTPS pages
- Pages that trigger the malware warning
- Popup/window creation
- Detection of high resource utilization
Quindi non abbiamo prerendering in caso di utilizzo si ajax, https, pagine protette, popup e pagine che usano script impegnativi per il processore.
È incredibile andando ad investigare quante cose si possono scoprire ed imparare. Questo è il bello dell'informatica. Più impari e meno ne sai! :-)