v150 · Performance
LCP per Route
After every soft navigation, Chrome resets the Largest Contentful Paint clock. The largest element painted on the new route becomes that route's LCP candidate — completely independent of earlier routes. A PerformanceObserver on largest-contentful-paint shows the reset happening in real time.
How the LCP clock resets
Each soft-navigation (SN) boundary starts a fresh LCP measurement window. The largest element painted after that boundary is attributed to the new route, not the overall page load.
Home
Initial page load — the heading and hero block above are LCP candidates. Navigate to another route to see the LCP clock reset.
LCP Entries per Route
Green <2.5 s · Amber 2.5–4 s · Red >4 s (Core Web Vitals thresholds)
| Route | Nav # | LCP element | LCP time | Attribution |
|---|---|---|---|---|
| No LCP entries yet — navigate between routes | ||||
Raw Entry Stream
All largest-contentful-paint and soft-navigation entries as they arrive
// Watch LCP entries reset after each soft navigation
const lcpObs = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
console.log({
element: entry.element?.tagName, // largest element in this window
startTime: entry.startTime, // ms since last soft-nav boundary
url: entry.url, // src if an image, '' if text
});
}
});
lcpObs.observe({ type: 'largest-contentful-paint', buffered: true });
// The soft-navigation entries mark each boundary
const navObs = new PerformanceObserver((list) => {
for (const e of list.getEntries()) {
if (e.entryType === 'soft-navigation') {
console.log('LCP clock reset — new route:', e.name, 'duration:', e.duration);
}
}
});
navObs.observe({ type: 'soft-navigation', buffered: true });
see also
- Core Web Vitals per Route — LCP + CLS + INP all scoped per route
- RUM Dashboard — aggregate per-route analytics
- SPA Navigation Observer — raw soft-navigation entry logging
- ChromeStatus entry
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