컨설팅 · Loop Earplugs

Loop Earplugs: 모바일 INP 약 800 ms 단축, 체크아웃 전환율 +7%

모바일에서 클릭할 때마다 템플릿, 앱, 태그를 기다려야 했던 Shopify 스토어입니다. 어디를 살펴봐야 하는지 짚어 주었고, 수정은 개발팀이 직접 진행했습니다.

~800 ms모바일 INP 단축
+7%체크아웃 전환율, 자체 측정 수치
고객사Loop Earplugs
플랫폼Shopify
서비스컨설팅, 필요에 따른 교육 병행
고객사

Loop Earplugs, Shopify 테마 위에 앱이 얹힌 구조

Loop는 온라인으로 귀마개를 판매합니다. 모바일에서는 체크아웃으로 가는 과정에서 장바구니에 담고 카트 드로어가 열릴 때 화면 반응이 나타나기까지 너무 오래 걸렸습니다.

Loop Earplugs homepage
문제 진단과 해결

모바일 장바구니 담기: 테마 코드, 앱, 태그, 카트 드로어

함께 INP 트레이스를 분석했습니다. 클릭 지연은 테마, 앱, 태그 전반에 분산되어 있었으며, 어느 한 가지만의 문제가 아니었습니다. 수정 작업은 개발팀이 직접 진행했고, 필요한 부분은 트레이스 분석 방법을 교육했습니다.

문제점
조치 내용
INP
테마 컴포넌트가 한 번의 클릭에 화면 표시에 필요한 수준보다 훨씬 많은 작업을 처리했습니다.
개발팀이 클릭당 작업량을 줄였습니다. 컴포넌트가 화면을 먼저 업데이트하고 나머지 작업을 나중에 처리합니다.
INP
테마의 장바구니 담기 JavaScript와 카트 드로어가 동일한 클릭에서 함께 실행되었고, 드로어 전체가 다시 렌더링되었습니다.
드로어가 변경된 부분만 렌더링합니다.
INP
페이지에 설치된 앱들이 동일한 클릭에 각자의 작업을 더하고 있었습니다.
부하가 너무 큰 앱은 제거하거나 교체했습니다.
2023년 봄

2023년 2월에 Nathan과 처음 이야기를 나눴습니다. 당시 모바일 INP는 약 1초였고, 3월에는 1,350 ms에 달했습니다. 함께 트레이스를 확인해 보니 앱들이 클릭에 끼어들고 있었습니다. 3월에 ShopMessage를 제거했습니다. 모든 클릭과 스크롤을 감지하는 세션 레코더인 Lucky Orange는 5월 12일에 Builder.io 트래킹과 함께 제거했습니다.

개선 전홈페이지, 2023년 2월 25일: 앱 스크립트 12개
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
개선 후2023년 5월 18일: 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
인터넷 아카이브에서 확인한 Loop 홈페이지의 Shopify 로드 목록 내 앱 스크립트입니다. Lucky Orange와 Builder.io 트래킹은 2023년 5월 10일에서 12일 사이에, ShopMessage는 3월에 제거되었습니다.
2023년 11월

그다음은 테마였습니다. 장바구니 담기를 클릭할 때마다 카트 드로어가 동작하는 동일한 클릭에서 Shopify에 섹션 3개를 다시 렌더링하도록 요청하고 있었습니다. 개발팀은 2023년 11월 20일에 해당 코드 라인을 삭제했습니다. 2024년 2월에는 모든 fetch 요청을 감싸고 있던 Klaviyo 스니펫도 제거했습니다.

개선 전product-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);}
개선 전cart-notification.js, 동일한 클릭에서 실행
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();
Loop 테마의 아카이브 코드입니다. 장바구니 담기를 누를 때마다 Shopify에 렌더링된 섹션 3개를 요청했고, cart-notification.js가 이를 페이지에 각각 교체해 넣었습니다. 같은 주에 jQuery도 함께 제거하여 홈페이지 테마 스크립트가 7개에서 5개로 줄었습니다.
CrUX 데이터

봄에 CrUX 수치가 크게 떨어졌습니다. 모바일 INP는 2023년 3월 1,350 ms에서 6월 475 ms로 떨어지며 Nathan이 언급한 약 800 ms 단축에 근접했습니다. 그해 가을에는 550 ms로 다소 올랐습니다. 테마를 수정한 후 2024년 2월에는 375 ms까지 떨어졌으며, 이후 안정적으로 유지되었습니다. LCP 역시 2022년 9월 4.3초에서 2023년 10월 1.9초로 줄었습니다.

200 ms500 ms2022년 8월10월1450 ms2023년 1월1350 ms4월475 ms7월10월2024년 1월4월375 ms7월모바일 INP, p75
2.5초4.0초2022년 8월4.3초10월2023년 1월4월7월1.9초10월2024년 1월4월2.2초7월모바일 LCP, p75
loopearplugs.com의 CrUX 데이터(모바일, 2022년 8월~2024년 7월). BigQuery의 Google CrUX 데이터 기준 월별 p75 막대 그래프입니다. 녹색은 좋음, 주황색은 개선 필요, 빨간색은 나쁨을 나타냅니다.
"모바일 반응 속도가 약 800ms 빨라졌고 체크아웃 전환율이 7% 올랐습니다. 투자 비용은 거의 바로 회수되었습니다."

Nathan Ziarczyk, Loop 엔지니어링 리드

배운 점

Shopify 앱은 클릭할 때마다 부하를 더합니다

특정 기능 하나를 쓰려고 앱을 설치해도, 해당 스크립트는 그 기능과 무관한 페이지와 클릭에서도 로드됩니다. 앱 하나만 보면 부하가 작을 수 있습니다. 하지만 상품 페이지에서 테마, 태그와 겹겹이 쌓이면 느린 클릭을 만듭니다.

INP는 템플릿에서 해결합니다

앱 설정만으로는 클릭 시 실행되는 작업을 바꾸기 어렵습니다. 실제 실행 내용은 테마 코드가 결정합니다. 장바구니 담기 동작, 카트 드로어 렌더링 시점, 어떤 앱 스크립트를 로드할지 모두 테마 코드에 달려 있습니다.

체크아웃 동선의 빠른 클릭은 성과로 이어집니다

7% 상승을 무조건 보장할 수는 없습니다. 이는 Loop가 자체 스토어에서 직접 측정한 수치입니다.

Arjen Karel

모바일 Shopify 스토어의 클릭 반응이 느립니까?

개발팀과 함께 주 1~3일, 스프린트 단위로 협업합니다.

컨설팅 진행 방식 확인하기

더 많은 성과는 고객사 페이지에서 확인할 수 있습니다.

Loop Earplugs: 모바일 INP 약 800 ms 단축, 체크아웃 전환율 +7% Core Web Vitals Loop Earplugs: 모바일 INP 약 800 ms 단축, 체크아웃 전환율 +7%