103 Early Hints : donnez une longueur d’avance au navigateur

103 Early Hints est une réponse intermédiaire qui permet au serveur d’envoyer des indications preload et preconnect avant que la réponse finale soit prête.

Vérifier le code d’état d’une URL

103 Early Hints permet à un serveur d’envoyer des indications sur les ressources critiques avant que la vraie réponse soit prête. Pendant que votre application construit encore le HTML, le navigateur peut déjà ouvrir des connexions et commencer à télécharger la feuille de style, les polices ou l’image principale dont la page aura besoin.

Définition

Le code 103 vient de la RFC 8297, une RFC expérimentale de 2017. C’est une réponse informative qui transporte des en-têtes Link, généralement avec rel=preload ou rel=preconnect. Une réponse finale suit toujours, et un serveur peut envoyer plusieurs 103 avant elle. Considérez ces indications comme un simple coup d’avance : gardez les mêmes en-têtes Link sur la réponse 200 finale, pour que les clients qui ignorent le 103 les reçoivent quand même. La RFC rappelle aussi que certains clients HTTP/1.1 gèrent mal les réponses informatives ; les serveurs n’envoient donc souvent le 103 que sur HTTP/2 ou HTTP/3.

Dans quels cas il aide

  • Les pages dont le serveur met du temps à « réfléchir » (requêtes en base de données, personnalisation, rendu côté serveur) : sans 103, le navigateur attendrait sans rien faire le premier octet (TTFB).
  • Le CSS critique, les polices web et l’image à l’origine de votre Largest Contentful Paint.
  • Les origines tierces dont vous avez toujours besoin, comme un hébergeur de polices, grâce à preconnect.

Chrome exploite les Early Hints pour les navigations entre pages. Les CDN peuvent générer le 103 à votre place : Cloudflare, par exemple, peut transformer les en-têtes Link de vos réponses en Early Hints. Dans Node.js, response.writeEarlyHints() en envoie un directement.

Impact SEO

Les Early Hints sont une fonction de vitesse pensée pour les vrais visiteurs. Elles ne changent pas la façon dont une URL est indexée : les robots tiennent compte du code de statut final, et la documentation de Google sur les codes de statut ne mentionne pas le 103. L’éventuel bénéfice est indirect, via de meilleurs Core Web Vitals pour les utilisateurs. N’en abusez pas pour autant : précharger des fichiers dont la page n’a pas besoin gaspille de la bande passante et concurrence les ressources vraiment critiques.

Comment le vérifier

Nos outils, dont le vérificateur d’en-têtes HTTP, affichent la réponse finale : vous y voyez donc le 200 et ses en-têtes Link. Pour observer le 103 intermédiaire, utilisez curl -v ou l’onglet Réseau des outils de développement de Chrome. Mesurez l’effet avec le test de vitesse de page.

HTTP/2 103
link: </assets/site.css>; rel=preload; as=style
link: <https://fonts.example-cdn.com>; rel=preconnect

HTTP/2 200
content-type: text/html; charset=utf-8
link: </assets/site.css>; rel=preload; as=style

Questions fréquentes

Le code 103 Early Hints améliore-t-il le classement ?

Pas directement. Il peut accélérer le chargement des pages pour les visiteurs, ce qui profite à l’expérience utilisateur et aux Core Web Vitals, mais l’indexation repose sur la réponse finale, pas sur l’indication.

Quelles indications puis-je envoyer dans une réponse 103 ?

Les en-têtes Link avec rel=preload et rel=preconnect sont ceux que les navigateurs exploitent. N’indiquez que les ressources dont presque tous les visiteurs ont besoin, comme la feuille de style principale ou un hébergeur de polices.

Pourquoi le 103 n’apparaît-il pas dans mon vérificateur de statut ?

La plupart des vérificateurs n’affichent que la réponse finale, généralement un 200. Utilisez curl -v ou l’onglet Réseau des outils de développement de votre navigateur pour voir les réponses intermédiaires 103.