# What changed in web-vitals

> 22 changes in web-vitals 5 to 6 from its official release notes, upgrade guides and advisories: 2 breaking, 2 new APIs and options. Each one cited. Sources checked 2026-10-20. HTML: https://unstale.sh/npm/web-vitals/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## web-vitals 6

### New APIs and options

- Adds a Resource Timing buffer for LCP attribution, supporting attribution data collection. (6.1.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v610-2026-08-05)

### Behavior and default changes

- Small INP interactions are reported with bfcache support. (6.0.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v600-2026-07-21)
- The default for includeProcessedEventEntries changes to false in v6. (6.0.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v600-2026-07-21)
- Web Vitals metrics support Soft Navigation when supported by the browser. (6.0.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v600-2026-07-21)

### Tooling

- Source maps are added, helping developers trace generated code. (6.0.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v600-2026-07-21)

### Fixes and other changes

- Fixes an INP clean-up bug that caused a memory leak. (6.2.3) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v623-2026-10-05)
- Fixes negative resourceLoadDuration values in LCP attribution. (6.2.3) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v623-2026-10-05)
- Caps pending LoAFs to avoid a memory leak. (6.2.2) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v622-2026-09-14)
- Fixes negative inputDelay in INP attribution. (6.2.1) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v621-2026-08-26)
- Prevents a spurious CLS report of 0 after bfcache restore. (6.2.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v620-2026-08-24)
- Guards supportedEntryTypes for older browsers. (6.2.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v620-2026-08-24)
- Navigation interaction counts are scoped to each InteractionManager. (6.1.1) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v611-2026-08-15)
- Prevents a JavaScript error when PerformanceObserver is unavailable. (6.0.1) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v601-2026-07-27)
- RequestIdleCallback is capped at 1 second so metrics report even when the browser is busy. (6.0.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v600-2026-07-21)

## web-vitals 5

### Breaking changes

- Removed getFirstHiddenTimePolyfill. (5.3.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v530-2026-05-28)
- Removes obsolete FID polyfill types. (5.2.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v520-2026-03-25)

### New APIs and options

- Adds the includeProcessedEventEntries option. (5.2.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v520-2026-03-25)

### Fixes and other changes

- Fixed errors that could occur when passing the same configuration object to multiple metric functions. (5.3.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v530-2026-05-28)
- Made the INP interactionTarget setting more robust. (5.3.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v530-2026-05-28)
- Uses LargestContentfulPaint.id as a fallback when the element is removed from the DOM. (5.2.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v520-2026-03-25)
- Fixes a bug when onLCP is attached late. (5.2.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v520-2026-03-25)
- Handles initially hidden pages and onLCP registered on visibility change. (5.2.0) — [release notes](https://github.com/GoogleChrome/web-vitals/blob/248e6cbab7eeec8b08737663b2572492fc2f9251/CHANGELOG.md#v520-2026-03-25)
