실무에 바로 적용할 수 있는 웹 제작 꿀팁 및 유용한 자료실 공간입니다.
나눔웹이 제공하는 핵심 노하우와 마케팅 인사이트를 자유롭게 활용해 보십시오.

나눔웹 웹 성능 꿀팁

채팅 상담 위젯 때문에 홈페이지가 느릴 때, 첫 스크롤 뒤에 불러오는 법

채팅 상담 버튼을 달고 나서 PageSpeed 점수가 눈에 띄게 떨어진 경험, 생각보다 흔합니다.
위젯 스크립트는 첫 화면에 꼭 필요하지 않은데도 페이지와 함께 내려받아 실행되기 때문입니다.
방문자가 처음 스크롤하거나 화면을 누른 뒤에 위젯을 불러오면 상담 기능은 그대로 두고 첫 로딩만 가볍게 만들 수 있습니다.

💡 async만 붙이면 되는 거 아닌가요?

async는 내려받는 동안 화면 그리기를 막지 않게 해 줄 뿐, 다운로드와 실행 자체는 첫 로딩 시간 안에서 그대로 일어납니다. 채팅 위젯은 버튼 하나를 그리려고 스크립트, 폰트, 이미지를 여러 개 더 불러오는 경우가 많아서, 저사양 휴대폰에서는 이 실행 시간이 터치 반응까지 늦춥니다. 아예 시작 시점을 뒤로 미루는 쪽이 효과가 큽니다.

1. 첫 동작이 생길 때 스크립트를 넣기

업체가 준 설치 코드에서 스크립트 파일을 불러오는 부분만 아래처럼 함수로 감쌉니다. scroll, pointerdown, keydown 중 하나라도 생기면 한 번만 실행되고, 아무 동작 없이 머무는 방문자를 위해 몇 초 뒤 타이머로도 불러옵니다. { once: true }를 주면 이벤트 리스너가 한 번 실행된 뒤 스스로 빠집니다.

<!-- head에 바로 넣던 위젯 스크립트 대신 body 끝에 -->
<script>
(function () {
  var loaded = false;
  function loadChat() {
    if (loaded) return;
    loaded = true;
    var s = document.createElement('script');
    s.src = 'https://업체가-준-주소/plugin.js'; /* 안내받은 주소 그대로 */
    s.async = true;
    document.body.appendChild(s);
  }
  /* 첫 스크롤, 터치, 키 입력 중 하나만 생겨도 불러오기 */
  ['scroll', 'pointerdown', 'keydown'].forEach(function (ev) {
    window.addEventListener(ev, loadChat, { once: true, passive: true });
  });
  /* 아무 동작이 없어도 6초 뒤에는 불러오기 */
  setTimeout(loadChat, 6000);
})();
</script>

설치 코드가 boot나 설정 함수를 먼저 호출하고 그 호출을 큐에 쌓아 두는 구조라면, 그 부분은 원래 자리에 두고 스크립트 삽입 부분만 위 함수로 옮기면 됩니다. 구조가 헷갈리면 업체 개발 문서에서 지연 로딩이나 수동 초기화 항목을 먼저 찾아보세요. 공식으로 지원하는 방법이 있다면 그쪽이 가장 안전합니다.

2. 미뤄도 되는 것과 미루면 안 되는 것 나누기

이 방식은 다른 외부 스크립트에도 쓸 수 있지만, 전부 미루면 오히려 손해입니다. 저희가 작업할 때 쓰는 기준은 "첫 화면을 보는 데 필요한가, 바로 나가는 방문자도 기록해야 하는가" 두 가지입니다.

스크립트지연 여부이유
채팅 상담, 리뷰 위젯미뤄도 됨첫 화면을 보는 데 필요 없음
SNS 피드, 지도 퍼가기미뤄도 됨대부분 페이지 아래쪽에 있음
GA4, 광고 전환 태그미루지 않음바로 나가는 방문자도 집계돼야 함
쿠키 동의 배너미루지 않음다른 태그보다 먼저 떠야 함

