Interaksi hingga Gambar Berikutnya (INP)

Apa yang diukur INP, ambang ≤200 ms pada p75, alasan metrik ini menggantikan FID pada 2024, dan cara nyata memperbaiki skor yang buruk—dari sudut pandang SEO teknis.

Pertama kali diterbitkan: 26 Jun 2026 · Terakhir diperbarui: 13 Agu 2026 · Advanced
Bahasa

Interaction to Next Paint (INP) adalah Core Web Vital untuk daya tanggap. Metrik ini mengamati setiap klik, ketukan, dan interaksi papan ketik selama satu kunjungan, lalu melaporkan batas latensi yang mencakup hampir semuanya—diukur pada persentil ke-75 dalam data lapangan. Nilai baik adalah ≤200 ms dan nilai buruk >500 ms. INP menggantikan First Input Delay pada 12 Maret 2024 karena FID hanya mengukur penundaan input pada interaksi pertama; INP mengukur latensi penuh semua interaksi, yaitu penundaan input, pemrosesan, dan penyajian. Perbaikannya mencakup memecah tugas panjang, menyerahkan waktu ke utas utama, mengurangi pekerjaan dalam event handler, memperkecil DOM, dan mengendalikan skrip pihak ketiga. INP adalah metrik lapangan; Total Blocking Time merupakan proksi labnya.

Ringkasnya — INP adalah Core Web Vital untuk daya tanggap. Metrik ini mengamati latensi semua klik, ketukan, dan interaksi papan ketik selama satu kunjungan, lalu melaporkan nilai pada persentil ke-75 (satu pencilan dibuang untuk setiap 50 interaksi)—bukan hanya input pertama seperti FID. Latensi interaksi = penundaan input + durasi pemrosesan + penundaan penyajian. Baik ≤ 200 ms dan buruk > 500 ms berdasarkan data lapangan pada p75. INP menggantikan FID pada 12 Maret 2024 (FID dihapus sepenuhnya dari berbagai alat pada September 2024). Perbaikannya adalah memecah tugas panjang, menyerahkan waktu ke utas utama dengan scheduler.yield(), mengurangi pekerjaan dalam penangan peristiwa, memperkecil DOM, dan menunda skrip pihak ketiga. INP adalah metrik lapangan; Total Blocking Time merupakan proksi lab, dan keduanya tidak selalu selaras.

Apa yang diukur INP—dan perbedaannya dari FID

Definisi Google sangat tepat: INP “assesses a page’s overall responsiveness to user interactions by observing the latency of all click, tap, and keyboard interactions that occur throughout the lifespan of a user’s visit to a page.” (terjemahan) “menilai daya tanggap keseluruhan sebuah halaman terhadap interaksi pengguna dengan mengamati latensi semua interaksi klik, ketuk, dan papan ketik yang terjadi sepanjang kunjungan pengguna ke halaman tersebut.”

Evidence for this claim INP observes click, tap, and keyboard interaction latency throughout a page visit rather than measuring only the first input delay. Scope: Current web.dev INP definition and qualifying interaction types. Confidence: high · Verified: web.dev: Interaction to Next Paint

Ungkapan “semua interaksi… sepanjang kunjungan” adalah inti metrik ini. INP merupakan metrik tingkat kunjungan, bukan metrik waktu pemuatan. Alasan Google adalah bahwa sebagian besar waktu pengguna di halaman berlangsung setelah halaman dimuat, sehingga daya tanggap saat digunakan lebih penting daripada kesan pertama saja.

Perbandingan dengan First Input Delay adalah cara paling jelas untuk memahaminya: “FID only measured the input delay of the first interaction on a page. INP improves on FID by observing all interactions on a page, beginning from the input delay, to the time it takes to run event handlers.” (terjemahan) “FID hanya mengukur penundaan input pada interaksi pertama di sebuah halaman. INP meningkatkan cakupan FID dengan mengamati semua interaksi di halaman, mulai dari penundaan input hingga waktu yang diperlukan untuk menjalankan penangan peristiwa.” FID hanya mengukur satu hal dari satu interaksi—waktu tunggu sebelum penangan dimulai— serta mengabaikan lama penangan berjalan dan lama layar diperbarui. INP mengukur latensi penuh setiap interaksi.

