WooCommerce Shipping Methods Not Showing at Checkout: Causes and Fixes
Quick Answer
When WooCommerce displays the message "No shipping options available" during checkout, the issue usually stems from misconfigured shipping zones, missing shipping methods within the matched zone, or products incorrectly marked as Virtual. WooCommerce evaluates shipping zones sequentially from top to bottom and applies only the very first zone that matches the customer's shipping address. If that matching zone contains no active shipping methods, or if all items in the cart bypass shipping calculations because they are set to Virtual, no rates will appear. Enabling WooCommerce Shipping Debug Mode bypasses cached shipping rates to help you identify which zone is being triggered during testing.

Published by TechCorner HQ Editorial Desk. Technical references reviewed against current official documentation on August 31, 2026. How we review technical content.
Common Symptoms
Store owners and customers typically observe one or more of the following symptoms when shipping calculation fails:
- Customers receive the explicit notice: "No shipping options were found for your address" or "There are no shipping options available."
- The checkout page gets stuck on the loading spinner when the customer updates their country, state, or postal code. If your checkout UI hangs entirely, refer to our guide on WooCommerce Checkout Stuck Loading.
- Shipping rates calculate correctly for guest users but disappear as soon as a registered user logs in and applies a saved address.
- Flat Rate or Free Shipping methods appear for standard physical items, but vanish when specific product variations or grouped items are added to the cart.
- Items added to the cart redirect to checkout, but the cart displays no shipping total or completely hides the shipping calculator. For broader cart issues, see WooCommerce Cart Shows Empty After Adding Products.
Primary Causes
Shipping calculation in WooCommerce depends on zone evaluation rules and product configuration options. The primary causes for missing rates include:
1. Shipping Zone Order and Hierarchy Misconfiguration
WooCommerce checks shipping zones in top-to-bottom order. The moment a customer's address matches a zone's geographic region, WooCommerce stops searching further. If a broad zone (e.g., "Everywhere") is placed above a specific zone (e.g., "California, USA"), WooCommerce matches the broader zone first. If that broader zone lacks methods applicable to the customer, no options are displayed.
2. Products Set to "Virtual"
The core WooCommerce engine automatically suppresses all shipping options if every product in the cart has the Virtual checkbox enabled under Product Data. Virtual items (such as memberships, services, or digital downloads) bypass physical shipping steps entirely.
3. Global Shipping Calculations Disabled
WooCommerce includes global settings that can disable shipping calculations storewide or hide shipping costs until an address is manually entered by the shopper under WooCommerce shipping options. If disabled, checkout cannot output rates.
4. Cached Transients and Third-Party Plugin Conflicts
WooCommerce caches calculated shipping rates using transient database records to improve performance. Dynamic shipping plugins, object caching, or optimization plugins can retain stale transient data, showing outdated or empty rate results even after settings are modified.
Diagnostic Workflow
Follow these safe diagnostic steps to isolate the issue before making database or configuration changes.
Step 1: Enable WooCommerce Shipping Debug Mode
WooCommerce includes a built-in debug tool specifically for shipping calculations. Enabling this tool forces WooCommerce to bypass transient rate caching and display zone-matching information directly on the cart page.
- Log into your WordPress admin dashboard.
- Navigate to WooCommerce > Settings > Shipping > Shipping options.
- Scroll down to the Debug mode section.
- Check the box for Enable shipping debug mode.
- Click Save changes.
Once enabled, add an item to the cart and view the cart page. WooCommerce will show a system notice indicating which shipping zone matched the entered address, helping you verify if the correct zone is being evaluated.
Step 2: Inspect the Active Cart Items
Check whether the products currently in the cart permit shipping calculation:
- Go to Products > All Products in your admin dashboard.
- Edit the product that is currently exhibiting the issue.
- In the Product data meta box, check the General tab.
- Ensure the Virtual checkbox is unchecked for physical items.
Step-by-Step Fixes
Fix 1: Reorder and Configure Shipping Zones
Ensure that specific geographic zones are positioned higher than broad fallback zones.
- Navigate to WooCommerce > Settings > Shipping > Shipping zones.
- Review the zones listed from top to bottom. Specific regions (such as specific states or ZIP/postcodes) must be at the top of the list, followed by broader country zones, and finally the catch-all "Locations not covered by your other zones" at the bottom.
- To reorder, hover over the drag-and-drop handles on the left side of the zone name, drag the zone to its correct priority position, and click Save changes at the bottom.
- Click Edit under the specific zone matching your target address.
- Confirm that at least one shipping method (e.g., Flat Rate, Free Shipping, or Local Pickup) is added and toggled to Enabled.
- Hover over the method, click Edit, and verify that the cost settings contain valid numbers (e.g.,
10.00) rather than invalid formatting.
Fix 2: Review Global Shipping Settings
Confirm that core shipping calculations are not disabled globally across your WooCommerce store:
- Go to WooCommerce > Settings > General.
- Scroll to Shipping location(s). Ensure it is not set to "Disable shipping & shipping calculations". Select "Ship to all countries you sell to" or "Ship to specific countries only".
- Go to WooCommerce > Settings > Shipping > Shipping options.
- Ensure Enable the shipping calculator on the cart page is enabled if you want users to calculate estimates prior to checkout.
Fix 3: Clear WooCommerce Shipping Transients
If settings are correct but old rates continue to load, clear WooCommerce transients to erase stored shipping calculations:
- Navigate to WooCommerce > Status > Tools.
- Locate WooCommerce transients and click Clear transients.
- Locate Expired transients and click Clear expired transients.
- Locate Clear shipping rates cache and click Clear.
Fix 4: Check for Plugin Conflicts
Third-party table-rate shipping plugins, carrier API integrations (such as USPS, FedEx, or UPS), and caching plugins can block rates if an API key fails or if custom hooks fail silently.
- Temporarily disable third-party shipping addons and test using core WooCommerce Flat Rate.
- If carrier API plugins are used, verify that weight units (kg/lbs) and dimension units (cm/in) under WooCommerce > Settings > Products match what the carrier API requires.
- If an API request fails due to host timeout or invalid credentials, the carrier plugin may return zero rates, leading to missing options at checkout.
Risk Mitigations and Safety Warnings
Testing live stores requires precautions to prevent disruptions to active buyers:
- Reordering Shipping Zones: Changing zone priority takes effect instantly. On live stores, reordering zones can immediately alter shipping rates for active customer sessions. Perform reordering during low-traffic periods.
- Shipping Debug Mode: Keep Shipping Debug Mode disabled in production once troubleshooting is complete. Leaving debug mode active forces WooCommerce to recalculate rates on every page load, disabling cache benefits and increasing database queries.
- Bulk Editing Products: Before making bulk changes to product data records (such as updating Virtual status across large inventories), perform a complete backup of your store's database.
Verification
After applying fixes, verify that shipping methods compute as expected:
- Open a clean incognito or private browser window.
- Add a physical item to the shopping cart.
- Proceed to checkout and enter a valid delivery address corresponding to your configured zone.
- Verify that the expected shipping methods (e.g., Flat Rate or Free Shipping) appear under the payment details section.
- Disable Shipping Debug Mode under WooCommerce > Settings > Shipping > Shipping options once functionality is verified.