If WooCommerce says “No shipping options are available for this address”, the customer cannot complete the order until WooCommerce finds a shipping method that matches their location and basket.
Most missing-shipping problems come from one of four places:
- the customer address does not match a shipping zone;
- the matching zone has no active shipping method;
- a product or plugin rule hides the method;
- the cart or checkout is showing stale information.
The useful approach is to test the same address step by step rather than changing every shipping setting at once.
WooCommerce shipping methods not showing: what to check
| Symptom | Check first |
|---|---|
| No shipping options for one postcode | Shipping zone match |
| No shipping options for every customer | Shipping methods enabled |
| Free shipping missing | Free-shipping conditions |
| Wrong rate shown | Zone order, shipping class, cart conditions |
| Rates do not update after address change | Cache and checkout refresh |
| Works in admin tests but not live checkout | Theme/plugin conflict or checkout type |
1. Test with the exact customer address
Do not test with “roughly the same area”.
Use the full address the customer entered, including:
- country;
- county/state where used;
- town/city;
- postcode.
A small postcode or country mismatch can send the customer into a different shipping zone.
2. Check WooCommerce shipping locations
Go to:
WooCommerce → Settings → General
Check the store’s shipping-location settings.
If the store is configured to sell or ship only to selected countries, a customer outside those areas may not receive any shipping option.
3. Open Shipping Zones and find the zone that should match
Go to:
WooCommerce → Settings → Shipping → Shipping zones
Find the zone that should match the customer.
Check:
- the country or region;
- postcode rules;
- zone order;
- whether at least one method is enabled inside the zone.
If the address matches a zone with no shipping method, the customer will have nowhere to go.
4. Put specific zones above broad zones
WooCommerce checks zones in order and uses the first matching one.
That means a broad zone can accidentally catch the customer before a more specific zone gets a chance.
For example:
- London SW postcodes
- Greater London
- United Kingdom
- Rest of world
More specific zones should normally sit above broader ones.
Recent WooCommerce versions can warn you when a broad zone earlier in the list prevents a narrower zone from matching. Do not ignore that warning.
5. Make sure the shipping method is enabled inside the zone
A zone by itself does not create shipping.
Open the zone and check that it contains an active method such as:
- Flat rate;
- Free shipping;
- Local pickup;
- a courier/live-rate extension.
If the method exists but is disabled, customers will not see it.
6. Check free-shipping conditions
Free shipping may depend on:
- minimum spend;
- coupon;
- minimum spend plus coupon;
- specific shipping zone;
- plugin conditions.
Test a basket that clearly meets the rule.
Also remember that discounts can reduce the basket total below the free-shipping threshold depending on how the rule is configured.
7. Check shipping classes
Shipping classes are often used for:
- heavy items;
- bulky products;
- fragile items;
- different delivery charges.
If one product causes shipping to disappear, check that product’s shipping class.
A wrong class or a plugin rule attached to that class can hide methods that work for every other product.
8. Test one simple product on its own
This is a useful isolation test.
Create a cart with one ordinary physical product that:
- is in stock;
- has a weight if your shipping setup needs one;
- uses the expected shipping class;
- has no special restrictions.
If shipping appears, add the problem products back one at a time.
This helps find the product or rule that removes the option.
9. Check product weight and dimensions
Courier-rate plugins may need accurate:
- weight;
- length;
- width;
- height.
If that data is missing or outside the courier’s allowed limits, the live rate may fail.
This is especially common when only certain products lose shipping.
10. Check whether the customer is entering the address fully
Some shipping methods cannot calculate until the customer provides enough location information.
If your checkout hides postcode or country fields, or a custom checkout plugin changes them, rates may not appear when expected.
11. Clear cache if rates do not refresh
Shipping is dynamic. It can change when the customer changes:
- postcode;
- country;
- quantity;
- product;
- coupon.
If rates stay frozen after those changes, check caching.
Cart and checkout should not be served as static cached pages.
The WooCommerce cart troubleshooting guide covers stale cart and session behaviour in more detail.
12. Check Checkout Block vs older checkout
WooCommerce has both block-based checkout and older shortcode-based checkout setups.
Some older shipping extensions or custom code behave differently between the two.
If shipping disappeared after changing the checkout design, test whether the shipping extension supports the checkout type you are using.
13. Check local pickup setup
Block-based Local Pickup is managed differently from the older local-pickup method.
If customers see duplicate pickup options or no pickup option, check whether you have both old and new local-pickup methods configured at the same time.
14. Check conditional shipping plugins
Some stores use rules such as:
- hide shipping for certain products;
- free shipping above a spend;
- courier only for selected postcodes;
- local pickup only for local customers;
- disable a method for certain user roles.
If a method exists in WooCommerce but not at checkout, a conditional-shipping plugin may be intentionally hiding it.
15. Check recent plugin or theme updates
If shipping worked before an update, record what changed.
Check:
- WooCommerce;
- shipping extension;
- checkout plugin;
- theme;
- currency plugin;
- tax plugin;
- cache plugin.
Use a controlled plugin conflict test on staging if needed.
16. Check WooCommerce Status for old template overrides
Go to WooCommerce → Status.
Outdated cart or checkout templates can interfere with how shipping methods are displayed.
If a template warning appears, update it carefully rather than deleting custom theme files at random.
17. Test several real-world addresses
Once you think the issue is fixed, test:
- one local address;
- one normal UK address;
- one edge postcode;
- one address outside your shipping area;
- a basket that qualifies for free shipping;
- a basket that does not.
The goal is not just to make one address work. It is to prove the rules behave correctly.
WooCommerce shipping troubleshooting checklist
- Copy the exact customer address.
- Check allowed shipping locations.
- Find the matching shipping zone.
- Check zone order.
- Confirm a shipping method is enabled.
- Check free-shipping rules.
- Check product shipping class.
- Test one simple product.
- Clear cache and retest checkout.
- Check conditional shipping plugins.
- Check Checkout Block compatibility.
- Complete a full test order.
When missing shipping is urgent
If the checkout says no shipping is available to customers you actually serve, they cannot buy physical products.
That makes it a revenue-blocking problem. If you need hands-on help, Core Web UK provides urgent WooCommerce repair.
Separate “no shipping” from “wrong shipping”
These need different fixes. If no method appears, focus on zone matching and method availability. If a method appears with the wrong price, focus on the matched zone, shipping class and calculation rules.
Build a small shipping test matrix
| Test basket/address | Expected result |
|---|---|
| Local postcode + normal item | Local/standard methods |
| UK postcode outside local zone | UK method |
| Free-shipping basket | Free shipping appears when conditions met |
| Heavy/special-class product | Correct specialist rate |
| Unsupported address | Clear no-shipping message |
Use the same test set after future shipping-plugin or checkout updates.
Do not edit live zone rules without recording the old setup
Take screenshots or export settings where your shipping plugin allows it. One rushed change can fix one postcode and break another. Make changes one at a time and re-test the matrix.
Customer wording matters
If you genuinely do not ship to an area, the customer should receive a clear message rather than a broken-looking checkout. Make sure support staff also know the coverage rules so they can answer quickly.
Check the customer-facing shipping message
When shipping genuinely is unavailable, customers should understand why. If you only deliver within the UK, say so before checkout. If bulky items require a manual quote, explain that on the product page.
A clear limitation is better than letting the customer build a basket and discover at the final step that no delivery method exists.
Shipping plugins can fail even when core WooCommerce is fine
Live-rate extensions depend on third-party services. If a courier API is slow, unavailable or rejects the request, WooCommerce may have no rate to show.
Check the shipping plugin’s own logs and account connection. If the store has a fallback flat rate, test that separately.
Think about a safe fallback for critical stores
If live courier rates are essential, decide what happens during an outage. Some businesses temporarily offer a standard rate, local pickup or manual shipping quote. The right fallback depends on your products and margins.
Review shipping whenever you add a new product type
New weights, dimensions, shipping classes or restricted products can break rules that worked for the old catalogue. Include shipping tests when you add bulky, fragile or international products.
WooCommerce shipping FAQs
Why does WooCommerce say no shipping options are available?
The customer may not match a shipping zone, the matching zone may have no active method, or a plugin/product rule may be hiding shipping.
Why is free shipping not showing?
Check the customer zone, free-shipping method, minimum spend/coupon conditions, product shipping classes and whether another plugin changes the rules.
Why is the wrong shipping rate showing?
Check zone order, customer address, product class and conditional shipping rules. A broad zone may be matching before the intended narrow zone.
Why do shipping rates not update when I change postcode?
Check cart/checkout caching and whether the checkout is refreshing correctly after the address changes.
Can a plugin make shipping methods disappear?
Yes. Conditional-shipping, courier, checkout, currency and optimisation plugins can all affect which methods appear.
