Executive summary
- What: Shopify has opened a review process for UI extensions that remain over the 64 KB compressed bundle limit after genuine optimization.
- Why: The limit is enforced at deploy, and there is a hard date behind it: every existing UI extension must be on API version 2026-01 or later to remain deployable after October 1, 2026.
- Who: Anyone maintaining checkout, customer account, admin, or POS UI extensions, including bespoke extensions built for a single Plus merchant.
What changed
The 64 KB compressed JavaScript cap per extension has applied since API version 2025-10, with 128 KB for full-page customer account extensions. What is new is the escape hatch. Run shopify app build, then submit the minified bundle together with its esbuild metafile through Shopify's bundle size exception form. Shopify reviews the contents and may grant an increase where the remaining weight is genuinely unavoidable.
The denial criteria are stated plainly and are worth reading as a checklist before you apply. Requests are refused for avoidable weight: heavy libraries, duplicate dependencies, and translations bundled into the extension instead of served through the native localization APIs.
Separately, and more urgently, extensions must be on 2026-01 or later to stay deployable after October 1, 2026. That is a deadline with consequences, not a soft deprecation notice.
Why it matters
The bundle is downloaded, parsed, and executed on the shopper's device before your extension renders anything. At checkout in particular, that cost lands at the most conversion-sensitive moment in the session, which is why the limit exists and why an exception should be a last resort rather than a shortcut.
For Plus merchants, the real exposure is usually in bespoke work. Agency-built and in-house checkout extensibility projects accumulate dependencies over time, and nobody re-measures until a deploy fails. The October date turns that latent debt into scheduled risk, because an extension that cannot deploy also cannot be patched.
Role-specific impact
- Marketers: No direct action. Be aware that checkout customizations carry a real performance budget, so another widget at checkout is never free.
- Developers: Measure with the metafile before optimizing by instinct. Shopify CLI 3.92.0 and later emits a .metafile.json into each extension's dist folder, and the esbuild analyzer turns it into a ranked list of what is costing you.
- Store admins: Ask whoever maintains your extensions for two numbers: the current API version, and the current bundle size against the limit.
Use-case example
Real-world scenario
A Plus merchant runs a checkout UI extension for delivery date selection, built two years ago on React with a date library and eight locales of copy compiled in. First measurement put it at 91 KB compressed, well past the cap. Swapping React for Preact on the Remote DOM runtime, replacing the date library with per-function imports, and moving translations onto the native localization APIs brought it to 38 KB. No exception request was needed, and measuring in September rather than late in the year avoided a deadline scramble.
Implementation checklist
- Inventory every UI extension you own and record its current API version.
- Upgrade anything below 2026-01 well ahead of the October 1, 2026 deployability cutoff.
- Move to Shopify CLI 3.92.0 or later so that shopify app build emits the esbuild metafile.
- Run the build and load each .metafile.json into the esbuild bundle analyzer to rank contributors.
- Replace heavy dependencies with lighter equivalents, and import only the functions you actually use.
- Move translations out of the bundle and onto the native localization APIs.
- Re-measure after each change, and only if you remain over the limit, submit the minified bundle and metafile through the exception form.
FAQ
Q: Will an exception be granted if we simply cannot get under 64 KB?
A: Only if the remaining weight is unavoidable. Shopify says it will deny requests where the size comes from heavy libraries, duplicated dependencies, or bundled translations, so optimization is a prerequisite rather than an alternative.
Q: What happens to an extension left below 2026-01 after October 1, 2026?
A: The app can no longer be deployed. That blocks fixes and updates across every extension in the app, not just the outdated one, which is why this belongs on a roadmap now.
Resources
Optimize bundle size for UI extensions
Need guidance? Talk to Makro.