Ada satu nuansa yang penting karena sering disalahpahami: INP bukan secara harfiah interaksi terburuk. Agar halaman tidak dihukum karena satu lonjakan acak, browser membuang satu pencilan untuk setiap 50 interaksi, lalu melaporkan nilai pada persentil ke-75 tampilan halaman. Pada kunjungan dengan sedikit interaksi, nilai itu adalah interaksi paling lambat; pada kunjungan yang sibuk, beberapa pencilan disisihkan.

Cakupan interaksi juga lebih sempit daripada dugaan banyak orang. Hanya klik, ketukan, dan penekanan tombol papan ketik yang diukur. Menggulir, mengarahkan penunjuk, dan memperbesar tampilan secara tegas dikecualikan. Satu gestur dapat memicu beberapa peristiwa—ketukan menghasilkan pointerdown, pointerup, dan click—yang dikelompokkan INP sebagai satu interaksi, bukan tiga. Dalam kelompok itu, INP mengambil durasi peristiwa individual terpanjang, bukan jumlah seluruh durasi. Jadi, pointerdown yang cepat diikuti click yang lambat tetap dilaporkan sebagai satu interaksi sebesar peristiwa lambat tersebut. Jika tidak ada interaksi yang memenuhi syarat selama kunjungan, halaman itu tidak memperoleh nilai INP.

Tiga bagian latensi interaksi

Latensi setiap interaksi terbagi menjadi tiga bagian berurutan. Ingat model ini karena setiap bagian mengarah pada perbaikan yang berbeda:

Interaction latency = Input delay + Processing duration + Presentation delay

  1. Penundaan input — waktu sebelum penangan peristiwa dapat mulai berjalan, biasanya karena utas utama sedang menyelesaikan tugas panjang.
  2. Durasi pemrosesan — waktu yang diperlukan seluruh fungsi panggilan balik penangan peristiwa untuk dieksekusi.
  3. Penundaan penyajian — waktu sejak penangan selesai hingga browser menggambar frame berikutnya di layar.

Build atribusi web-vitals menampilkan ketiganya (inputDelay, processingDuration, dan presentationDelay) agar Anda dapat melihat bagian yang mendominasi pada interaksi nyata. Menurut data Web Almanac 2024, penundaan penyajian sering menjadi bagian tunggal terbesar pada median. Namun, durasi pemrosesan biasanya memberi peluang optimasi terbesar karena bagian inilah yang membengkak pada halaman yang dibangun dengan buruk.

INP measures the whole interaction. Attribute the delay to the waiting, handler, or presentation phase before choosing a fix. Sumber: web.dev

The interaction begins with input delay while the event waits for the main thread. Processing duration follows while the event-handler callbacks execute. Presentation delay runs from the end of the handlers until the browser lays out and paints the next frame. Together these three sequential phases make up the interaction latency measured by INP.

© Patrick Stox LLC · CC BY 4.0 ·

Ambang penilaian—dan batasan data lapangan p75

PenilaianNilai INPTitik pengukuran
Baik≤ 200 msPersentil ke-75, lapangan
Perlu ditingkatkan> 200 ms dan ≤ 500 msPersentil ke-75, lapangan
Buruk> 500 msPersentil ke-75, lapangan

