Candid build standard: INP ≤ 150ms target (200ms is the failing floor); LCP ≤ 2.0s; CLS ≤ 0.05
Rule: Set internal performance budgets above Google's "Good" thresholds:
- LCP ≤ 2.0s (don't aim for 2.5s — that's the failing threshold)
- INP ≤ 150ms (200ms is "Good", so aim 50ms inside)
- CLS ≤ 0.05
Fail the build (or at least warn loudly) when Lighthouse-CI exceeds any of these on a representative page. See RULE: Performance budgets enforced in CI. Build fails on budget violation. Documented budgets without CI enforcement do not work. (existing entry).
Why: INP is the metric most KW competitors are failing. Per the HTTP Archive 2025 Web Almanac: "In June 2025, 77% of pages achieved good Interaction to Next Paint (INP) scores" — meaning 23% still fail. For a KW SMB-focused agency, INP is where the page-speed moat lives because most local agencies don't yet measure it. See also Reference: the 8 most common INP killers — ranked by observed frequency (existing entry).
How to apply: every new Astro/Next.js starter has Lighthouse-CI configured at these thresholds. Real-user monitoring via web-vitals library reports INP at p75; alert when a deployed page exceeds budget for 3 consecutive measurement windows.
Related
- reference Reference: the 8 most common INP killers — ranked by observed frequency
- reference Reference: 2026 performance budget — SMB marketing site (Candid default targets)
- rule RULE: Performance budgets enforced in CI. Build fails on budget violation. Documented budgets without CI enforcement do not work.