WooCommerce shows “No shipping options were found for…” when the shopper’s address doesn’t land in a shipping zone that offers at least one working method. Either no zone covers that address, or the zone it matched has no enabled method, or every method in it returned no rate (a blank cost, an unmet free shipping minimum, a carrier that didn’t answer). The fix is almost always in WooCommerce > Settings > Shipping > Shipping zones, and debug mode tells you which zone the address matched.
Why it happens
- No zone covers the address. You created zones for some countries, states or postcodes, and the shopper is outside all of them. The “Rest of the world” zone catches everything else, but only if you gave it a method.
- The address matched the wrong zone. WooCommerce checks zones from top to bottom and uses the first one that matches. A wide zone placed above a narrow one swallows it. In one support thread the cause was a “Free Shipping” zone that a dropshipping supplier had imported at the top of the list: it was disabled, but still there, and moving it to the bottom fixed the checkout.
- The zone has no enabled method. A zone with an empty method list, or with every method switched off, offers nothing.
- The method returns no rate. Flat rate with the cost field left blank returns nothing (enter
0if it should be free). Free shipping set to “A minimum order amount” disappears below that amount, and if it is the only method in the zone, the shopper gets the error. - Postcode rules that leave people out. A zone limited to
90210...90299misses90300. A US zone with only the “lower 48” states leaves out Alaska and Hawaii. - Country settings. In WooCommerce > Settings > General, “Shipping location(s)” may be set to “Ship to specific countries only” without the shopper’s country.
- Carrier plugins. Live rates from USPS, UPS and similar plugins need product weights, a store address and valid credentials. If the carrier returns an error, there’s no rate.
- Cached rates or a plugin conflict. WooCommerce caches shipping rates, and a page cache on the cart or checkout can serve stale results.
How to check it yourself
- Reproduce it. Open the store in a private window, add a physical product to the cart and enter the exact address the customer used. Note the message: the classic cart says “No shipping options were found for [address]”, the classic checkout says “There are no shipping options available. Please ensure that your address has been entered correctly, or contact us if you need any help.” The block cart and checkout show their own wording.
- Turn on debug mode. Go to WooCommerce > Settings > Shipping > Shipping settings, tick Debug mode (“Enable debug mode”) and save. It shows which zone the address matched and bypasses the shipping rate cache. Shoppers see the notice too, so turn it off when you’re done.
- Read the zone list. In Shipping zones, look at the order, the “Region(s)” column and the “Shipping method(s)” column. Is the matched zone the one you expected? Does it have a method?
- Open the matched zone. Check that each method is enabled (the toggle), that flat rate has a cost, and what free shipping requires.
- Check the country. In WooCommerce > Settings > General, look at “Selling location(s)” and “Shipping location(s)”.
- Check the logs. If you use a carrier plugin, look in WooCommerce > Status > Logs for errors such as a product without weight.
How to fix it
- Cover the address. Edit the zone that should include the shopper and add the missing country, state or postcode. Postcodes accept ranges (
90210...99000) and wildcards (902*); a wildcard inside a range is not supported. - Order the zones from narrow to wide. Drag them so city or postcode zones come first, then states, then countries. Move anything imported by a plugin or supplier to the bottom, or delete it once its methods live in your own zones.
- Give every zone a working method. Add at least one method and switch it on. If flat rate should cost nothing, type
0, not a blank. - Add a fallback. If free shipping has a minimum, add a paid flat rate to the same zone so shoppers below the minimum can still check out. If you want to hide the paid rate once free shipping applies, use “Hide shipping rates when free shipping is available” in Shipping settings.
- Use “Rest of the world” on purpose. Either give it a method (so nobody is left without one) or leave it empty and say clearly on your site where you ship.
- Fix the country setting. Set “Shipping location(s)” to “Ship to all countries you sell to”, or add the missing country to the list.
- Fix carrier rates. Fill in weight and dimensions on each product’s Shipping tab, check the store address and reconnect the carrier account.
- Clear the cache. Go to WooCommerce > Status > Tools and run “Clear transients”, purge your caching plugin, and make sure the cart and checkout pages are excluded from page caching.
- Test again with the same address, then turn debug mode off.
If none of that helps, switch to a default theme and disable other plugins on a staging copy to find a conflict.
How to stop it from happening again
The worst version of this problem is the silent one: you delete or rebuild your zones, nothing looks wrong in the admin, and every buyer of a physical product reaches the checkout with no way to get it. Melopo Radar checks your settings and marks it as critical when none of your shipping zones, including “Locations not covered by your other zones”, has an enabled shipping method while you have published products that need shipping (stores that only sell downloads or virtual products are left alone). To be clear about its limits: it does not test addresses, so it won’t tell you that a zone leaves out part of a country, that zones are in the wrong order, that a method returns no rate, or that a carrier plugin is failing. For those, the debug mode check above is still the tool. Radar has a free plan for one store.
FAQ
Why does it say “No shipping options were found” when I have shipping zones? Because the shopper’s address matched a zone with no working method, or matched a different zone than you expected. Zones are checked top to bottom and only the first match counts.
What is the “Rest of the world” zone for? It applies to every address that doesn’t match any of your other zones. It can’t be moved or deleted. If it has no method, those shoppers can’t check out.
Why does free shipping not show up? Check what “Free shipping requires…” is set to. With a minimum order amount, it only appears above that amount, and the amount is checked against the cart.
Can I show a custom message instead of the error? Yes, with a plugin or a filter, but a nicer message doesn’t fix the sale. Fix the zone first, and use the message only for places you really don’t ship to.
Does debug mode affect my customers? Yes, they also see the notice while it’s on. Turn it on to test, then off again.


