Newsletter Novalem Actualités et Tendances SEO-SEA !

HTTP/2.0 et SEO ?

Parce que faire attendre sur le web, c'est perdre du trafic et des conversions, pourquoi continuer à proposer cette expérience utilisateur à vos internautes ? Un seul objectif : le seuil de l'instantanéité perçu à moins de 400ms. Autant dire mission quasi-impossible…
Auteur
Nicolas Gallet
Co-fondateur

Transférer rapidement l’information est primordial. Comme HTTP est la mécanique de transfert de l’information sur le web, c’est donc cette technologie qu’il faut soigner. Or, la première version aboutie de ce protocole date de 1996.

Google l’a donc fait évoluer pour le rendre plus rapide grâce à son module SPDY (qui nécessite HTTPS). De ce travail, l’IETF propose une version 2 (encore à l’état de brouillon, 17e version présentée le 17 février) qui ne rend pas obsolète la version 1.1 (la sémantique utilisée reste la même).

Que tente de régler HTTP/2.0 ?

Pour accélérer l’affichage des pages, les navigateurs parallélisaient les requêtes (ce que ne gère pas nativement HTTP/1.0) : par défaut, ils établissent 6 connexions simultanées maximum, à raison de 2 maximum par sous-domaine. Pensez maintenant qu’une page HTML est composée en moyenne d’une centaine de ressources (images, scripts et CSS). Les navigateurs perdent donc énormément de temps à attendre les ressources.

total-transfer-size-total-requests

Note : une solution pour accélérer l’affichage des pages est, pour les développeurs d’interface web, de rendre disponibles ces ressources sur des sous-domaines différents.

Par ailleurs, les navigateurs ont à identifier le serveur à chaque connexion donc trouver l’IP associée au nom de domaine demandé. Ces temps de calcul sont redondants et longs si le navigateur ne gère pas un cache DNS (stockant de l’association « nom de domaine – IP). C’est une réelle perte de temps (de calcul et d’attente) pour l’internaute.

Enfin, le poids des messages peut être contraignant : les navigateurs perdent énormément de temps à attendre des ressources lourdes à télécharger. C’est pourquoi combiner les ressources JS, CSS et les images (sprites CSS) accélèrent le temps de chargement de la page. Mais ces optimisations ne sont que palliatives pour réellement accélérer drastiquement le transfert. Et c’est là qu’intervient HTTP/2.0.

Les nouveautés qu’apporte HTTP/2.0

D’abord, il n’y a plus qu’une seule connexion au serveur : la communication entre lui et le client se base sur une seule requête HTTP composée de plusieurs frames (multiplexing).

application-http2

Cela accélère la récupération des pages mais évite aussi d’attendre les images si celle en cours de téléchargement est très lourde (effet « head-of-line blocking »).

page-telechargement-http2

Second avantage : le « Server Push », soit la capacité du serveur à envoyer du contenu avant qu’un navigateur/client ne le lui demande. La communication ne sera donc plus basée uniquement sur des demandes de clients. Par exemple, un serveur web pourra envoyer au navigateur, en plus de la page HTML demandée, les styles, les scripts et images associées. Cela évitera au navigateur d’analyser la page HTML pour faire de nouvelles demandes pour chacun de ses composants.

http-connection

Avec « HTTP/2.0 server push », les ressources sont toujours mises en cache.

Ensuite, HTTP/2.0 fonctionne encore plus vite avec HTTPS (puisque basé sur SPDY). HTTP/2.0 est plus universel que SPDY puisqu’il permet des connexions non sécurisées mais son architecture permet d’accroître encore plus la vitesse des transferts sécurisés.

Enfin, bien que la sémantique ne change pas, les entêtes HTTP sont désormais compressées et encodées en binaire via HPACK permettant ainsi de gagner jusqu’à 50% du poids de la requête.

request-http2

Les entêtes sont réduits grâce à une configuration implicite

Implémentation du HTTP/2.0

Vous n’avez rien à faire ! Ou presque : votre hébergeur/administrateur système aura simplement à installer le module dédié. En effet, le format d’échange (si vous le contrôlez) ne change pas : un entête HTTP est toujours transmis, tandis qu’il est possible de fournir un corps de message (pages, images, etc.) comme en HTTP/1.0.

Par ailleurs, Apache supporte déjà HTTP/2.0 via le module « mod_spdy » tandis que c’est natif sur Nginx. Et si vous n’êtes pas sur ces serveurs, sachez qu’il existe d’autres projets supportant HTTP/2.0 ou qu’il est possible d’utiliser un proxy gérant ce protocole. Côté navigateurs, Firefox et Chrome sont déjà compatibles, IE c’est pour bientôt : http://http2rulez.com/ ; les anciens navigateurs continueront à utiliser HTTP/1.0.

Devons-nous passer au HTTP/2.0 pour le SEO ?

Oui. Même si aucun impact SEO n’a pour le moment été détecté.

Par ailleurs, avoir un site performant est un signal de qualité pour Google. Or? HTTP/2.0 vient l’améliorer, en particulier en réduisant le temps d’attente du 1er octet (Time To First Byte) transmis par le serveur alors que c’est un des principaux critères SEO sur la performance pour Google.

seo-http2

Temps entre le 1e octet délivré et l’événement « onload » (chargement complet de la page) dans le navigateur selon Google.

Et surtout, il faudra peu de temps pour que l’utilisation de ce protocole (Google en étant l’initiateur) soit un critère aussi important que le passage au HTTPS ou l’association des sites desktop-mobile.

En bref, HTTP/2.0 c’est comme HTML 5, c’est du brouillon certes, mais avancé et stable au point de pouvoir dès à présent l’implémenter. Et bien que les impacts SEO ne soient pas encore perceptibles, la mise en place de HTTP/2.0 viendra de toute façon améliorer l’expérience utilisateur.

****

Ressources complémentaires :

Implémentations du HTTP/2.0 : https://github.com/http2/http2-spec/wiki/Implementations

Illustrations de l’article venant de la présentation de HTTP/2.0 par Ilya Grigorik (Google) : http://fr.slideshare.net/heavybit/heavybit-presents-ilya-grigorik-on

Activer HTTPS sans perdre en performance (en) : http://moz.com/blog/enabling-https-without-sacrificing-web-performance

HTTP/2.0, le futur du SEO (en) : http://blog.steadfastcreative.com/http2-the-future-of-seo

Newsletter Mars 2015