Conseil · Loop Earplugs

Loop Earplugs : l'INP mobile réduit d'environ 800 ms, conversion au checkout +7 %

Une boutique Shopify où chaque clic sur mobile attendait le template, les apps et les tags. Leurs développeurs ont corrigé le problème ; je leur ai montré où regarder.

~800 msde moins sur l'INP mobile
+7 %de conversion au checkout, selon leurs propres chiffres
ClientLoop Earplugs
PlateformeShopify
ServiceConseil, et formation au besoin
Le client

Loop Earplugs, un thème Shopify avec des apps par-dessus

Loop vend des bouchons d'oreille en ligne. Sur mobile, l'ajout au panier et l'ouverture du tiroir panier mettaient trop de temps à afficher quoi que ce soit, sur le chemin vers le checkout.

Loop Earplugs homepage
Ce que nous avons trouvé, ce que nous avons fait

Ajout au panier sur mobile : code du thème, apps, tags et tiroir panier

Nous avons analysé les traces INP ensemble. La lenteur des clics se répartissait entre le thème, les apps et les tags, sans coupable unique. Leurs développeurs ont codé les correctifs ; au besoin, je les ai formés à la lecture des traces.

Ce qui n'allait pas
Ce que nous avons fait
INP
Des composants du thème faisaient bien plus de travail sur un clic que ce dont l'écran avait besoin.
Leurs développeurs ont réduit le travail par clic. Les composants mettent d'abord à jour l'écran et font le reste après.
INP
Le JavaScript d'ajout au panier du thème et le tiroir panier s'exécutaient tous deux sur le même clic, et le tiroir re-rendait tout son contenu.
Le tiroir ne rend que ce qui a changé.
INP
Des apps sur la page ajoutaient leur propre travail à ces mêmes clics.
Les apps trop coûteuses ont été supprimées ou remplacées.
Printemps 2023

Nathan et moi avons commencé à échanger en février 2023. L'INP sur mobile tournait autour d'une seconde, et atteignait 1 350 ms en mars. Nous avons analysé les traces ensemble : les apps s'exécutaient sur les clics. ShopMessage a été retiré en mars. Lucky Orange, un enregistreur de sessions qui écoute chaque clic et chaque scroll, a été supprimé le 12 mai avec le tracking de Builder.io.

Avantpage d'accueil, 25 février 2023 : 12 scripts d'apps
pc-quiz.s3.us-east-2.amazonaws.com/…/quiz-loader.min.jsd38xvr37kwwhcm.cloudfront.net/…/grin-sdk.jscdn.shopmsg.me/…/shopmessage_platform.jsd275fvz7g8rvo.cloudfront.net/…/online_store_script.jslive-video-shopping-e4078.web.app/…/shows.jslive-video-shopping-e4078.web.app/…/integration.jsvision.duel.me/duel-analytics.jscdn.nfcube.com/97f451076844edac4b1d04779bdb9668.jsintg.snapchat.com/…/shopify-scevent-init.jsapp.backinstock.org/…/31939_1675166049.jscdn.builder.io/…/track.jstools.luckyorange.com/…/lo.js
Après18 mai 2023 : 9
pc-quiz.s3.us-east-2.amazonaws.com/…/quiz-loader.min.jsd38xvr37kwwhcm.cloudfront.net/…/grin-sdk.jsd275fvz7g8rvo.cloudfront.net/…/online_store_script.jslive-video-shopping-e4078.web.app/…/shows.jslive-video-shopping-e4078.web.app/…/integration.jsvision.duel.me/duel-analytics.jscdn.nfcube.com/97f451076844edac4b1d04779bdb9668.jsintg.snapchat.com/…/shopify-scevent-init.jsapp.backinstock.org/…/31939_1675166049.js
Les scripts d'apps dans la liste de chargement de Shopify sur la page d'accueil de Loop, d'après l'Internet Archive. Lucky Orange et le tracking de Builder.io ont été retirés entre le 10 et le 12 mai 2023, ShopMessage en mars.
Novembre 2023

Ensuite, le thème. Chaque clic sur « Ajouter au panier » demandait à Shopify de re-rendre trois sections, sur le même clic que le tiroir panier. Leurs développeurs ont retiré ces lignes le 20 novembre 2023, et en février 2024, le snippet Klaviyo qui wrappait chaque requête fetch avait lui aussi disparu.

Avantproduct-form.js
const formData = new FormData(this.form);if (this.dataset.cartType != 'page') {  formData.append('sections', this.cart.getSectionsToRender().map((section) => section.id));  formData.append('sections_url', window.location.pathname);  this.cart.setActiveElement(document.activeElement);}
Avantcart-notification.js, sur le même clic
renderContents(parsedState) {    this.cartItemKey = parsedState.key;    this.getSectionsToRender().forEach((section => {      document.getElementById(section.id).innerHTML =        this.getSectionInnerHTML(parsedState.sections[section.id], section.selector);    }));    if (this.header) this.header.reveal();    this.open();
Extrait archivé du thème de Loop. Chaque clic sur « Ajouter au panier » demandait à Shopify trois sections rendues, et cart-notification.js injectait chacune d'elles dans la page. La même semaine, jQuery a été retiré lui aussi, et la page d'accueil est passée de 7 à 5 scripts de thème.
Dans CrUX

C'est au printemps qu'apparaît la grosse baisse dans CrUX : l'INP sur mobile est passé de 1 350 ms en mars 2023 à 475 en juin, tout près des 800 ms citées par Nathan. Il est remonté à 550 à l'automne. Après les correctifs sur le thème, il est descendu à 375 en février 2024, et y est resté. Le LCP a baissé lui aussi, passant de 4,3 secondes en septembre 2022 à 1,9 en octobre 2023.

200 ms500 msAoût 2022Oct1450 msJanv 20231350 msAvr475 msJuilOctJanv 2024Avr375 msJuilINP sur mobile, p75
2,5 s4,0 sAoût 20224,3 sOctJanv 2023AvrJuil1,9 sOctJanv 2024Avr2,2 sJuilLCP sur mobile, p75
loopearplugs.com dans CrUX, mobile, d'août 2022 à juillet 2024. Une barre par mois, p75, d'après les données CrUX de Google dans BigQuery. Vert : bon, orange : à améliorer, rouge : médiocre.
« Sur mobile, on a gagné environ 800 ms et la conversion au checkout a augmenté de 7 %. Ça a été rentabilisé quasiment tout de suite. »

Nathan Ziarczyk, Engineering Lead, Loop

Ce que nous avons appris

Chaque app Shopify alourdit un peu chaque clic

Vous installez une app pour une fonctionnalité, et son script se charge sur des pages et des clics qui n'ont rien à voir avec elle. Seule, elle coûte un peu. Cumulée sur une page produit avec le thème et les tags, elle contribue à la lenteur du clic.

L'INP se corrige dans le template

Les réglages des apps changent rarement ce qui s'exécute lors d'un clic. C'est le code du thème qui décide : ce que fait l'ajout au panier, quand le tiroir panier fait son rendu, et quels scripts d'apps se chargent.

Des clics plus rapides vers le checkout sont payants

Je ne peux pas vous promettre 7 %. C'était la propre mesure de Loop, sur leur boutique.

Arjen Karel

Des clics lents sur votre boutique Shopify sur mobile ?

Un à trois jours par semaine, sprint après sprint, aux côtés de vos développeurs.

Loop Earplugs : l'INP mobile réduit d'environ 800 ms, conversion au checkout +7 % Core Web Vitals Loop Earplugs : l'INP mobile réduit d'environ 800 ms, conversion au checkout +7 %