Un câble réseau noir et une lentille photographique posés sur une surface mate, photographie éditoriale sombre en noir et blanc au grain tramé sous une diagonale de lumière.

BlogShopify

Shopify · 8 min de lecture

Early Hints Shopify : préchargement automatique pour accélérer LCP et FCP

Depuis le 28 août 2026, Shopify scanne le HTML des boutiques Liquid et envoie des Early Hints (HTTP 103) pour préconnecter et précharger les ressources qui bloquent le rendu. Selon Shopify, sur les pages vues éligibles au p75, le FCP gagne 76 ms et le LCP 100 ms, sans action marchand.

Par Lighthouse · Agence Shopify

Pourquoi le navigateur découvre-t-il CSS et scripts trop tard ?

Parce qu’il ne peut lire la plupart des ressources qu’après avoir reçu et parsé le HTML. Tant que le document n’arrive pas, le navigateur ignore encore les feuilles de style et les scripts nécessaires au premier affichage, alors que l’attente du serveur peut déjà coûter des centaines de millisecondes.

Pour une ressource tierce, le coût grimpe : résoudre le nom de domaine, ouvrir la connexion, négocier le TLS. Un head typique avec theme.css, une police Google Fonts et un script jQuery bloque le rendu trois fois, et les deux derniers fichiers peuvent encore exiger une nouvelle connexion avant le téléchargement.

Que changent les Early Hints automatiques Shopify (28 août 2026) ?

Shopify ne s’appuie plus seulement sur les resource hints ajoutés par les auteurs de thème. D’après l’article Performance @ Shopify de Mateusz Krzeszowiak (28 août 2026), la plateforme scanne désormais le HTML généré, repère les ressources qui bloquent le rendu, puis utilise ces informations pour ouvrir des connexions tierces et démarrer le téléchargement de fichiers critiques avant que le navigateur ne reçoive la réponse HTML finale.

Concrètement, un statut HTTP 103 Early Hints arrive avant le 200 OK et porte des en-têtes Link : un preconnect prépare la connexion, un preload lance déjà le téléchargement. Shopify s’appuie sur son CDN : une fois le Link mis en cache pour une URL, le nœud edge peut renvoyer le 103 avant même que la requête n’atteigne les serveurs d’application.

Comment Shopify choisit quoi préconnecter et précharger ?

Shopify transforme déjà le HTML storefront pendant le rendu. Ce mécanisme a été étendu pour identifier les ressources sur le chemin critique. Pour les feuilles de style : styles bloquants classiques, hors media non bloquant comme print. Pour les scripts : scripts classiques bloquants, hors async, defer ou type="module". La détection réutilise un scan HTML existant, sans overhead mesurable, et reste alignée quand le thème ajoute, retire ou change un fichier bloquant.

Le déploiement s’est fait en deux étapes. D’abord, jusqu’à trois domaines servant des ressources tierces bloquantes sont ajoutés en preconnect dans le Link, aux côtés des hints CDN Shopify. Sur le trafic acheteur, cette seule étape a accéléré le FCP de 28 ms et le LCP de 36 ms au p75 ; au p90, les gains étaient de 56 ms et 64 ms.

Un cas Adobe Fonts a aussi été traité : un CSS servi depuis use.typekit.net importe ensuite un autre CSS depuis p.typekit.net. Quand Shopify trouve du CSS bloquant Typekit, il préconnecte les deux domaines. Sur les pages concernées, ce hint supplémentaire a encore amélioré le FCP de 31 ms au p75.

Ensuite, le même scan lance le preload des feuilles de style et scripts bloquants eux-mêmes. À la différence d’un preload écrit dans le thème, Shopify ne sélectionne que les fichiers qui bloquent réellement le rendu dans le document généré pour cette URL, et la liste se met à jour au fil des réponses.

Exemple d’Early Hints (schéma Shopify)http
HTTP/2 103 Early Hints
Link: <https://fonts.googleapis.com>; rel=preconnect
Link: <//shop.example/cdn/shop/t/1/assets/theme.css>; as=style; rel=preload

HTTP/2 200 OK
Content-Type: text/html

