A partire da novembre Googlebot inizierà a supportare il crawling su HTTP/2 per “siti selezionati”, con rilevanti benefici in termini di efficienza. Tuttavia, non ci saranno vantaggi concreti in termini di ranking per chi adotta questo nuovo protocollo. È questa la sintesi dell’annuncio comparso qualche ora fa sul Webmaster Central Blog, che anticipa quali saranno gli effetti di questo passaggio.
Che cos’è il protocollo HTTP/2
In breve, il protocollo HTTP/2 o h2 è “la prossima maggior versione” di HTTP, il protocollo che Internet utilizza principalmente per il trasferimento dei dati: una versione definita “molto più robusta, efficiente e più veloce del suo predecessore, grazie alla sua architettura e alle funzionalità che implementa per client (ad esempio, il browser) e server”.
I vantaggi della nuova versione
Solo in termini di velocità – un elemento sempre più prioritario per Google e più in generale per tutto il Web – HTTP/2 fornisce secondo alcuni studi un miglioramento medio delle prestazioni dei tempi di caricamento della pagina che va dal 5 al 15 per cento.
Come spiega un approfondimento su developers.google.com, gli obiettivi primari per HTTP/2 sono “ridurre la latenza attivando il multiplexing di richiesta e risposta, minimizzare il sovraccarico di protocollo tramite la compressione efficiente dei campi di intestazione HTTP e aggiungere il supporto per la priorità delle richieste e il server push”.
Le sue caratteristiche principali sono:
- Creazione di una sola connessione stabilita tra un browser e un sito.
- Scambio dei dati raccolti attraverso un processo di multiplazione.
- Codice binario per lo scambio di informazioni.
- Compressione dell’header http.
- Uso di server push nel caso di richieste di risposta prevedibili.
- Assegnazione di priorità agli elementi della pagina più importanti.
Che cosa vuol dire HTTP e la storia del protocollo
Apriamo una piccola digressione: HTTP significa HyperText Transfer Protocol (in italiano, protocollo di trasferimento di un ipertesto) ed è il sistema di regole che rende possibile la comunicazione e il trasferimento di file nel World Wide Web tra client (browser con le sue applicazioni) e server (su cui si trova il sito richiesto), e quindi rappresenta uno dei fondamenti della nostra esperienza di navigazione in Internet.
La prima versione di questo protocollo del livello di applicazione risale alla fine degli anni ’80 e porta la firma di Tim Berners-Lee e del CERN di Ginevra; nel 1991 debuttò la HTTP/1.0, prima versione effettivamente disponibile del protocollo, che subì vari aggiornamenti e modifiche fino ad arrivare alla versione 1.1, la più longeva (durata dal 1997 al 2015).
La versione 2.0 è stata sviluppata dal Working Group Hypertext Transfer Protocol (httpbis) dell’Internet Engineering Task Force nel 2014 e rappresenta la prima grande rivoluzione del protocollo (la più importante finora). La versione più recente, la HTTP/3.0 è stata annunciata nel 2018 ma ancora è in fase di definizione.
Già nel 2009, però, Google ha presentato la sua alternativa all’HTTP/1.1, chiamata SPDY (si legge spidi), per superare il punto più critico di quella vecchia versione di protocollo di trasferimento, che rallenta inutilmente i siti complessi più moderni. In effetti, questo progetto sperimentale di Google aveva già grandi benefici, con incrementi della velocità di caricamento di una pagina che raggiungevano quasi il 50 per cento rispetto ad HTTP.
La prima copia di HTTP/2 si basava proprio su SPDY, usato come punto di partenza, ma se ne è poi discostato, scegliendo ad esempio un algoritmo di compressione di tipo code-based (e non la compressione dinamica stream-based) per ridurre potenziali rischi di attacchi sul protocollo. E così, nel 2015 Google ha annunciato l’abbandono del progetto, iniziando a supportare HTTP/2 a partire da Chrome v.40.
Differenze tra HTTP e HTTP/2
Stando ad alcune fonti, attualmente il web è sostanzialmente diviso nell’adozione di protocolli HTTP/1.1 e HTTP/2: la nuova versione è supportata da tutti i principali browser e usata da circa il 45 per cento dei siti, a anche perché è molto semplice da implementare.
In effetti, HTTP/2 sta estendendo, non sostituendo, i precedenti standard http e non modifica in alcun modo la precedente semantica dell’applicazione: ciò significa che restano in vigore tutti i concetti fondamentali, come metodi, codici di stato, URI e campi di intestazione. Quello che cambia è modifica il modo in cui i dati vengono formattati (framed) e trasportati tra il client e il server, che gestiscono l’intero processo e nascondono tutta la complessità delle nostre applicazioni all’interno del nuovo livello di framing. Come conseguenza, tutte le applicazioni esistenti possono essere consegnate senza modifiche.
Data la crescente attenzione sul tema, in molti hanno chiesto a Google quando Googlebot avrebbe iniziato a eseguire il crawling sulla versione aggiornata e più moderna del protocollo, portando appunto alla decisione e all’annuncio odierno.
Un crawling più efficiente per Googlebot e per il server
Il motivo che ha spinto Google a fare questo cambiamento è presto detto: analizzando h2, la scansione diventerà più efficiente in termini di utilizzo delle risorse del server, perché Googlebot è in grado di aprire una singola connessione TCP al server e trasferirvi in modo efficiente più file in parallelo, invece di richiedere più connessioni. In pratica: meno connessioni si aprono, meno risorse il server e Googlebot devono spendere per il crawling.
Come funziona la sperimentazione
Google ha annunciato quindi che da novembre partirà una fase sperimentale di test per questo nuovo tipo di scansione: inizialmente, sarà scelto un piccolo numero di siti su h2 che potrebbero trarre vantaggio dalle funzionalità inizialmente supportate, come il multiplexing delle richieste, e poi il campione sarà gradualmente aumentato.
Googlebot decide su quale sito eseguire la scansione su h2 in base a due fattori: se il sito supporta h2 e se il sito e Googlebot traggono vantaggio dalla scansione su HTTP/2. Stando a quanto comunica Google, “se il tuo server supporta h2 e Googlebot esegue già molte scansioni del tuo sito, potresti essere già idoneo per l’upgrade della connessione e non devi fare nulla”.
Non dobbiamo preoccuparci se “il tuo server parla ancora solo HTTP/1.1”, perché va bene anche questo: non c’è alcun inconveniente esplicito per la scansione su questo protocollo e quindi il crawling rimarrà lo stesso “come qualità e quantità”.
Rinunciare al test
I test preliminari di Google non hanno evidenziato problemi o impatti negativi sull’indicizzazione, ma “comprendiamo che, per vari motivi, potresti voler disattivare la scansione del tuo sito su HTTP/2”.
Per farlo, bisogna istruire il server a rispondere con un codice di stato HTTP 421 quando Googlebot tenta di eseguire la scansione del sito su h2. Se questa soluzione al momento non è fattibile, è temporaneamente possibile inviare un messaggio al team di Googlebot (ma, appunto, è una possibilità solo provvisoria).
Le principali domande su Googlebot e HTTP/2
In calce all’articolo, Google presenta alcune FAQ che chiariscono alcuni punti di questa operazione e aiutano a comprendere meglio i vantaggi – anche pratici – del nuovo sistema di scansione.
- Perché state aggiornando Googlebot ora?
Perché il software usato per consentire a Googlebot di eseguire la scansione su h2 “è diventato sufficientemente maturo da poter essere utilizzato in produzione”.
- Devo aggiornare il mio server al più presto?
È una scelta personale. Tuttavia, “passeremo alla scansione solo sui siti h2 che lo supportano e ne trarremo chiaramente vantaggio”, dice Google. Quindi, se “non c’è un chiaro vantaggio per la scansione su h2, Googlebot continuerà comunque a eseguire la scansione su h1”.
- Come faccio a verificare se il mio sito supporta h2?
Google suggerisce di leggere il blog di Cloudflare che descrive “una miriade di metodi diversi per testare se un sito supporta h2”.
- Come aggiorno il mio sito a h2?
Dipende dal server, quindi Google suggerisce di “parlare con il tuo amministratore del server o osting provider”.
- Come convinco Googlebot a parlare in h2 con il mio sito?
Non è possibile: Google ribadisce che ciò avviene solo “se il sito supporta h2 e se ciò sarebbe vantaggioso per il sito e Googlebot”. Al contrario, se la scansione su h2 non si traduce in un notevole risparmio di risorse, ad esempio, “continueremo semplicemente a eseguire la scansione del sito su HTTP/1.1”.
- Perché non eseguite la scansione di tutti i siti abilitati per h2 su h2?
Nelle valutazioni preliminari, Google ha riscontrato poco o nessun vantaggio per alcuni siti (ad esempio, quelli con qps molto basso) durante la scansione su h2: pertanto, “abbiamo deciso di passare alla scansione in h2 solo quando c’è un chiaro vantaggio per il sito”. Ad ogni modo, “continueremo a valutare i miglioramenti delle prestazioni e potremmo cambiare i nostri criteri per il passaggio in futuro”.
- Come faccio a sapere se il mio sito viene sottoposto a scansione su h2?
Quando un sito diventa idoneo per la scansione su h2, i proprietari di quel sito registrati in Search Console riceveranno un messaggio che informa che parte del traffico di scansione potrebbe essere su h2 in futuro. È anche possibile controllare i log del server (ad esempio, nel file access.log se il sito gira su Apache).
- Quali funzionalità h2 sono supportate da Googlebot?
Googlebot supporta la maggior parte delle funzionalità introdotte da h2, ma alcune funzionalità come il server push, che può essere utile per il rendering, sono ancora in fase di valutazione.
- Googlebot supporta plaintext HTTP/2 (h2c)?
No. Il sito web utilizzare HTTPS e supportare HTTP/2 per essere idoneo alla scansione su HTTP/2. Secondo Google, questo è equivalente al modo in cui lo gestiscono i browser moderni.
- Googlebot utilizzerà l’estensione ALPN per decidere quale versione del protocollo utilizzare per la scansione?
La Application-layer protocol negotiation (negoziazione del protocollo a livello di applicazione – ALPN) sarà utilizzata solo per i siti per i quali è stata attivata la scansione su h2 e l’unico protocollo accettato per le risposte sarà h2. Se il server risponde durante l’handshake TLS con una versione del protocollo diversa da h2, Googlebot si spegnerà e tornerà in un secondo momento su HTTP/1.1.
- In che modo le diverse funzionalità h2 aiuteranno la scansione?
Secondo Google, i più importanti tra i tanti vantaggi di h2 sono:
- Multiplexing e concorrenza: un numero inferiore di connessioni TCP aperte significa meno risorse spese.
- Compressione dell’header: le dimensioni dell’header HTTP drasticamente ridotte faranno risparmiare risorse.
- Push server: questa funzione non è ancora abilitata, come detto, ma potrebbe essere utile per il rendering.
- Googlebot eseguirà la scansione più o più velocemente in h2?
Il vantaggio principale di h2 è il risparmio di risorse, sia lato server che per Googlebot. Ma il fatto che “eseguiamo la scansione utilizzando h1 o h2 non influisce sul modo in cui il tuo sito viene indicizzato, e quindi non influisce sulla quantità di crawl che abbiamo intenzione di eseguire sul tuo sito”.
- C’è qualche vantaggio in termini di ranking per un sito nell’essere scansionato su h2?
No, risponde seccamente l’articolo.