help1
slow shopify checkoutcheckout speedshopify page speedshopify

I Spent Two Weeks Chasing a Slow Shopify Checkout

A slow Shopify checkout survived every storefront fix I threw at it. Here's the two-week chase and where the real delay was hiding.

help1 Team
I Spent Two Weeks Chasing a Slow Shopify Checkout

Quick answer. The real load lives in a Shopify-controlled stylesheet, a Shopify analytics endpoint, and a cache that resets every time you edit anything in the admin. None of those get faster by compressing another hero image.

Open your store in a Chrome incognito window. Add a product to cart. Open DevTools, switch to the Network tab, tick "Preserve log," and filter by "checkouts". Click Proceed to Checkout and watch the clock. If the waterfall stalls between four and twelve seconds before the checkout DOM finishes painting, and the two slowest rows in that stall are a file called v2-ltr.css and a request to monorail-edge.shopifysvc.com, you have found the same slow Shopify checkout I spent two weeks chasing this June. The rest of this post is what I checked, what I ruled out, and the short list of things a non-Plus merchant can actually change.

What I checked first

The merchant who flagged this was a home-goods store on Dawn: about forty products, one small theme customization for a size chart, and a PageSpeed Insights score that had already climbed from 42 to 71. They had done the work. Hero image was preloaded. App scripts were down to four. Cumulative Layout Shift was under 0.1. On the storefront the store felt fine. On checkout it hung for roughly eleven seconds on the first visit and closer to seven on the next.

I started where I always start: strip out anything the merchant could have installed. I disabled every non-essential app, cleared the checkout branding overrides, ran the shipping calculator in a test order to make sure nothing was hitting a slow carrier API, and duplicated the theme into a fresh copy of Dawn with all customizations removed. The storefront got a little snappier. The checkout hung for exactly the same eleven seconds.

Why the storefront work was not the problem

There is a January 2022 thread on Shopify Community titled "Checkout Super Slow (Dawn 2.0)" that I now send to every merchant who tells me they have tried everything. A user named hsellak had checkout delays of two to three seconds before render, plus another two to three seconds after, on Shopify's own default theme with no customization at all. Support offered no explanation. The same delay showed up on Dawn as it did on the merchant's custom theme in front of me. That was the first sign the trail did not lead into theme code.

The second sign came from an October 2022 test that a merchant named ceosha ran on their own store. Their checkout took about eleven seconds to load on mobile. When they tested with a stripped copy of the theme, all apps removed, all customizations gone, the measurable score got worse, from 77 down to 56. If the delay had been in merchant-editable code, taking that code away should have improved the number. It got worse. That result matters more than any staff reply about what checkout is or is not, because it is a controlled test that cuts the "your theme is the problem" hypothesis at the knees.

I stopped burning time on the theme and moved to the network layer.

Where the trail went cold

PageSpeed Insights was the first tool I reached for and the first tool I put down. It does not measure the checkout URL. It measures the storefront domain, which in almost every case is yourstore.com, while checkout runs on yourstore.myshopify.com/checkouts/... with its own separate infrastructure. A store can have a PageSpeed score of 90 on its product page and a ten-second first-visit checkout, and the two numbers will never touch each other. This is not obvious from the tool, and it burned two of my first three days on the case.

The workflow I switched to: Chrome DevTools, Network tab, "Preserve log" on, cache disabled. Add to cart on the storefront, click Proceed to Checkout, and read the waterfall on the checkout domain from the top. On the merchant's store two rows dominated. One was a stylesheet called v2-ltr.css. The other was a request to monorail-edge.shopifysvc.com. Those two names have surfaced in almost every serious Shopify Community thread on checkout speed since at least 2021, and I had somehow never sat with what they actually are.

The two names that keep showing up in the waterfall

v2-ltr.css is Shopify's checkout stylesheet, served from Shopify's own CDN, and it blocks the checkout page from rendering until the full file has downloaded and been parsed. In October 2022, a merchant named vonfeist-lato went further than anyone else on this. They removed the {{ checkout_stylesheet }} Liquid tag from a test checkout layout and reported that checkout loaded "100% faster" but was completely unstyled. That experiment is the closest thing to a proof in the community record that the stylesheet is not a slow request you can defer; it is a synchronous blocking call. Shopify does not offer a non-blocking version of it on non-Plus plans.

monorail-edge.shopifysvc.com is Shopify's own analytics and event-tracking service. In a 2021 thread, a merchant named Nici1 measured a time-to-first-byte from that service at 1,300 milliseconds against a healthy target range of 200 to 500. It fires as part of the checkout page load, so its round-trip pushes back the moment the checkout becomes interactive.

