Interaction -e sonraki Paint (INP)

ne INP measures, ≤200 ms threshold at p75, neden o replaced FID in 2024, ve nasıl -e aslında düzelt bir poor score — -den bir teknik SEO.

İlk yayın tarihi: 26 Haz 2026 · Son güncelleme: 8 Ağu 2026 · Advanced
Diller

Interaction -e sonraki Paint (INP) dır temel Web Vital bençin responsiveness. o watches her click, tap, ve keyboard interaction genelinde bir visit ve raporlar latency şu (close -e) tümü of them came in altında — measured at 75th percentile in field. Good dır ≤200 ms, poor dır >500 ms. INP replaced ilk Input Delay on March 12, 2024, çünkü FID yalnızca timed ilk interaction's input delay; INP measures full latency (input delay + processing + presentation) of tümü of them. siz düzelt o tarafından breaking up uzun tasks, yielding -e main thread, doing daha az in event handlers, shrinking DOM, ve taming üçüncü-party scripts. o's bir field metric — Total Blocking Time dır onun lab proxy.

TL;DR — INP dır temel Web Vital bençin responsiveness. o observes latency of tümü click, tap, ve keyboard interactions genelinde bir visit ve raporlar değer at 75th percentile (bir outlier dropped per 50 interactions) — değil sadece ilk input like FID yaptı. bir interaction’s latency = input delay + processing duration + presentation delay. Good ≤ 200 ms, poor > 500 ms, judged on field data at p75. o replaced FID on March 12, 2024 (FID fully removed -den araçlar September 2024). düzelt o tarafından breaking up uzun tasks, yielding -e main thread ile scheduler.yield(), doing daha az in event handlers, shrinking DOM, ve deferring üçüncü-party scripts. o’s bir field metric — Total Blocking Time dır lab proxy, ve two yapmayın her zaman agree.

ne INP measures — ve nasıl o differs -den FID

Google’s definition dır precise: INP “assesses bir sayfa’s overall responsiveness -e kullanıcı interactions tarafından observing latency of tümü click, tap, ve keyboard interactions şu occur throughout lifespan of bir kullanıcı’s visit -e bir sayfa.”

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

şu “all interactions… throughout the lifespan” phrasing dır whole story. INP dır bir visit-level metric, değil bir load-time bir — ve Google’s reasoning dır şu vast majority of bir kullanıcı’s time on bir sayfa olur sonra o loads, bu nedenle responsiveness during kullan önem taşır -den fazla ilk impression alone.

contrast ile ilk Input Delay dır cleanest way -e understand o: “FID yalnızca measured input delay of ilk interaction on bir sayfa. INP improves on FID tarafından observing tümü interactions on bir sayfa, beginning -den input delay, -e time o takes -e çalıştır event handlers.” FID timed bir thing hakkında bir interaction — wait önce onun handler started — ve ignored her ikisi nasıl uzun handler ran ve nasıl uzun screen took -e update. INP measures full latency of her interaction.

bir nuance worth getting yapğru, çünkü o’s bir yaygın myth: INP dır değil literally worst interaction. -e kaçın punishing bir sayfa bençin bir tek random spike, browser drops bir outlier bençin her 50 interactions, o hâlde raporlar değer at 75th percentile of sayfa views. On bir low-interaction visit, şu lands on slowest interaction; on bir heavy bir, bir couple of outliers al excluded ilk.

ne counts olarak bir interaction dır ayrıca narrower -den kişiler assume. yalnızca tıklamalar, taps, ve keyboard presses dır measured. Scrolling, hovering, ve zooming dır explicitly excluded. ve bir tek gesture -ebilir fire several events — bir tap produces pointerdown, pointerup, ve click — hangi INP gruplar olarak bir interaction, değil three. bençinde şu grup, INP takes longest individual event duration, değil sum of tümü of them — bu nedenle bir fast pointerdown sonraki -e bir slow click hâlâ raporlar olarak bir interaction sized tarafından slow event. eğer bir sayfa sahiptir no qualifying interactions during bir visit, INP basitçe değildir reported bençin o.

three parts of bir interaction’s latency

her interaction’s latency breaks -e three sequential pieces. bu model -e koru in sizin head, çünkü her part benşaret eder at bir farklı düzelt:

Interaction latency = Input delay + Processing duration + Presentation delay

  1. Input delay — time önce sizin event handlers -ebilir hatta başla çalışbir, genellikle çünkü main thread dır busy finishing bir uzun task.
  2. Processing duration — time o takes tümü of sizin event handler callbacks -e execute.
  3. Presentation delay — time -den ne zaman sizin handlers finish until browser paints sonraki frame on screen.

web-vitals attribution oluştur exposes tümü three (inputDelay, processingDuration, presentationDelay) bu nedenle -ebilirsiniz see hangi part dominates on bir gerçek interaction. Per Web Almanac’s 2024 data, presentation delay dır çoğu zaman largest tek piece at median — ama processing duration dır nerede optimization leverage genellikle lives, çünkü o’s part şu balloons on poorly-oluşturulmuş sayfalar.

