Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
FREEDOM251

Freedom251 › Blog › bundle size

How to measure the bundle-size impact of Shopify checkout extensions

By Freedom251 Team · · 10 min read

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Measure two different things, and keep their results separate: the compiled extension bundle tells you what code ships and how much it weighs; a controlled checkout run tells you when that code downloads, renders, and becomes usable for a buyer. You need both. A small bundle can appear late while waiting for a network response, while a larger bundle can render immediately.

The reliable workflow is to build with Shopify CLI, inspect the esbuild metafile and compressed output, compare the result with the limit for the extension’s API version, then test the same checkout step in Chrome under cold-cache and constrained-network conditions. Record visibility and buyer usability independently, make one optimization at a time, and repeat the exact build and checkout measurements.

As an Amazon Associate I earn from qualifying purchases.

What you are actually measuring

“Bundle-size impact” is not one number. A useful investigation has six measurements:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Artifact weight: the compiled or compressed JavaScript shipped for one extension.
  • Composition: which modules and dependencies contribute bytes, taken from the esbuild metafile.
  • Transfer: the extension request’s size and download time in a real checkout.
  • Visibility: when the extension’s content becomes visible.
  • Usability: when the extension can accept buyer input.
  • Reproducibility: the API version, CLI version, checkout step, cache state, network throttle, device, CPU conditions, and code revision used for each comparison.

Do not turn one measurement into another. The metafile cannot tell you when a buyer sees a control, and a late visual timestamp does not prove that bundle bytes caused the delay.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Check the applicable bundle limit first

For UI extensions using API version 2025-10 or later, Shopify documents a 64 KB compressed JavaScript limit per UI extension. Full-page customer account extensions have a 128 KB limit. Shopify enforces the applicable limit per extension at deployment, not as a shared allowance across your app. See Shopify’s bundle-size documentation and confirm the API version and target before applying either number.

Checkout UI extensions for the information, shipping, and payment steps are available only to Shopify Plus stores. That restriction applies to those checkout steps; it does not mean every extension target has identical access rules. The versioned Checkout UI extensions documentation lists the current target and availability details.

The 2026-01 deployment requirement

Shopify’s September 17, 2026 changelog says apps must ensure existing UI extensions use API version 2026-01 or later to remain deployable after October 1, 2026. That date has passed, so check the current platform status and instructions before publishing. The same changelog describes an exception-request process for an extension that remains over the applicable limit: submit the minified bundle and its esbuild metafile. Read the live instructions at Shopify’s bundle-size exception notice rather than relying on an old deadline or assuming approval.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Step 1: freeze the measurement context

Write down the conditions before building or testing. Without this record, a “before” and “after” number may describe different software or different buyer conditions.

  • Extension name, target, and checkout step.
  • Shopify API version.
  • Shopify CLI version. The documented metafile workflow requires CLI 3.92.0 or later.
  • Exact build command and build configuration.
  • Git revision or other code identifier.
  • Whether this is a baseline, an optimization candidate, or a post-change build.
  • For runtime tests: browser version, device or emulation profile, CPU setting, cache state, network throttle, logged-in state, and checkout data.

Keep the same checkout step and buyer path for every comparison. If you change from desktop to a phone, or from a warm cache to an incognito cold cache, label it as a new test rather than mixing the results.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

Step 2: build the extension and capture the artifact

Run the production build from the app project:

shopify app build

With Shopify CLI 3.92.0 or higher, Shopify says this command emits an esbuild metafile (.metafile.json) in each extension’s dist/ folder. The metafile describes the modules included in the compiled output and each module’s contribution. Preserve the generated artifact and metafile together with your measurement record.

Record compiled and compressed size

Use the build output to record the extension’s generated JavaScript size, then verify the compressed size that is relevant to Shopify’s deployment limit. A local analyzer may display uncompressed bytes, compressed bytes, or both; label the unit and compression state explicitly. Do not compare a raw source-directory total with Shopify’s compressed per-extension limit: source files include comments, tests, unused branches, maps, and files that never ship.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Repeat the same build process after each meaningful change. Record the output for every extension separately, even when several extensions are in one app, because the limit and deployment check are per extension.

Step 3: find which modules make the bundle large

Open the esbuild metafile with the esbuild bundle analyzer or another local tool that supports this format. Inspect the largest input modules and the dependency paths that pull them into the extension. Typical investigation targets include a broad utility package when only one function is used, duplicate copies of a library, locale or data files, and code shared across targets that never render together.

