Why does Shopify checkout keep picking the cheapest shipping rate instead of the one I want customers to choose?
Shopify checkout defaults to whichever shipping rate is cheapest, and there's no admin toggle to change that directly. Here's why, and the real ways to influence which rate customers end up choosing.
What's going on
A merchant sets up several shipping rates, say Standard, Expedited, and a free Local Pickup, expecting checkout to default to whichever one makes sense for the business. Instead, checkout consistently pre-selects the cheapest eligible rate for that order, regardless of the order the rates are listed in the admin and regardless of which one the merchant would prefer customers land on. The most common version of this complaint: a free or near-free Local Pickup rate gets auto-selected ahead of paid delivery, and customers who actually wanted their order shipped miss it and end up with pickup by accident.
This isn't a bug or a misconfiguration. It's long-standing, widely reported checkout behavior, and requests on Shopify's community forums for a native "set default shipping rate" option have gone unanswered for years without becoming a standard setting. So if you've dug through your shipping settings looking for a toggle that isn't there, that's expected; it genuinely doesn't exist in the standard admin.
It's also worth separating two things merchants often conflate: the display order of rates at checkout, which you can control, and which rate gets pre-selected by default, which in most cases you can't override directly. You can reorder, rename, or hide rates, but the cheapest rate among whatever remains visible is still the one checkout tends to highlight first.
Why it happens
Shopify treats checkout defaults, including shipping rate selection, as a trust and conversion safeguard rather than a merchant-configurable setting. Defaulting to the lowest-cost eligible option prevents merchants or third-party tools from nudging customers toward pricier shipping by default, which is also why customizing rate order and visibility doesn't override the underlying preference for the cheapest option. It's a deliberate constraint in how checkout behaves, not an oversight in your store's configuration.
The confusion is compounded because shipping settings mainly control how rates are calculated and which zones or conditions they apply to; they've never included a "mark as default" control for the resulting checkout selection. Merchants reasonably expect that section to also govern presentation and default choice, but that behavior lives in checkout's own selection logic, separate from standard shipping configuration.
5 ways to fix it
Make the rate you don't want stop being the cheapest one
Checkout defaults to whichever eligible shipping rate has the lowest price for that order, so the fastest fix is making sure the option you don't want isn't the cheapest one available. Rename a confusing rate like Local Pickup to something explicit such as Free Pickup In Store, Not Shipped, raise its price slightly, or restrict it to specific zones, weights, or order values in your shipping settings so it simply isn't offered when you don't want it competing. This takes no app or developer time and resolves most complaints about customers picking the wrong option.
Use Shopify's built-in delivery customization tools to reorder, rename, or hide rates
Shopify's admin includes free, no-code tools for customizing checkout delivery options: you can reorder how rates are listed, rename them, or hide a rate entirely based on conditions like cart total, product tags, or destination. Reordering changes what the customer sees first, and hiding a rate for a given scenario is the most reliable way to control the outcome, since checkout still defaults to the cheapest of whatever remains visible. Test any change on a draft or test order before publishing, since rules can conflict with other active customizations in ways that aren't obvious until checkout.
Build a custom delivery customization function for more complex logic
If your logic goes beyond what the point-and-click tools support, for example hiding a flat rate only for wholesale customers or reordering by product tag, a developer can build a custom delivery customization using Shopify's Functions APIs. Plan the logic around hiding or showing rates rather than trying to force a specific one to be pre-selected directly, since checkout's underlying behavior of defaulting to the lowest-price eligible option tends to persist regardless of display order.
Consider a shipping-rules app if you need this managed on an ongoing basis
Several apps on the Shopify App Store build a merchant-friendly interface on top of the same underlying customization capabilities, for sorting, renaming, and conditionally hiding shipping rates. These are useful if you'll be adjusting shipping presentation rules regularly, such as seasonal promotions or testing different rate orders, but functionally they're doing the same thing described above, just packaged with a UI, so they're worth paying for mainly if you want that convenience.
If you really want a native default-rate toggle, submit feedback and don't wait on it
Merchants have long asked in Shopify's community forums for a straightforward setting to mark one shipping rate as the default, and it still doesn't exist as a standard admin control. If that's really what you're after, submitting feedback through Shopify's support channels adds signal, but plan your actual fix around the workarounds above rather than waiting for a native toggle to arrive.
Bottom line
This is native Shopify checkout behavior, not a bug or a gap an app needs to fill: checkout is designed to default to the lowest-price eligible shipping rate for an order, and that behavior tends to hold even when you reorder options, so no single setting simply flips which rate counts as default. The real lever is controlling which rates are eligible or visible for a given order, through zone, price, or weight conditions, or by hiding the option you don't want chosen, rather than fighting the selection logic directly. Start with the free native shipping and delivery customization settings before reaching for a paid app; most merchants can solve this without one.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.