{"id":351,"slug":"inp-killers-catalogue","title":"Reference: the 8 most common INP killers — ranked by observed frequency","kind":"reference","scope":"business","status":"current","audiences":["claude-code","dev","candid-team"],"topics":["core-web-vitals","extractability"],"reference_body":"**Ranked by observed frequency:**\n\n1. **Long-running JavaScript on the main thread** — particularly framework hydration (React, Vue, Angular) and `Evaluate Script` tasks > 50ms.\n2. **Tag managers with too many tags** — GTM container with 18 tags ≈ 20× TBT (Chrome Aurora) — see [[gtm-18-tags-20x-tbt-chrome-aurora]]. Largest single category of avoidable INP cost.\n3. **Chat widgets** (Intercom, Drift, Tawk, HubSpot) — render UI and attach event handlers before user interacts.\n4. **A/B testing scripts** (Optimizely, VWO) — fire synchronously during page load and on interactions; anti-flicker holds cost both LCP and INP.\n5. **Heatmap and session-recording tools** (Hotjar, FullStory, Microsoft Clarity).\n6. **Heavy framework hydration with no code-splitting** — bundles >300 KB compressed are typical INP catastrophes on mid-range Android.\n7. **Inefficient event handlers** — React re-renders, unmemoised selectors. Addy Osmani case study: yielding to main thread + memoising selectors delivered **69% INP improvement (850ms → 260ms)**.\n8. **Single-page app route transitions** that re-hydrate synchronously.\n\n**Remediation pattern:** Defer/delay 3rd-party scripts until interaction → `scheduler.yield()` to break long tasks → React.memo/useCallback/useMemo → move tracking to a web worker (Partytown). See [[rule-defer-third-party-scripts-until-interaction]].","rationale_body":null,"metadata":null,"links":{"outgoing":[{"slug":"gtm-18-tags-20x-tbt-chrome-aurora","title":"Chrome Aurora team: Google Tag Manager with 18 tags increases Total Blocking Time ~20×","kind":"reference","scope":"business","link_type":"depends-on"}],"incoming":[{"slug":"gtm-18-tags-20x-tbt-chrome-aurora","title":"Chrome Aurora team: Google Tag Manager with 18 tags increases Total Blocking Time ~20×","kind":"reference","scope":"business","link_type":"relates-to"},{"slug":"rule-defer-third-party-scripts-until-interaction","title":"RULE: Defer or delay every third-party script until user interaction, except those required for first paint","kind":"rule","scope":"business","link_type":"depends-on"},{"slug":"research-brief-page-speed-moat","title":"Research brief: Page Speed as a Moat — why CWV separates the agencies from the freelancers (piece 9 of 15)","kind":"reference","scope":"business","link_type":"relates-to"},{"slug":"inp-150ms-target-not-200ms-floor","title":"Candid build standard: INP ≤ 150ms target (200ms is the failing floor); LCP ≤ 2.0s; CLS ≤ 0.05","kind":"rule","scope":"business","link_type":"relates-to"},{"slug":"redbus-inp-7pct-sales-2023","title":"redBus (2023): INP improved ~72% on search page → +7% sales (6-7.2% CR uplift across operating countries)","kind":"reference","scope":"business","link_type":"relates-to"}]},"created_at":"2026-05-22T20:03:33.381Z","updated_at":"2026-05-22T20:03:33.381Z"}