Turn the breakdown into an action list

  1. Sort modules by their contribution to the generated output.
  2. Trace each large module back to the import in your extension.
  3. Check whether the feature is required for this target or is included incidentally.
  4. Check whether the dependency is duplicated elsewhere in the graph.
  5. Make one focused change, such as a narrower import, removal of unused code, or a separate feature entry point.
  6. Run shopify app build again and compare the new metafile and compressed output.

The metafile identifies candidates; it does not establish a user-visible delay. A module can add bytes without running on the critical path, and a small entry point can still wait for a request before it renders.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord | 6.35mm Jack, Durable Design, Stage and Home Studio Use, Low Noise Shielded Electric Cord for Bass, Keyboard, Amp, Mixer
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Step 4: measure the live checkout, not the editor

For runtime evidence, use a real checkout. Shopify’s audit guidance recommends avoiding the checkout editor for this measurement because editor tooling changes the page. A repeatable Chrome procedure is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Open the checkout in a Chrome incognito window.
  2. Open DevTools and select the Network panel.
  3. Enable Disable cache while DevTools is open.
  4. Set the network preset to Slow 4G, or use a documented custom throttle.
  5. Reload the checkout and navigate the same step used in every comparison.
  6. Filter requests with extensions.
  7. Sort by Size and then by Time; enable the Priority column where available.
  8. Record the extension request’s transferred size, duration, start order, and any long gaps before the request or response completes.

Capture a Performance trace until checkout is fully rendered. Inspect the LCP marker, main-thread tasks, parse and compile work, rendering, and the script URLs associated with your extension. A request that is small but starts late, or a script that is downloaded promptly but performs expensive work on the main thread, needs a different fix from a genuinely oversized transfer.

Repeat on mobile conditions

Use Chrome’s mobile emulation and then repeat on a real phone when possible. CPU speed and thermal conditions can change parse, compile, and render time enough to reorder extensions. Keep the network and device conditions recorded; otherwise a desktop trace cannot be fairly compared with a mobile trace.

Step 5: record visibility and buyer usability separately

Shopify’s checkout instrumentation exposes two distinct runtime signals:

  • extension_visible measures the time until the extension’s content is visible. Visibility is the signal that can relate to the observed Largest Contentful Paint (LCP) candidate.
  • extension_buyer_usable measures the time until the extension can accept buyer input. It diagnoses interactivity rather than mere appearance.

Record both values for the same checkout run. If visibility is late, investigate transfer, parse/compile, render work, and data loading. If visibility is prompt but buyer usability is much later, investigate event setup, validation, hydration-like work, or other tasks that block interaction. Do not report the visibility timestamp as if it were the usability timestamp.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

Why bundle rank and render rank differ

Shopify explicitly advises: “Rank extensions by the time they take to render visible content, not by bundle size alone.” An extension that waits for a load-time network call may appear after a larger extension that renders from data already available. Conversely, a large dependency may be cached or execute off the critical path. The only defensible way to claim that an optimization improves buyer experience is to rebuild and repeat the controlled checkout run.

How to compare before and after results

Question Measurement What it can tell you What it cannot prove alone
How much code ships? Compiled and compressed artifact size per extension Whether the extension is near or over the API-version limit When a buyer sees or can use it
What makes it large? esbuild .metafile.json and module analyzer Largest modules, dependencies, and duplicate inputs That a module causes a visible delay
How does it transfer? Network request size and timing with the extensions filter Download cost and request ordering under stated conditions Whether main-thread work or data waits dominate
When does it appear? extension_visible, trace, and LCP inspection Visibility timing and possible LCP involvement Whether controls are already interactive
When can buyers act? extension_buyer_usable Interactive readiness and the visibility-to-usability gap Which exact line of code is responsible without a trace
Can another engineer reproduce it? Context record: versions, step, cache, throttle, device, revision Whether a comparison is controlled and repeatable A universal result for every store or buyer

Use a simple before/after record for each revision: API version, CLI version, build command, compressed bytes, top module contributors, checkout step, cache state, throttle, device/CPU, request timing, visibility, usability, and notes from the trace. Keep the same conditions until the change’s effect is clear.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Optimization decisions that the measurements support

Split independently enabled features