Google Search Central menyatakan targetnya dengan jelas—“an INP of less than 200 milliseconds” (terjemahan) “INP kurang dari dua ratus milidetik”—dan membingkai keseluruhan programnya sebagai: “We highly recommend site owners achieve good Core Web Vitals for success with Search.” (terjemahan) “Kami sangat menyarankan pemilik situs mencapai Core Web Vitals yang baik agar berhasil di Penelusuran.” Anggaran 200 ms benar-benar ketat karena browser menginginkan satu frame setiap ~16,7 ms pada 60 fps; seluruh pekerjaan penangan beserta perenderan harus muat di dalamnya.

Evidence for this claim INP is good at 200 milliseconds or less and poor above 500 milliseconds, assessed at the 75th percentile. Scope: Current web.dev INP thresholds for field measurement. Confidence: high · Verified: web.dev: Interaction to Next Paint

Mengapa INP merupakan metrik lapangan dan data lab tidak cukup

Ini jebakan bagi banyak praktisi SEO: skor Lighthouse hijau tidak menjamin INP yang baik. Namun, pernyataan “Lighthouse tidak dapat mengukur INP” harus dibagi menjadi tiga kasus agar Anda tidak keliru membaca alat sendiri:

  1. Lighthouse standar tanpa interaksi sama sekali tidak melaporkan INP. Alat ini hanya mengamati pemuatan halaman—tidak pernah mengeklik, mengetuk, atau mengetik— sehingga tidak ada interaksi yang bisa dihitung. Sebagai gantinya, Lighthouse memakai Total Blocking Time (TBT) sebagai proksi waktu pemuatan. Menurut Google, “Because TBT correlates well with INP, a page with a high TBT is a reasonable indicator that there may be high INP values during load.” (terjemahan) “Karena TBT berkorelasi baik dengan INP, halaman dengan TBT tinggi cukup masuk akal sebagai petunjuk bahwa nilai INP mungkin tinggi selama pemuatan.” Kata kuncinya adalah “selama pemuatan.” TBT tidak menjelaskan interaksi yang memburuk sepuluh detik kemudian saat widget yang dimuat lambat berjalan; TBT adalah proksi, bukan pengganti atau rumus konversi.
  2. Interaksi yang dijalankan secara manual atau sintetis—mengeklik tombol nyata di DevTools atau membuat skrip klik dalam alat lab—menghasilkan angka latensi bergaya INP yang nyata untuk satu interaksi tersebut. Ini berguna untuk mereproduksi masalah tertentu. Namun, hasilnya tetap satu alur terskrip pada satu perangkat, sehingga tidak mewakili campuran perangkat, pengguna, sasaran interaksi, dan seluruh umur kunjungan di lapangan. Menurut Google, nilainya “will be dependent on what interactions are performed during the measurement period,” (terjemahan) “akan bergantung pada interaksi yang dilakukan selama periode pengukuran”, sedangkan perilaku pengguna nyata terlalu beragam untuk diwakili satu pengujian lab.
  3. Distribusi lapangan adalah bentuk INP yang sebenarnya. Karena itu, sumber otoritatifnya adalah data lapangan dari Chrome User Experience Report (CrUX), yang ditampilkan melalui PageSpeed Insights dan laporan Core Web Vitals Search Console. “Field data is the best source of information you can draw on when it comes to understanding which interactions are problematic for actual users.” (terjemahan) “Data lapangan adalah sumber informasi terbaik untuk memahami interaksi mana yang bermasalah bagi pengguna sebenarnya.”

Gunakan lab pada kasus 1 dan 2 untuk menemukan serta mereproduksi interaksi lambat; gunakan data lapangan pada kasus 3 untuk memastikan apakah masalah itu benar-benar menurunkan skor pengunjung nyata.

Mengapa skor INP Anda buruk

