Jank
Jank in the Monitor area — route /monitor/jank, reachable by direct link rather than from the sidebar.
This page lives in the Monitor area at /monitor/jank. It is not in the sidebar — it is reached by a direct link, or from another page that links to it.
At a glance#
| Dashboard route | /monitor/jank |
| Area | Monitor (monitor) |
| In the sidebar | No — reachable by direct link |
What it does#
Jank reports main-thread blocking — long tasks and long animation frames — and does the thing percentile dashboards cannot: it names which script caused the block. A KPI strip gives total blocking time and event count, a worst-scripts rollup ranks the offenders, and a per-occurrence timeline links each event to the session replay it happened in.
That attribution is the whole reason to use this page. "INP is poor" is a symptom;
"vendor-analytics.js blocked the main thread for 480 ms on checkout" is a fix.
When to use it#
When Web Vitals shows poor INP, when interactions feel laggy, and — especially — after adding any third-party script. Tag managers, chat widgets, session tools and ad scripts are the most common cause of jank in real applications, and they are invisible in your own profiling because they are not in your bundle.
Workflow#
Read total blocking time first
It is the honest aggregate. A few very long blocks and many short ones can produce the same event count and very different experiences.
Take the top worst script
The rollup is ranked for a reason. Blocking is heavily concentrated — the top entry is usually most of the problem.
Check the attributed share
The KPI row tracks how many occurrences carry script attribution. A low share means most of your jank is unattributed and you will need the Profiler instead.
Watch the occurrence
Each event deep-links to the replay. Seeing an interaction not respond is what makes the number persuasive to someone who has to approve removing a script.
Permissions and prerequisites#
Web apps only — the mobile equivalent of a frozen main thread is reported as ANRs. Script attribution depends on browser support for long animation frames, so it is available in some browsers and not others.
Limits and edge cases#
Attribution is best-effort. Cross-origin scripts may be reported without a usable name. The occurrence is still real; only the blame is missing.
A blocking script is never "good". Unlike load metrics there is no green zone here — the page treats all blocking as cost, because from the user's side it is.
Not every browser reports LoAF. Your numbers describe the browsers that do, which is a sample, not your whole population.
Troubleshooting#
Jank events with no script. Common for cross-origin code and for blocking that happens inside the browser rather than in JavaScript — layout, style recalculation, decode. The Profiler is the next tool.
INP is poor but this page is quiet. INP also includes input delay and presentation delay, not only long tasks. Check the Web Vitals attribution panel.