Shopify’s bundle guidance recommends splitting features that merchants enable independently. If one merchant setting never uses a feature, its code should not be in every render path. Separate entry points or conditional feature bundles can reduce the bytes downloaded for a particular extension, provided the split does not add a new critical request that delays visibility.

Do not combine targets that never render together

If two targets cannot appear in the same checkout state, combining their code into one bundle makes every render pay for unrelated functionality. Keep target-specific code separate where the extension architecture allows it, then verify each resulting artifact against the per-extension limit.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Remove avoidable load-time network calls

Shopify’s performance guidance states: “Every network call your extension makes at load time adds latency before the buyer sees your UI.” Avoid calls that are not needed to paint the initial state. Use Shopify data APIs for data they already expose, defer non-critical work until after the initial UI is visible, and show a useful loading or empty state when a request is genuinely required. Test the change under Slow 4G; a call that looks harmless on a fast development connection can dominate a cold checkout.

Avoid expensive module-scope work

Work performed while the module is evaluated delays the extension before event handlers or visible content are ready. Move expensive parsing, transformation, and initialization out of module scope when it is not required for the first render. The Performance trace should show whether this change reduces main-thread work and improves visibility or usability, not merely whether the bundle lost bytes.

Do not optimize by size alone

A smaller artifact is valuable for the deployment limit and transfer cost, but it is not a runtime verdict. After every size change, repeat the checkout test. If compressed bytes fall while visibility and usability do not, the bottleneck may be a request, scheduling, or main-thread task. If bytes barely change but visibility improves, the winning change may have removed a load-time wait or expensive initialization.

Diagnosing common results

Large bundle, fast visibility

Confirm the compressed size and deployment margin, then inspect whether the apparently large modules execute on the initial path. If visibility is already fast, prioritize staying below the limit and reducing transfer for constrained devices rather than claiming an urgent render fix without evidence.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Small bundle, late visibility

Inspect request start time, response timing, load-time network calls, and main-thread tasks. A small extension that waits for remote data can be later than a larger extension that renders immediately from local or Shopify-provided data.

Visible quickly, usable much later

Use the gap between extension_visible and extension_buyer_usable as the diagnosis signal. Look for delayed event registration, validation setup, expensive post-render work, or a blocked main thread. A screenshot of the control is not proof that the buyer can use it.

Different results on desktop and phone

Preserve separate records. Mobile CPU limits can increase parse, compile, and JavaScript execution time even when transfer bytes are identical. Compare like with like before ranking an extension or accepting an optimization.

Build appears under the limit but deployment rejects it

Verify that you are measuring the deployed extension’s compressed JavaScript, not a source directory, source map, or an uncompressed analyzer number. Confirm the extension’s API version and target, because the limit is version- and target-dependent. Rebuild with the documented CLI version, retain the metafile, and consult Shopify’s current deployment or exception instructions if the extension is still over the applicable limit.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What not to claim from these measurements

  • Do not convert kilobytes into a universal number of milliseconds. No supported benchmark establishes a fixed bundle-size-to-checkout-speed conversion.
  • Do not call the largest extension the slowest without a runtime trace and visibility measurement.
  • Do not treat checkout-editor results as equivalent to a buyer’s checkout.
  • Do not compare a warm-cache desktop run with a cold-cache mobile run and label the difference a code regression.
  • Do not assume a module shown in the metafile is executed before first paint; confirm its path and timing in the trace.

A repeatable measurement checklist

  1. Identify the extension target, checkout step, API version, and store eligibility.
  2. Record the Shopify CLI version and exact build command.
  3. Run shopify app build.
  4. Save each extension’s generated output and dist/.metafile.json.
  5. Record compiled and compressed size, with units and compression state.
  6. Analyze module contributions and choose one optimization candidate.
  7. Open a real checkout in Chrome incognito, disable cache, throttle to Slow 4G, and filter Network requests by extensions.
  8. Capture a Performance trace through full render; inspect LCP, extension scripts, and main-thread work.
  9. Record extension_visible and extension_buyer_usable for the same run.
  10. Repeat on mobile emulation and, where possible, a real phone.
  11. Make one meaningful code change, rebuild, and repeat the identical checkout conditions.
  12. Keep the artifact, metafile, trace conditions, and result table so another engineer can reproduce the comparison.

Sources and version checks

Use Shopify’s live documentation for limits and platform behavior because API versions and deployment requirements change:

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

bundle sizeCheckout UI extensionsesbuildShopifyShopify CLIweb performance

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.