Hampir setiap masalah INP berawal dari utas utama yang terblokir ketika pengguna berinteraksi. Penyebab yang lazim adalah:

  • Tugas panjang. Setiap tugas utas utama di atas 50 ms adalah tugas panjang; bagian di atas 50 ms merupakan “periode pemblokiran”. Selama tugas itu berjalan, interaksi tidak dapat ditangani. Ini penyebab tunggal terbesar.
  • Penangan peristiwa yang berat. Terlalu banyak pekerjaan sinkron di dalam penangan klik atau input langsung memperpanjang durasi pemrosesan.
  • Ukuran DOM besar. DOM yang lebih besar membutuhkan biaya perenderan lebih tinggi, sehingga memperpanjang penundaan input dan penyajian.
  • Skrip pihak ketiga. Menurut Web Almanac, penyedia persetujuan, pengelola tag, analitik, dan widget obrolan termasuk pelanggar utama—bahkan pada situs konten sederhana. Inilah tempat pertama yang saya periksa pada halaman yang tidak saya bangun.
  • JavaScript pascapemuatan. Halaman yang sudah dirender belum tentu selesai memuat; skrip yang dievaluasi setelah gambar pertama dapat memblokir interaksi awal.

Cara memperbaikinya

Berikut strateginya, kira-kira berdasarkan urutan dampak:

1. Pecah tugas panjang. Saran utama Google untuk penangan adalah “do as little work as possible in them.” (terjemahan) “lakukan sesedikit mungkin pekerjaan di dalamnya.” Pecah pekerjaan besar menjadi tugas yang lebih kecil agar browser dapat menyisipkan interaksi pengguna. Setelah tugas dipecah, “the browser can respond to higher-priority work much sooner — including user interactions.” (terjemahan) “browser dapat jauh lebih cepat merespons pekerjaan berprioritas lebih tinggi—termasuk interaksi pengguna.”

2. Serahkan waktu ke utas utama. Cara modern yang disarankan adalah scheduler.yield() (Chrome 129+, Firefox 142+): await scheduler.yield() menjeda kode, memberi browser kesempatan menangani pekerjaan tertunda, lalu melanjutkan dengan prioritas agar tugas lain tidak mendahului kelanjutannya. Alternatif klasiknya adalah setTimeout(..., 0), yang tetap berfungsi tetapi menempatkan kode di belakang antrean tugas (dan browser menerapkan batas bawah 5 ms setelah beberapa panggilan bersarang). Satu hal yang perlu dihentikan adalah isInputPending(); Google kini menyatakan “we no longer recommend using this API.” (terjemahan) “kami tidak lagi menyarankan penggunaan API ini.” Lihat polanya di tab Skrip.

3. Kurangi pekerjaan dalam penangan peristiwa—tunda pekerjaan yang tidak kritis. Jalankan secara sinkron hanya pembaruan visual yang dibutuhkan frame berikutnya; letakkan pekerjaan lain seperti penyimpanan, pemeriksaan ejaan, analitik, dan penghitungan kata di belakang requestAnimationFrame + setTimeout atau penyerahan waktu. Pengguna segera melihat respons, sedangkan pencatatan berlangsung sesudahnya.

4. Hindari layout thrashing. Membaca properti tata letak segera setelah menulis gaya dalam tugas yang sama memaksa browser menghitung tata letak secara sinkron, padahal pekerjaan itu dapat dikelompokkan. Kelompokkan pembacaan terlebih dahulu, lalu penulisan.

5. Kurangi ukuran DOM. Pohon yang lebih kecil dirender lebih cepat. content-visibility dapat merender elemen di luar layar secara bertahap agar elemen tersebut tidak membebani pemuatan atau interaksi.

6. Audit dan tunda skrip pihak ketiga. Ini perbaikan SEO dengan daya ungkit terbesar pada situs nyata. Muat skrip persetujuan, tag, dan analitik secara bertahap; aktifkan setelah interaksi; atau pindahkan dari jalur kritis. Halaman konten yang tampak “ringan” dapat gagal INP hanya karena widget sematan yang berat.

Apakah INP memengaruhi peringkat?