3. 정말 늦게 불러오는지 확인하기

크롬 개발자 도구 Network 탭을 열고 위젯 도메인으로 필터를 건 뒤 새로고침합니다. 화면을 건드리기 전에는 아무 요청도 없다가 스크롤하는 순간 줄줄이 찍히면 제대로 적용된 겁니다. 그다음 PageSpeed Insights로 다시 재 보세요. 한 번만 재면 편차가 크니 두세 번 측정해 비교하는 게 좋습니다. 마지막으로 휴대폰에서 상담 버튼을 직접 눌러 대화창이 정상적으로 열리는지까지 봐야 끝입니다.

"상담 버튼은 손님이 둘러보기 시작한 뒤에 떠도 늦지 않습니다."

나눔웹은 외부 스크립트를 하나씩 따져 보고, 꼭 필요한 것만 첫 화면에 남깁니다.


List of Articles
번호 분류 제목 글쓴이
» 웹 성능 채팅 상담 위젯 때문에 홈페이지가 느릴 때, 첫 스크롤 뒤에 불러오는 법 new 나눔웹
98 마케팅 다음 검색 등록 방법, 웹마스터도구 PIN 발급부터 robots.txt 인증까지 new 나눔웹
97 모바일 카톡 인앱 브라우저에서 홈페이지가 이상할 때, 감지하고 외부 브라우저로 안내하는 법 나눔웹
96 UI/UX 스크롤 등장 애니메이션 만들기, IntersectionObserver로 가볍게 처리하는 법 나눔웹
95 퍼블리싱 인쇄용 CSS 설정법, 견적서 페이지를 출력하면 메뉴·배너까지 찍힐 때 나눔웹
94 UI/UX 배너 이미지 위 글자가 안 읽힐 때, 그라데이션 오버레이로 대비 맞추는 법 나눔웹
93 모바일 모바일 사진 첨부 버튼 만들기, accept와 capture로 카메라·앨범 여는 법 나눔웹
92 마케팅 구글 태그 관리자(GTM) 설치법, 광고·분석 코드를 소스 수정 없이 관리하는 순서 나눔웹
91 웹 성능 한글 웹폰트 용량 줄이기, 서브셋과 woff2로 무거운 폰트 가볍게 만드는 법 나눔웹
90 UI/UX 드롭다운 메뉴가 금방 닫힐 때, 틈 메우기와 transition-delay로 잡는 법 나눔웹
89 퍼블리싱 다크 모드 CSS 대응법, 폰을 어둡게 했더니 입력창만 하얗게 뜰 때 나눔웹
88 웹 성능 뒤로 가기 하면 페이지가 처음부터 다시 뜰 때, bfcache 막는 원인 찾는 법 나눔웹
87 마케팅 LocalBusiness 구조화 데이터 작성법, 구글에 상호·주소·영업시간 정확히 알리기 나눔웹
86 UI/UX 링크 밑줄이 글자에 붙어 답답할 때, text-underline-offset으로 다듬는 법 나눔웹
85 모바일 모바일 키보드가 입력창을 가릴 때, visualViewport로 화면 맞추는 법 나눔웹
84 웹 성능 사용하지 않는 CSS 줄이기, 크롬 Coverage 탭으로 안 쓰는 코드 찾는 법 나눔웹
83 마케팅 GA4 문의 전환 설정법, 감사 페이지 도달로 실제 문의 수 세는 순서 나눔웹
82 UI/UX 고정 헤더에 제목이 가려질 때, scroll-margin-top으로 앵커 맞추는 법 나눔웹
81 퍼블리싱 CSS 컨테이너 쿼리 쓰는 법, 화면이 아니라 카드 폭에 맞춰 반응하기 나눔웹
80 UI/UX 폼 에러가 입력 전에 뜨는 문제, :user-invalid로 고치는 법 나눔웹
Board Pagination Prev 1 2 3 4 5 Next
/ 5
rhwlsghkcocndgus XE2.1.39 STAGE1.5.4