Consultoria · Loop Earplugs

Loop Earplugs: INP no telemóvel cerca de 800 ms mais rápido, conversão no checkout +7%

Uma loja Shopify onde cada clique no telemóvel esperava pelo template, pelas apps e pelas tags. Os developers deles corrigiram o problema; eu mostrei onde procurar.

~800 msa menos no INP no telemóvel
+7%na conversão do checkout, número deles
ClienteLoop Earplugs
PlataformaShopify
ServiçoConsultoria, com formação onde foi necessário
O cliente

Loop Earplugs, um tema Shopify com apps por cima

A Loop vende tampões para os ouvidos online. No telemóvel, adicionar ao carrinho e abrir o cart drawer demorava demasiado a mostrar o que quer que fosse, a caminho do checkout.

Loop Earplugs homepage
O que encontrámos, o que fizemos

Adicionar ao carrinho no telemóvel: código do tema, apps, tags e o cart drawer

Lemos os traces de INP em conjunto. Os cliques lentos estavam distribuídos pelo tema, pelas apps e pelas tags, sem que nenhum fosse o único culpado. Os developers deles criaram os fixes; onde foi preciso, dei-lhes formação para lerem os traces.

O que estava mal
O que fizemos
INP
Os componentes do tema faziam muito mais trabalho num só clique do que o ecrã precisava.
Os developers deles reduziram o trabalho por clique. Os componentes atualizam o ecrã primeiro e fazem o resto a seguir.
INP
O JavaScript do tema para adicionar ao carrinho e o cart drawer corriam ambos no mesmo clique, e o drawer voltava a renderizar tudo.
O drawer renderiza apenas o que mudou.
INP
As apps na página acrescentavam o seu próprio trabalho aos mesmos cliques.
As apps que custavam demasiado foram removidas ou substituídas.
Primavera de 2023

O Nathan e eu falámos pela primeira vez em fevereiro de 2023. O INP no telemóvel andava à volta de um segundo, e em março chegou aos 1350 ms. Lemos os traces em conjunto e as apps estavam nos cliques. O ShopMessage saiu em março. O Lucky Orange, um gravador de sessões que escuta cada clique e scroll, saiu a 12 de maio com o tracking da Builder.io.

Antespágina inicial, 25 de fevereiro de 2023: 12 scripts de 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
Depois18 de maio de 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
Os scripts de apps na lista de carregamento do Shopify na página inicial da Loop, a partir do Internet Archive. O Lucky Orange e o tracking da Builder.io saíram entre 10 e 12 de maio de 2023; o ShopMessage em março.
Novembro de 2023

Depois, o tema. Cada clique em Adicionar ao carrinho pedia ao Shopify para renderizar três secções de novo, no mesmo clique do cart drawer. Os developers deles removeram essas linhas a 20 de novembro de 2023 e, em fevereiro de 2024, o snippet da Klaviyo que envolvia cada fetch request também tinha saído.

Antesproduct-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);}
Antescart-notification.js, no mesmo clique
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();
Do tema da Loop, arquivado. Cada clique em Adicionar ao carrinho pedia ao Shopify três secções renderizadas, e o cart-notification.js substituía cada uma na página. Na mesma semana o jQuery também saiu, e a página inicial passou de 7 scripts do tema para 5.
No CrUX

A grande descida no CrUX dá-se na primavera: o INP no telemóvel passou de 1350 ms em março de 2023 para 475 em junho, perto dos 800 ms referidos pelo Nathan. No outono voltou a subir para 550. Depois dos fixes no tema, baixou para 375 em fevereiro de 2024 e por lá ficou. O LCP também desceu: de 4,3 segundos em setembro de 2022 para 1,9 em outubro de 2023.

200 ms500 msAgo 2022Out1450 msJan 20231350 msAbr475 msJulOutJan 2024Abr375 msJulINP no telemóvel, p75
2,5 s4,0 sAgo 20224,3 sOutJan 2023AbrJul1,9 sOutJan 2024Abr2,2 sJulLCP no telemóvel, p75
loopearplugs.com no CrUX, telemóvel, de agosto de 2022 a julho de 2024. Uma barra por mês, p75, a partir dos dados do CrUX da Google no BigQuery. Verde é bom, laranja precisa de melhorias, vermelho é fraco.
"No telemóvel ficou cerca de 800 ms mais rápido e a conversão no checkout subiu 7%. Pagou-se praticamente de imediato."

Nathan Ziarczyk, Engineering Lead, Loop

O que aprendemos

Cada app da Shopify acrescenta um pouco a cada clique

Instala-se uma app por causa de uma funcionalidade, e o script carrega em páginas e cliques que nada têm a ver com isso. Sozinha, custa pouco. Acumulada na página de produto com o tema e as tags, passa a fazer parte do clique lento.

O INP corrige-se no template

As definições das apps raramente mudam o que corre num clique. É o código do tema que decide isso: o que faz o adicionar ao carrinho, quando o cart drawer renderiza e que scripts de apps carregam.

Cliques mais rápidos a caminho do checkout compensam

Não posso prometer 7%. Essa foi a medição da própria Loop, na loja deles.

Arjen Karel

Cliques lentos na sua loja Shopify no telemóvel?

De um a três dias por semana, sprint a sprint, a trabalhar com os seus developers.

Loop Earplugs: INP no telemóvel cerca de 800 ms mais rápido, conversão no checkout +7% Core Web Vitals Loop Earplugs: INP no telemóvel cerca de 800 ms mais rápido, conversão no checkout +7%