Ya. INP adalah satu dari tiga Core Web Vitals, dan Core Web Vitals merupakan bagian dari sinyal pengalaman halaman Google. Namun, bobotnya ringan: pemecah seri antara hasil dengan relevansi sebanding, bukan faktor peringkat utama. Jangan mengejar skor INP sempurna dengan mengorbankan konten dan relevansi.

Ada dua poin SEO praktis. Pertama, seluler adalah angka yang sulit. Dalam Web Almanac 2024, ~74% situs seluler lulus INP dibandingkan ~97% di desktop. Karena Google mengindeks dengan pendekatan yang mengutamakan seluler, angka selulerlah yang penting. Kedua, situs kompleks berkinerja lebih buruk: hanya ~53% dari 1 000 situs teratas lulus karena halaman kaya fitur mengirim lebih banyak JavaScript yang memblokir utas utama. Pengembangan fitur berat meningkatkan risiko INP, dan halaman dengan banyak interaksi—produk, pembayaran, hasil pencarian, dan formulir—jauh lebih rentan daripada konten statis.

INP dibandingkan FID—gambaran lengkap

FID (dipensiunkan)INP (saat ini)
InteraksiHanya yang pertamaSemua, sepanjang kunjungan
Hal yang dihitungHanya penundaan inputPenundaan input + pemrosesan + penyajian
Ambang baik≤ 100 ms≤ 200 ms
StatusDihapus dari alat Sep 2024Core Web Vital sejak 12 Mar 2024

FID telah dihapus—dari Search Console pada hari peluncuran INP, lalu dari BigQuery/API CrUX pada September 2024. Jika suatu alat atau audit masih merujuk FID, rujukannya sudah usang.

Kasus tepi yang membuat data INP berbeda

Beberapa kekhasan siklus hidup menjelaskan sebagian besar pertanyaan “mengapa RUM saya tidak cocok dengan CrUX”:

  • Tanpa interaksi, tidak ada INP. Jika kunjungan tidak pernah menerima klik, ketukan, atau penekanan tombol—atau hanya menerima gestur yang dikecualikan seperti menggulir dan mengarahkan penunjuk—tampilan halaman itu tidak memiliki nilai INP. Ini wajar pada halaman konten baca-saja, bukan kesalahan pemantauan.
  • Iframe dihitung dalam metrik, tetapi JavaScript Anda tidak dapat melihat ke dalamnya. Interaksi di dalam iframe sematan seperti iklan, widget, atau formulir berkontribusi pada INP halaman. Namun, skrip RUM pihak pertama tidak dapat membaca peristiwa dari iframe lintas origin seperti metrik milik browser. Karena itu, CrUX dan RUM sesama origin dapat berbeda secara sah pada halaman dengan sematan pihak ketiga. Dokumentasikan kesenjangan ini alih-alih menganggap ketidaksesuaian RUM/lapangan sebagai kesalahan.
  • Pemulihan cache mundur/maju mereset INP ke nol. Halaman yang dipulihkan dari bfcache, misalnya melalui tombol kembali, memulai penghitungan INP baru; interaksi sebelum navigasi tidak dibawa kembali.
  • Tab berumur panjang dan berjalan di latar tetap perlu melaporkan. Tab dapat terbuka berjam-jam tanpa pernah benar-benar dibongkar, terutama di perangkat seluler yang dapat dihentikan sistem operasi. Karena itu, INP sebaiknya dicatat ketika halaman menjadi tersembunyi, bukan hanya saat dibongkar. RUM yang hanya mengirim data pada unload akan diam-diam kehilangan kunjungan tersebut.

Posisi INP dalam Core Web Vitals

INP adalah satu bagian dari Core Web Vitals, bersama Largest Contentful Paint untuk pemuatan dan Cumulative Layout Shift untuk stabilitas visual. Periksa INP di PageSpeed Insights dan laporan Search Console untuk data lapangan, lalu telusuri masalahnya di Lighthouse atau Chrome DevTools untuk data lab melalui proksi TBT. Seluruh data dasarnya berasal dari CrUX.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.