Quels gains FCP et LCP sur les pages qui utilisent les preloads ?

Sur les pages vues où le navigateur a reçu et utilisé les preloads Early Hints de Shopify, les métriques de rendu s’améliorent sur toute la distribution. Au p75, le FCP est 76 ms plus rapide et le LCP 100 ms plus rapide. L’arrivée des en-têtes de la réponse finale n’a pas régressé : le navigateur commence un travail utile plus tôt sans retarder le HTML.

Améliorations mesurées par Shopify (pages avec preloads Early Hints utilisés)
Métriquep50p75p90
First Contentful Paint44 ms plus rapide76 ms plus rapide104 ms plus rapide
Largest Contentful Paint68 ms plus rapide100 ms plus rapide145 ms plus rapide

Avec un 103, le TTFB classique s’arrête à l’arrivée des Early Hints, pas au début de la réponse finale. Shopify a donc regardé finalResponseHeadersStart. Sur cette plage, chaque 100 ms supplémentaires avant la réponse finale étaient associées, au p90, à une amélioration FCP plus grande de 7,5 ms et LCP de 7,6 ms : plus le navigateur aurait attendu, plus il peut avancer un téléchargement bloquant en parallèle.

Le LCP progresse souvent plus que le FCP. L’hypothèse principale de Shopify : récupérer CSS et JavaScript bloquants plus tôt libère de la bande passante quand le navigateur découvre ensuite les images prioritaires du body, souvent éléments LCP, sans que ces images aient été préchargées.

Que vérifier dans votre thème et vos apps ?

Rien n’est obligatoire pour activer la fonction : elle est plateforme. En revanche, un thème ou des apps qui multiplient les CSS et scripts bloquants dans le head limitent le bénéfice, saturent le budget de 10 preloads, et laissent le navigateur avec plus de travail même si la découverte démarre plus tôt.

Contrôles concrets

  1. 01

    Inspecter l’en-tête Link

    Sur une page produit ou collection du thème publié, ouvrez les DevTools (onglet Network), rechargez, et lisez les Link de la requête document : preconnect CDN, preconnects tiers, preloads style/script automatiques.

  2. 02

    Compter les ressources bloquantes du head

    Repérez les <link rel="stylesheet"> hors media non bloquant et les <script> sans async, defer ni type="module". Chaque fichier bloquant concourt pour un slot de preload.

  3. 03

    Ne pas re-précharger ce que Shopify précharge déjà

    La doc Shopify le dit clairement : n’ajoutez pas vos propres preload ou preconnect pour les scripts et feuilles de style bloquants déjà dans le head. Réservez un preload manuel (filtre Liquid) à un ou deux cas, par exemple une image LCP découverte trop tard.

  4. 04

    Auditer les apps du head

    Pixels, chat, A/B, polices tierces, scripts injectés dans content_for_header : ce sont souvent des domaines et fichiers bloquants. Moins il y en a sur le chemin critique, plus le navigateur peut profiter de la fenêtre Early Hints.

  5. 05

    Relier au streaming HTML

    Les Early Hints et le flush anticipé jusqu’à content_for_header se cumulent. Gardez le tag intact et placez les ressources du premier écran au bon endroit dans le layout : voir notre article sur les boutiques Liquid plus rapides.

Preload manuel utile (cas limite, budget partagé)liquid
{{ product.featured_image | image_url: width: 800 | image_tag: preload: true }}

Quand faire appel à une agence Shopify ?

Quand le LCP reste trop lent malgré le déploiement plateforme : head saturé de CSS et scripts bloquants, apps marketing qui ouvrent trop de domaines, preload manuel qui pousse hors du plafond de 10, ou thème sur mesure dérivé de Dawn/Horizon sans revue récente du chemin critique.

Une agence spécialisée Shopify peut prioriser le cleanup (defer/async, réduction de feuilles, polices self-hostées sur le CDN Shopify), valider les filtres Liquid de preload restants, et mesurer FCP/LCP sur le thème publié plutôt que dans l’éditeur. Le levier Early Hints est gratuit ; le travail qui reste est souvent éditorial et technique sur votre stack réelle.