PerformanceNavigationTiming: redirectCount property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2021.
TheredirectCount read-only property returns a number representing the number of redirects since the last non-redirect navigation in the current browsing context.
The higher the number of redirects on a page, the longer the page load time. To improve the performance of your web page, avoid multiple redirects.
TheredirectStart andredirectEnd properties can be used to measure redirection time. Note that they will return0 for cross-origin redirects.
Note that client side redirects, such as<meta http-equiv="refresh" content="0; url=https://example.com/"> are not considered here.
In this article
Value
TheredirectCount property can have the following values:
- A number representing the number of redirects since the last non-redirect navigation in the current browsing context.
0if the redirect is cross-origin.
Examples
>Logging entries with redirects
TheredirectCount property can be used to check whether there are one or more redirects. We log the entry's name and the redirection time if it is available.
Example using aPerformanceObserver, which notifies of newnavigation performance entries as they are recorded in the browser's performance timeline. Use thebuffered option to access entries from before the observer creation.
const observer = new PerformanceObserver((list) => { list.getEntries().forEach((entry) => { const name = entry.name; const redirectCount = entry.redirectCount; const redirectTime = entry.redirectEnd - entry.redirectStart; if (redirectCount > 0) { console.log(`${name}: Redirect count: ${redirectCount}`); if (redirectTime > 0) { console.log(`${name}: Redirect time: ${redirectTime}ms`); } } });});observer.observe({ type: "navigation", buffered: true });Example usingPerformance.getEntriesByType(), which only showsnavigation performance entries present in the browser's performance timeline at the time you call this method:
const entries = performance.getEntriesByType("navigation");entries.forEach((entry) => { const name = entry.name; const redirectCount = entry.redirectCount; const redirectTime = entry.redirectEnd - entry.redirectStart; if (redirectCount > 0) { console.log(`${name}: Redirect count: ${redirectCount}`); if (redirectTime > 0) { console.log(`${name}: Redirect time: ${redirectTime}ms`); } }});Specifications
| Specification |
|---|
| Navigation Timing Level 2> # dom-performancenavigationtiming-redirectcount> |