What changed
On October 16, 2026, the Chrome team confirmed that the staged deprecation of the unload event was complete as of Chrome 155. By default, unload event handlers no longer fire in Chrome, even in cases where they previously might. The rollout began in March 2025 and continued through September 2026. Chrome still permits limited opt-outs via Permissions Policy and enterprise settings; Chrome on iOS uses WebKit and may behave differently. Google's own metrics show unload usage falling from roughly 18% of navigations to under 4%, while unload as the sole blocker to back-forward cache fell from about 6% to 1% of navigations.
Why it matters
Code that waits for unload to save state, flush analytics, send telemetry or release resources is now even less reliable in Chrome. The browser can keep pages alive in the back-forward cache rather than firing a terminal event, improving navigation performance. Developers should audit old scripts and libraries, prefer visibilitychange or pagehide for lifecycle awareness, and use delivery mechanisms designed for page transitions rather than assuming a last-second synchronous request will succeed.
A completed rollout, not a future deprecation notice
Chrome 155 is the milestone at which unload stops firing by default. The change follows a gradual, monitored rollout rather than an abrupt removal. Chrome's published telemetry is vendor measurement and should not be interpreted as proof that every individual site is unaffected.
Why the old event conflicts with modern navigation
On mobile, operating systems may terminate a backgrounded tab without giving a page a final callback. Back-forward cache keeps eligible pages in memory for fast history navigation; running unload would be inconsistent with that lifecycle. Chrome chose a predictable default of not firing unload instead of leaving an intermittently triggered signal.
Migration and operational checks
Search code and third-party dependencies for addEventListener('unload') and onunload. Prefer visibilitychange when the document becomes hidden, pagehide when a page is being navigated away from, and sendBeacon or keepalive fetch for small telemetry payloads when appropriate. Persist important user data earlier and frequently; no end-of-page event guarantees delivery. Test bfcache restoration through pageshow and persisted rather than assuming a full reload.
Opt-outs and browser differences
A minority of sites retain unload via Permissions Policy or Chrome Enterprise controls, but Google advises migrating anyway. Chrome on iOS is WebKit-based, and other Chromium browsers may ship the behaviour on different schedules.