Website Bisnis

Cara Pasang CLS Budget di Website Bisnis Next.js 2026: Kerangka 5 Langkah supaya Cumulative Layout Shift Tetap di Bawah 0,1

Vito Atmo
Vito Atmo·3 Juni 2026·0 kali dibaca·4 min baca
Cara Pasang CLS Budget di Website Bisnis Next.js 2026: Kerangka 5 Langkah supaya Cumulative Layout Shift Tetap di Bawah 0,1

TL;DR: Pasang CLS Budget di Next.js dengan lima langkah: tetapkan ambang halaman (umumnya 0,08), ukur baseline CrUX, audit komponen pemicu shift, wrap next/image dengan container aspect-ratio, lalu pasang gate Lighthouse CI di pipeline rilis. Pendekatan ini memaksa setiap perubahan UI lewat satu angka yang sama.

Banyak tim web bisnis Indonesia mengejar skor Largest Contentful Paint dan Interaction to Next Paint, tetapi melupakan stabilitas visual. Padahal Cumulative Layout Shift adalah metrik yang paling cepat membuat user salah klik, terutama pada tombol pemesanan dan form lead. Dalam beberapa proyek website klinik dan UMKM yang kami garap di 2025-2026, perbaikan CLS dari 0,18 ke 0,06 menurunkan bounce rate 12-18 persen tanpa perubahan copy.

Artikel ini ringkas lima langkah praktis untuk memasang CLS Budget pada stack Next.js, lengkap dengan komponen yang sering bocor dan cara menutupnya.

Mengapa Budget, Bukan Audit Sekali Pakai

Audit CLS sekali pakai memperbaiki halaman hari ini, tetapi tim sering kembali ke skor merah setelah satu sprint. Budget mengikat tim ke angka yang sama setiap rilis. Pendekatan ini sama seperti LCP Budget dan INP Budget yang sudah jadi standar Core Web Vitals di proyek kami.

Kerangka 5 Langkah

LangkahTujuanOutput
1. Tetapkan ambangSepakat angka per template0,06-0,08 mobile, 0,08 desktop
2. Ukur baselineLihat skor real usersCrUX p75 per URL
3. Audit sumber shiftIdentifikasi penyebabDaftar komponen risiko
4. Wrap next/imageHilangkan shift gambarContainer aspect-ratio konsisten
5. Pasang gate CICegah regresiLighthouse CI di pipeline

Langkah 1: Tetapkan Ambang per Template

Mobile di 0,06, desktop di 0,08. Sisakan ruang 0,02 dari ambang Google supaya outlier tidak melewati batas. Untuk template dengan iklan atau banner cookie, alokasikan budget per komponen: Next.js Image CLS Budget 0,03, font 0,02, banner 0,02, sisanya untuk interaksi.

Langkah 2: Ukur Baseline dari CrUX

Pakai CrUX Dataset atau PageSpeed Insights untuk ambil p75 CLS per URL utama. Jangan andalkan Lighthouse lab score, karena CLS sensitif ke kondisi pengguna nyata.

Langkah 3: Audit Sumber Shift

Buka halaman di Chrome DevTools, panel Performance, centang "Layout Shifts". Catat tiga sumber teratas. Pelaku tetap biasanya: gambar tanpa dimensi, font swap, banner cookie, dan widget pihak ketiga.

Langkah 4: Wrap next/image dengan Container Konsisten

Pola yang kami pakai di proyek Vetmo dan Nalesha:

tsx
<div className="relative aspect-[16/9]">
  <Image src={...} fill sizes="(min-width: 1024px) 50vw, 100vw" alt="..." />
</div>

Container reserve ruang sebelum gambar load. Saat dipakai dengan Next.js Image Cache Policy yang benar, kontribusi gambar ke CLS jatuh ke bawah 0,02.

Langkah 5: Pasang Gate Lighthouse CI

Tambahkan Lighthouse CI di GitHub Actions dengan assertion categories:performance minimal 90 dan cumulative-layout-shift di bawah 0,08. Build gagal kalau angka melewati budget. Referensi resmi tersedia di dokumentasi web.dev tentang CLS.

Studi Singkat: Klinik Vetmo

Pada audit Vetmo Q1 2026, halaman booking punya CLS 0,21 karena banner promo muncul setelah 1,4 detik dan menggeser tombol "Booking Sekarang". Kami reserve slot 64 px untuk banner via SSR, lalu wrap hero image dengan aspect ratio tetap. Dalam 9 hari skor turun ke 0,07, dan conversion booking naik 11 persen.

Pertanyaan Umum

Apakah animasi memicu CLS di Next.js?

Tidak jika pakai transform atau opacity. Yang memicu CLS adalah perubahan layout properti seperti margin, height, atau posisi tanpa input pengguna.

Render banner di SSR atau reserve placeholder fixed dengan tinggi yang sama. Jangan inject lewat script async tanpa ruang yang sudah disisihkan.

Apakah Lighthouse CI cukup atau perlu monitoring lain?

Lighthouse CI menahan regresi sebelum rilis. Untuk monitoring real-user, pakai CrUX bulanan dan field data dari Vercel Analytics atau alternatif.

Apakah dark mode memicu CLS?

Bisa, kalau tema diaktifkan via script yang menghapus dan menambah class setelah paint. Set tema sebelum hidrasi React dengan inline script di head.

Penutup

CLS Budget bukan dokumen di Notion. Budget hidup di pipeline CI dan di standar wrapper komponen. Tanpa keduanya, skor akan kembali merah dalam dua sampai tiga sprint. Mulai dari satu template, validasi tiga rilis, lalu replikasi ke template lain.

Bagikan

Artikel Terkait

#cls-budget#core-web-vitals#next-image#website-bisnis

Butuh website yang benar-benar bekerja?

Hubungi Vito untuk konsultasi gratis 15 menit.

WhatsApp Sekarang