INP measures the whole interaction. Attribute the delay to the waiting, handler, or presentation phase before choosing a fix. Kaynak: 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 ·

thresholds — ve p75 field caveat

RatingINP değerMeasured at
Good≤ 200 ms75th percentile, field
gerektirir improvement> 200 ms ve ≤ 500 ms75th percentile, field
Poor> 500 ms75th percentile, field

Google arama Central states target plainly — “bir INP of -den az 200 milliseconds” — and frames the whole program as: “biz highly recommend site owners achieve good temel Web Vitals bençin success ile arama.” 200 ms budget dır genuinely tight -dığınızda remember browser ister bir frame her ~16,7 ms at 60 fps; tümü of sizin handler çalışır plus rendering sahiptir -e fit.

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

neden INP dır bir field metric (ve lab data değildir enough)

bu trap şu catches bir lot of SEOs: bir green Lighthouse score yapmaz anlamına gel good INP. ama “Lighthouse can’t measure INP” gerektirir three separate durumlar, değil bir, veya siz’ll misread sizin kendi tooling:

  1. bir standard, noninteractive Lighthouse çalıştır raporlar no INP at tümü. o yalnızca observes sayfa loading — o never tıklamalar, taps, veya types anything — bu nedenle orada’s no interaction -e time. Lighthouse falls back on Total Blocking Time (TBT) olarak bir load-time proxy instead. Google’ın kendi framing: “çünkü TBT correlates well ile INP, bir sayfa ile bir high TBT dır bir reasonable indicator şu orada -ebilir olmak high INP values during load.” The key words are “during load.” TBT söyler nothing hakkında bir interaction şu goes bad ten seconds later ne zaman bir lazy-loaded widget runs — o’s bir proxy, never bir substitute veya bir conversion formula.
  2. bir manually veya synthetically exercised interaction — clicking bir gerçek button in DevTools, veya scripting bir click in bir lab araç — yapar produce bir gerçek INP-style latency number bençin şu bir interaction. şu’s yararlı bençin reproducing bir specific bug. ama o’s hâlâ bir scripted path on bir device: o -ebilir’t stand in bençin field’s mix of gerçek devices, gerçek kullanıcılar, gerçek interaction targets, ve bir full visit’s worth of sayfa lifetime. olarak Google puts o, resulting değer “-ecek olmak dependent on ne interactions dır performed during ölçüm period,” ve gerçek kullanıcı behavior dır de variable bençin bir tek lab çalıştır -e temsil et o.
  3. ** field distribution dır yalnızca thing INP aslında dır.** şu’s neden authoritative kaynak dır field data: Chrome kullanıcı Experience rapor (CrUX), surfaced aracılığıyla PageSpeed Insights ve arama Console temel Web Vitals rapor. “Field data dır en iyi kaynak of information -ebilirsiniz draw on ne zaman o comes -e understanding hangi interactions dır problematic bençin gerçek kullanıcılar.”

kullan lab (durumlar 1 ve 2) -e bul ve reproduce bir slow interaction; kullan field (durum 3) -e yapğrula whether o’s aslında dragging down gerçek visitors’ scores.

neden sizin INP score dır poor

Almost her INP sorun traces back -e main thread olma blocked ne zaman bir kullanıcı interacts. usual suspects:

  • uzun tasks. herhangi bir main-thread task üzerinde 50 ms dır bir uzun task; amount üzerinde 50 ms dır onun “blocking period.” -iken bir runs, sizin interaction -ebilir’t olmak ele alınır. bu tek biggest neden ol.
  • Heavy event handlers. Doing de much synchronously bençinde bir click/input handler inflates processing duration yapğrudan.
  • büyük DOM size. Bigger DOMs maliyet daha -e render, hangi inflates her ikisi input ve presentation delay.
  • üçüncü-party scripts. Per Web Almanac, consent providers, tag managers, analytics, ve chat widgets dır top offenders — ve onlar hit hatta simple bençerik siteler. onlar’re ilk place ben bak on bir sayfa ben didn’t oluştur.
  • Post-load JavaScript. sadece çünkü bir sayfa rendered yapmaz anlamına gel o finished loading — scripts evaluating sonra ilk paint -ebilir block early interactions.

nasıl düzeltileceğben o

strategies, kabaca sırayla of impact:

1. Break up uzun tasks. Google’s temel advice on handlers dır -e “yap olarak little çalışır olarak olası in them.” Split bir big job -e smaller tasks bu nedenle browser -ebilir interleave bir kullanıcı interaction. ne zaman tasks dır broken up, ” browser -ebilir respond -e higher-priority çalışır much sooner — dahil kullanıcı interactions.”