Both are Shopify infrastructure. No app removal touches them, no image compression touches them, no theme rewrite touches them. On a non-Plus plan you cannot see the source and you cannot swap either one for something lighter. This is the point at which a slow Shopify checkout on Basic starts to feel the same on Dawn as it does on any custom theme, because most of what you are waiting for is not in your theme at all.

I called the merchant and said, straight out, that I could no longer promise their checkout would ever feel as fast as their storefront.

The clue I almost missed

I nearly stopped there. The reason I kept looking was a single line in a 2021 developer's thread from a merchant with the handle tnl_admin, who described their team's own workaround for a related symptom: after any store edit, "add to cart and go to checkout after every single change we make to our store." The framing sounded superstitious the first time I read it. It is not.

Every time you publish a change in Shopify admin, whether that is a product edit, a discount, or a theme customization, Shopify invalidates the checkout cache. The first customer to reach checkout after your edit pays the cold-start penalty in full. On the merchant's store, the first-visit checkout was noticeably worse than the second, the third, or the tenth. Shopify staff themselves have confirmed this intermittency in support threads: one staff member named Victoria_13, testing a slow-checkout complaint from a merchant called MaikelS in 2022, could not reproduce the delay on a first attempt, then hit it cleanly on the second add-to-cart. Cache behavior, not a source-code bug.

So we added a step to the merchant's release process. Every time they push a theme change or edit a product, someone on their team runs a dummy add-to-cart on the live site and clicks through to checkout, just far enough to trigger the render. It costs about forty seconds. It means the first real customer after the edit sees the warm-path checkout instead of the cold one. It is a workaround for a Shopify-side behavior, not a fix, and I want to be honest about that: I have not seen anyone publish a controlled measurement of how much time the pre-seed actually saves, only anecdotes from the developers who do it.

The August 2026 change that gave non-Plus merchants one new lever

Until earlier this month, non-Plus merchants had exactly two levers on a slow Shopify checkout: reduce enabled payment methods, and pre-seed the cache after edits. That is it. Any story you read about "optimizing" checkout on a Basic or Grow plan collapses into those two moves plus a lot of wishing.

That changed with checkout extensibility. checkout.liquid and the Additional Scripts field were deprecated across every plan level, and merchants who want any custom behavior at checkout now install checkout UI extension apps. Extensions run in sandboxed environments on Shopify's own infrastructure, which is a step forward for stability. But the developer documentation is direct about the tradeoff: every extension adds to the checkout's JavaScript bundle. For the first time, a non-Plus merchant can meaningfully make their own checkout heavier by stacking extensions the way older stores used to stack storefront apps.

If you have three checkout extension apps installed and one of them is a gift-note field you never enabled or a shipping-message app you tested and forgot, you now have a controllable variable that used to be nothing but Shopify infrastructure. Go to Settings, then Apps and sales channels, and check which apps hold checkout permissions. Uninstall anything that fails to earn its weight in real orders. That is a new step on my audit checklist as of a few weeks ago, and it is the only new one I have added to the checkout audit in a couple of years.

What I actually did about it

For the merchant I was working with, the fix list ended up small and unglamorous. Payment methods went from six down to three: Amazon Pay and Google Wallet came off after a look at three months of orders showed zero completed conversions through either. Their share of the checkout weight was a proportional amount of icon loading and confirmation logic, and a merchant named hausofzeros noted in the 2021 thread that they had watched their own checkout speed drop when the same two options were enabled. Nobody in the community has ever published a controlled before-and-after in seconds; we can only say the correlation is real and the change is free.

Pre-seed the cache after every publish, on a two-step release checklist. Uninstall the two checkout extension apps they were not using. Explain to the merchant, plainly, that the remaining four to six seconds of first-visit checkout load are Shopify's, not theirs, and are the price of a non-Plus plan.

The checkout has not become fast. What we bought is a couple of seconds off the first visit and a warm cache after every release; nothing that touches the four to six seconds of Shopify overhead underneath. Their conversion rate ticked up slightly, but I cannot honestly attribute all of that to what we changed, because the same period covered a new email flow and a shipping-cost update. If you want a second pair of eyes on your own checkout waterfall before Black Friday, that is exactly the kind of half-hour a help1 expert chat is built for, and the first fifteen minutes are free. The larger picture on where storefront work stops moving the number is in our page speed floor guide; the checkout URL is the wall past that floor.

There is one thread I keep going back to, from a Shopify Community expert named PaulNewton in 2024: "The cart is not the checkout, and performance is a discipline not a quick fix." Every merchant who arrives at a slow Shopify checkout after weeks of storefront optimization is running into the same boundary he named, and there is no keyword-stuffed article or PageSpeed score that will hide it from them.

A slow Shopify checkout on Basic is not a bug you fix; it is a boundary you learn.

Still stuck? Talk to an expert.

Our vetted Shopify experts can fix this issue for you in a live session. $39 per session. Your first 15 minutes are free.