WooCommerce Shipping Zones Explained: Setup, Strategy, and Common Mistakes
How Shipping Zones Actually Work
WooCommerce shipping zones are geographic regions that you define, each with their own shipping methods and rates. When a customer enters their shipping address at checkout, WooCommerce matches their location to a zone and displays the shipping options available in that zone.
The matching is hierarchical — WooCommerce checks zones from top to bottom and uses the first match. A customer in New York would match a "New York State" zone before matching a "United States" zone, which would match before a "Rest of the World" zone. Order matters.
Here's the critical thing most store owners miss: if a customer's address doesn't match any zone, and you haven't configured the "Locations not covered by your other zones" zone, that customer cannot check out. They'll see "No shipping options available" and leave. This is the #1 shipping-related reason for WooCommerce cart abandonment.
Setting Up Shipping Zones: Step by Step
Step 1: Plan Your Zone Strategy
Before touching WooCommerce settings, map out your shipping zones on paper. Most stores need 3-5 zones:
Local (optional): Same city or state. Useful if you offer same-day delivery, local pickup, or discounted rates for nearby customers.
Domestic: Your home country. This is where most of your orders ship, so accuracy matters most.
Regional (optional): Neighboring countries or economic zones. EU stores often create a single "European Union" zone with unified shipping rates.
International: Other specific countries you regularly ship to. You might have different rates for Canada vs Australia vs Japan.
Rest of the World: The catch-all for everywhere else. This zone should always exist and have at least one shipping method.
Step 2: Create Your Zones in WooCommerce
Navigate to WooCommerce → Settings → Shipping. You'll see the shipping zones page with a default "Locations not covered by your other zones" entry at the bottom.
Click "Add shipping zone." Name it, then add regions. WooCommerce lets you add by:
- Country: Add entire countries
- State/Province: Add specific states within a country
- Postcode/ZIP: Add specific postal codes or ranges (e.g., 90001...90099)
Step 3: Add Shipping Methods to Each Zone
Inside each zone, click "Add shipping method." WooCommerce offers three built-in methods:
- Flat rate: A fixed cost per order, per item, or per shipping class
- Free shipping: No charge, optionally requiring a minimum order or coupon
- Local pickup: Customer picks up from your location, no shipping charge
You can also add methods from plugins — table rate shipping, live carrier rates (USPS, FedEx, DHL), or conditional shipping rules.
Step 4: Configure the Rest of the World Zone
The "Locations not covered by your other zones" zone is your safety net. Every customer who doesn't match a specific zone falls into this one. Configure it with at least one shipping method — even if it's a high flat rate for international shipping.
If you genuinely don't ship to certain regions, it's better to leave them out of all zones and display a clear message ("We currently don't ship to your region") than to have a Rest of the World zone with no methods — which just shows a confusing error.
Step 5: Order Your Zones Correctly
Drag zones to reorder them. More specific zones should be higher (first) in the list. WooCommerce uses the first matching zone, so "New York State" should appear before "United States." If "United States" is first, all US customers will match it and never reach the New York-specific zone.
Common Shipping Zone Mistakes
Mistake 1: No Rest of the World Zone
This is the most common shipping configuration error. Store owners create zones for their primary markets and forget about everyone else. A customer from an uncovered country tries to check out, sees no shipping options, and leaves. You never even know you lost the sale.
Fix: Always configure the "Locations not covered by your other zones" zone with at least one shipping method.
Mistake 2: Overlapping Zones
If you add "United States" to one zone and "California" to another zone, California customers will match whichever zone appears first in the list. If the US zone is first, California customers never see their California-specific rates.
Fix: When using state-specific zones, exclude those states from the country-level zone. Or ensure the more specific zone is ordered above the general one.
Mistake 3: Empty Shipping Methods
Adding a shipping method to a zone but not configuring it (leaving the cost at $0 or default) results in either free shipping you didn't intend or an error. After adding a method, always click to configure its settings.
Mistake 4: Not Testing as a Customer
The only way to verify your zones work correctly is to test with actual addresses. Use WooCommerce's built-in shipping calculator (displayed on the cart page) or go through the full checkout process with test addresses from each zone.
Mistake 5: Ignoring Shipping Zone Logic for Digital Products
If you sell both physical and digital products, digital products shouldn't require shipping. Mark digital products as "Virtual" in the product editor (under the General tab, check "Virtual"). Virtual products skip shipping entirely, so they won't be affected by shipping zones.
Advanced Zone Strategies
Tiered Domestic Zones
Instead of one "United States" zone with a flat rate, create tiered zones based on distance from your warehouse:
- Zone 1 (Local): Your state — lowest rates, fastest delivery
- Zone 2 (Regional): Adjacent states — moderate rates
- Zone 3 (National): Rest of the country — standard rates
This mirrors how carriers actually price shipping and feels fairer to customers near your warehouse.
Same-Day Delivery Zone
Create a postcode-based zone covering your immediate area and add a flat rate shipping method labeled "Same-Day Delivery" with a premium price. Use a plugin like Local Delivery Drivers for WooCommerce to manage delivery logistics. This is especially powerful for food, flowers, and grocery stores.
EU VAT-Compliant Zones
EU stores dealing with cross-border VAT (post-Brexit UK, different rates across member states) can use shipping zones to segment by country and apply country-specific shipping rates that account for varying tax treatments. Pair this with a VAT compliance plugin like Jetsteer EU VAT Assistant.
Shipping Zones + Conditional Logic
Native WooCommerce shipping zones are location-based only — they can't factor in product type, weight, or cart total by themselves. For rules based on product attributes or cart conditions, you need conditional shipping plugins. See our guide on conditional shipping rules for how to extend zones with product-based logic.
When combined with table rate shipping, zones become extremely powerful: different regions see different rate tables based on weight and price, giving you carrier-accurate pricing without the complexity of live rate calculations.
Keep reading
Related guides you might find useful
WooCommerce Table Rate Shipping: The Complete Setup Guide
Flat rate shipping loses you money on heavy items and overcharges on light ones. Here's how to set up table rate shipping in WooCommerce by weight, price, or destination.
Read guideShippingWooCommerce Free Shipping Threshold: How to Set the Right Minimum Order
Free shipping increases AOV — but set the threshold wrong and it kills your margins. Here's the math for finding your store's sweet spot.
Read guideShippingFlat Rate vs Table Rate Shipping in WooCommerce: Which One Should You Use?
Flat rate is simple. Table rate is accurate. Here's when to use each, how to set them up, and the hybrid approach most successful stores use.
Read guideLevel up your WooCommerce store
Join the WPBundle waitlist and get beta access to our plugin suite completely free.
Join the Waitlist