# Chrome 155 stops firing unload by default after a years-long rollout — sites must use page lifecycle alternatives

Google says Chrome 155 completed the default shutdown of the unreliable unload event after a staged 2025–26 rollout. The browser reports lower unload usage and improved back-forward cache eligibility, but some enterprise and Permissions Policy opt-outs remain.

Chrome 155 no longer fires unload handlers by default. Sites relying on unload for saves, analytics or cleanup should migrate to visibilitychange, pagehide and resilient delivery paths.

- Status: Active
- Published: 2026-10-27T16:24:33+13:00
- Updated: 2026-10-27T16:24:33+13:00
- Categories: Web Development, JavaScript, Browsers & Web Standards
- Tags: browser compatibility, Chrome, JavaScript, page lifecycle, web performance
- Canonical HTML: https://beyondthe.news/dossiers/chrome-155-unload-event-deprecation-complete-page-lifecycle-bfcache

## 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.

## Key details

- Chrome confirmation dated October 16, 2026; completed as of Chrome 155.
- Unload handlers no longer fire by default in Chrome.
- Rollout ran from March 2025 to September 2026.
- Chrome-reported unload usage fell from 18% to below 4% of navigations.
- Unload as sole bfcache blocker dropped from around 6% to 1% of navigations.
- Permissions Policy and enterprise opt-outs remain available; iOS Chrome may differ.

## Builder takeaways

- Remove assumptions that unload is guaranteed to fire for persistence or cleanup.
- Audit third-party analytics scripts and custom SPA navigation handlers.
- Use visibilitychange/pagehide and durable storage or resilient telemetry transport as appropriate.
- Test bfcache page restoration and avoid relying on unload to reset state.
- Avoid depending on opt-outs as a permanent architecture.

## What to watch

- Chromium derivatives' default rollout and any remaining compatibility issues.
- Further standardisation or retirement of unload opt-outs.
- Field measurements of bfcache and analytics reliability after migration.

## Uncertainties

- Vendor aggregate telemetry does not establish a site's specific breakage rate.
- Browser and enterprise configurations can differ.
- No page-exit callback is a guaranteed final opportunity to transmit data.

## Sources

- [Unload event deprecated in Chrome](https://developer.chrome.com/blog/unload-deprecated-in-chrome) — Chrome for Developers · primary · 2026-10-16T00:00:00+13:00. Official completion status, telemetry, exceptions and migration context.
- [Frontend Focus issue 763](https://frontendfoc.us/issues/763) — Frontend Focus · independent specialist discovery · 2026-10-21T00:00:00+13:00. Independent newsletter notes project revival and SSR.