2. Yield -e main thread. modern, recommended way dır scheduler.yield() (Chrome 129+, Firefox 142+): await scheduler.yield() pauses sizin code, lets browser ele al pending çalışır, ve resumes ile priority — bu nedenle diğer tasks won’t cut line ahead of sizin continuation. classic fallback dır setTimeout(..., 0), hangi hâlâ çalışır ama sends sizin code -e back of task queue (ve browsers enforce bir 5 ms floor sonra several nested çbirğrılar). bir thing -e durdur doing: isInputPending() — Google now söyler “we no longer recommend using this API.” See Scripts tab bençin pattern.

3. yap daha az in event handlers — defer non-critical çalışır. çalıştır yalnızca visual update sonraki frame gerektirir synchronously; push everything else (saving, spell-kontrol et, analytics, word counts) behind requestAnimationFrame + setTimeout veya bir yield. kullanıcı sees response immediately; bookkeeping olur sonra.

4. kaçın layout thrashing. okuma layout properties yapğru sonra yazma styles in aynı task forces browser -e synchronous layout o -ebilirdi otherwise sahip batched. Batch reads, o hâlde writes.

5. Reduce DOM size. Smaller trees render faster. content-visibility -ebilir lazily render off-screen elements bu nedenle onlar yapmayın maliyet siz during load veya interaction.

6. denetim ve defer üçüncü-party scripts. bu highest-leverage SEO düzelt on gerçek siteler. Load consent/tag/analytics scripts lazily, gate them on interaction, veya move them off critical path. bir “lightweight” bençerik sayfa -ebilir başarısız ol INP purely çünkü of bir heavy embedded widget.

yapar INP affect sıralamalar?

Yes — INP dır bir of three temel Web Vitals, ve temel Web Vitals dır part of Google’s sayfa-experience sinyaller. ama o’s bir lightweight sinyal: bir tiebreaker arasında comparably relevant sonuçlar, değil bir birincil sıralama faktörü. yapmayın chase bir perfect INP score at expense of bençerik ve relevance.

Two practical SEO benşaret eder. ilk, mobile dır hard number. In 2024 Web Almanac, ~74% of mobile siteler passed INP versus ~97% on desktop — ve çünkü Google indexes mobile-ilk, mobile figure dır bir şu counts. ikinci, complex siteler yap worse: yalnızca ~53% of top 1 000 siteler passed, çünkü feature-rich sayfalar ship daha JavaScript -e block main thread. Heavy feature development dır bir INP risk, ve high-interaction sayfalar — product sayfalar, checkout, arama sonuçları, forms — dır far daha exposed -den static bençerik.

INP vs FID — full picture

FID (retired)INP (güncel)
Interactionsilk yalnızcatümü, whole visit
ne o timesInput delay yalnızcaInput delay + processing + presentation
Good threshold≤ 100 ms≤ 200 ms
StatusRemoved -den araçlar Sept 2024temel Web Vital since Mar 12, 2024

FID dır gone — removed -den arama Console on day INP launched ve -den CrUX’s BigQuery/API tarafından September 2024. eğer bir araç veya denetim hâlâ references FID, o’s stale.

Edge durumlar şu yap INP data disagree

bir handful of lifecycle quirks explain en çok “why doesn’t my RUM match CrUX” questions:

  • No interactions, no INP. eğer bir visit never alır bir click, tap, veya key press — veya yalnızca alır excluded gestures like scrolling ve hovering — orada’s no INP değer bençin şu sayfa view. bu olağbir on okuyun-yalnızca bençerik sayfalar ve değildir bir bug in sizin izleme.
  • Iframes count toward metric, ama sizin kendi JavaScript -ebilir’t see bençinde them. bir interaction bençinde bir embedded iframe (bir ad, bir widget, bir embedded form) contributes -e sayfa’s INP. ama bir ilk-party RUM script -ebilir’t okuyun events -den bir cross-origin iframe way browser’s kendi metric -ebilir — bu nedenle CrUX ve bir aynı-origin RUM setup -ebilir legitimately disagree on sayfalar ile üçüncü-party embeds. belge bu gap yerine treating bir RUM/field mismatch olarak bir bug.
  • Back/forward cache restores reset INP -e zero. bir sayfa pulled -den bfcache ( back button, bençin instance) starts bir fresh INP count — interactions -den önce navigation away yapmayın carry üzerinde.
  • uzun-lived ve backgrounded tabs hâlâ ihtiyaç duy -e rapor. çünkü bir tab -ebilir sit open bençin hours olmadan ever formally unloading — especially on mobile, nerede OS -ebilir sadece kill o — INP -meli olmak captured ne zaman sayfa olur hidden, değil yalnızca on unload. RUM setups şu yalnızca flush on unload -ecek silently lose data -den bunlar visits.

nerede bu sits

INP dır bir piece of temel Web Vitals picture, alongside Largest Contentful Paint (loading) ve Cumulative Layout Shift (visual stability). kontrol et o in PageSpeed Insights ve arama Console rapor (field), ve debug o in Lighthouse / Chrome DevTools (lab, via TBT proxy). data behind tümü of o comes -den CrUX.

Add an expert note

Pin an expert quote

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