A customer adds something to the cart, types their address, and the cart or checkout says "No shipping options were found for [address]" or "There are no shipping options available. Please ensure that your address has been entered correctly". They cannot place the order, and you only find out when someone emails you or sales stop. Almost always the shop has no shipping method that matches that address and those products. Below is a rebuilt example (not a real client), the two checks that find the cause, and the fix for each one.
Open WooCommerce > Settings > Shipping > Shipping zones. WooCommerce reads the list from the top and uses the first zone whose regions match the customer's address (country, state, or ZIP / postcode). Only the methods in that one zone are offered. If no zone matches, the "Rest of the world" zone at the bottom is used (it may be called "Locations not covered by your other zones"). Take the address that failed and work out which zone it hits first, and whether that zone has at least one enabled method.
Go to WooCommerce > Settings > Shipping > Shipping options (sometimes Shipping settings), tick Enable debug mode and save. Then, logged in as an admin, add the same product to the cart and enter the failing address. The cart now shows which zone matched and which methods were checked. This also turns off WooCommerce's shipping cache while it is on, so a cached answer cannot fool you. Turn it off again when you are done.
| What you see | Cause | Fix |
|---|---|---|
| Debug shows "Rest of the world" (or no zone) for an address you do ship to | The address matches no zone: a ZIP code range typed wrong, a state missing from the region list, or the customer's country not added | Edit the zone and add the missing country or state. ZIP ranges use 90210...90299 (three dots) and wildcards like 902*, one per line. Then test that exact address again |
| The right zone matched, but it lists no methods, or the method's switch is off | The zone exists but has no enabled shipping method | Open the zone, click Add shipping method, add Flat rate (or Free shipping / Local pickup) and make sure its toggle is on |
| A small zone higher up (for example "Local delivery: 3 ZIP codes") catches addresses meant for a bigger zone below it | Zone order: the first match wins, even if it only has Local pickup or a method with conditions the cart does not meet | Drag the zones so the most specific ones (ZIP lists) are at the top and broad ones (whole country) below, and give every zone a method that always applies |
| Only Free shipping is in the zone, and it fails for small carts | Free shipping set to "requires a minimum order amount" or "a valid free shipping coupon"; below that, there is nothing to offer | Add a Flat rate method next to Free shipping so carts under the minimum still have an option. To hide the flat rate when free shipping applies, use a small snippet or plugin, not by removing it |
| Fails only for some products; those products have a shipping class | The Flat rate method has a cost per shipping class and the product's class has none, or a plugin hides methods for that class | In the Flat rate settings, give every shipping class a cost (0 is fine). Check the product's Shipping tab: class and weight. A plugin such as conditional shipping or "hide methods" can also remove the only method: check its rules |
| You use live rates (UPS, FedEx, USPS, ShipStation, Canada Post) and the methods are blank | The carrier returned nothing: the product has no weight or size, the account key expired, or the carrier's API refused the request | Give every product a weight and dimensions, reconnect the carrier account, and read the carrier plugin's log in WooCommerce > Status > Logs. Add a Flat rate fallback so a carrier outage does not block every order |
| Physical products, but only some carts fail after a product edit | A product is ticked Virtual or Downloadable by mistake, or a mixed cart has one product in a class no method covers | Untick Virtual on physical products, set the class and weight, and test a cart with only that product |
| Worked yesterday, fails today with no settings change; works when logged in as admin | A cached cart or checkout page, or WooCommerce's stored shipping rates for the session | Exclude cart, checkout and my-account from every cache (plugin, host, Cloudflare), then clear WooCommerce transients in WooCommerce > Status > Tools. See WooCommerce checkout not working |
| "Please ensure that your address has been entered correctly" even for a correct address | The shop ships to fewer countries than the customer can pick, or "Ship to specific countries" leaves theirs out | Check Settings > General: Selling location(s) and Shipping location(s). Every country you ship to must be in both, and in a zone |
Log out (or use a private window), add each kind of product to the cart, and enter one real address from every zone you serve, including one under any free-shipping minimum. Each should show at least one shipping price. Then turn debug mode off again.
Most of these take ten minutes once you know which one it is. If you would rather someone else finds and fixes it, that is what the box below is for. Related: WooCommerce checkout not working and orders stuck on Pending payment.