12CODE
Q

웹사이트의 대용량 자바스크립트 실행 때문에 INP(Interaction to Next Paint) 점수가 악화될 때, SEO 랭킹 하락을 막으려면 스크립트 지연 로딩(defer)을 어떻게 세팅하나요?

50개 영역 중 9위 · 184건

이런 질문도 같은 답입니다

INP 악화 SEO 랭킹자바스크립트 defer 세팅Core Web Vitals INP 최적화

결론부터

먼저 지표부터 정확히 짚으면, INP는 사용자의 상호작용(클릭·탭·키 입력)부터 화면에 다음 변화가 그려지기까지의 전체 지연을 측정하는 코어 웹 바이탈로, 2024년 3월 기존 FID를 대체했습니다.

답변

4단계
01

구글은 상위 75퍼센타일 기준 200ms 이하를 '양호'로 정의하고, 이 기준을 넘기면 검색 랭킹 신호 중 페이지 경험 요소에서 불리하게 작용할 수 있습니다.

02

script 태그의 defer 속성은 HTML 파싱이 끝난 뒤 스크립트를 실행하도록 지연시키지만, 실행 자체는 여전히 메인 스레드에서 일어납니다. 즉 defer는 초기 렌더링을 막지 않는다는 이점은 있지만, 실행될 때 메인 스레드를 점유하는 건 동일해서 무거운 스크립트의 실행 자체가 INP를 악화시키는 문제는 defer만으로 완전히 해결되지 않습니다.

03

그래서 실무에서는 defer와 함께 세 가지를 보완적으로 씁니다. 코드 분할로 즉시 필요하지 않은 기능은 별도 번들로 분리하고, 동적 import()로 유저 상호작용이 실제 발생한 시점에만 관련 스크립트를 로드하며, requestIdleCallback API로 우선순위가 낮은 작업을 브라우저가 유휴 상태일 때 실행하도록 스케줄링하는 것입니다. defer가 '언제 실행을 시작할지'를 늦춘다면, 이 기법들은 '얼마나 많은 코드를 한 번에 실행할지' 자체를 줄이는 접근이라 서로 보완됩니다.

04

마지막으로 핵심은 장시간 실행되는 자바스크립트 작업(50ms 이상 메인 스레드를 점유하는 롱태스크)을 여러 개의 작은 작업으로 쪼개는 것입니다. setTimeout이나 scheduler.yield() 같은 API로 긴 작업 사이사이에 브라우저가 사용자 입력에 반응할 틈을 만들어주면, 전체 작업 완료 시간은 비슷해도 사용자가 느끼는 반응성은 크게 개선됩니다.

같이 보면 좋은 게시글

3편

12CODE ACADEMY

체계적으로 배우고 싶다면

퍼포먼스 광고 운영 과정에서 이 판단 기준을 순서대로 다룹니다.

과정 둘러보기 →

×N의 의미

같은 취지의 질문이 몇 번 반복됐는지입니다. ×10을 넘으면 개인의 실수가 아니라 구조적으로 헷갈리게 설계된 지점이라고 보는 편이 정확합니다.

MKT TOOLS

실무자를 위한 무료 도구

카피 글자수 검사, CPC·ROAS 계산기, UTM 생성기까지.

워크스페이스 열기 →