Is Free Shipping Killing Your WooCommerce Profit? The Real Cost Analysis
The Free Shipping Paradox
Every ecommerce study says the same thing: free shipping is the #1 driver of purchase decisions. 73% of consumers say free shipping is the most important factor when deciding to buy online. 93% of online shoppers take actions to qualify for free shipping (adding items, switching to slower delivery). Cart abandonment drops by 18-20% when free shipping is offered.
And yet, shipping isn't free. Someone pays for it. When you offer "free" shipping, that someone is you. And for many WooCommerce stores — especially those selling heavy, bulky, or low-margin products — the cost of absorbing shipping can be the difference between profitability and slow death.
The stores that get free shipping right understand a simple truth: free shipping is a marketing cost, not a logistics cost. It needs to be budgeted, measured, and optimized like any other marketing spend.
The Math: How Free Shipping Impacts Your Margins
Scenario 1: Flat Free Shipping (No Threshold)
Let's model a typical WooCommerce store:
- Average order value (AOV): $65
- Average product cost (COGS): $25 (38% of AOV)
- Average shipping cost to customer: $8
- Payment processing fee: $2.19 (3.37% of $65)
- Packaging: $1.50
Without free shipping: Revenue = $65 + $8 (shipping charged) = $73. Costs = $25 + $8 + $2.19 + $1.50 = $36.69. Profit = $36.31. Margin = 49.7%.
With free shipping: Revenue = $65 (no shipping revenue). Costs = $25 + $8 + $2.19 + $1.50 = $36.69. Profit = $28.31. Margin = 43.6%.
That's a 6.1 percentage point margin hit. On $100,000 in annual revenue, that's $6,100 in lost profit. The question is: does the conversion increase from free shipping generate more than $6,100 in additional profit?
Scenario 2: Free Shipping Above a Threshold ($75+)
Now let's add a threshold. Same store, but free shipping only on orders over $75:
The threshold does two things: (1) eliminates free shipping on small, low-margin orders that can't absorb the cost, and (2) incentivizes customers to add items to reach the threshold, increasing AOV.
Studies show that free shipping thresholds increase AOV by 12-20%. If your AOV goes from $65 to $78 (20% increase), the math changes dramatically:
Threshold free shipping: Revenue = $78. Costs = $30 (slightly higher COGS for more items) + $8 + $2.56 + $1.50 = $42.06. Profit = $35.94. Margin = 46.1%.
Compare: no free shipping at $65 AOV gives $36.31 profit. Threshold free shipping at $78 AOV gives $35.94 profit — nearly identical per order, but you're moving more product and building more customer relationships.
Setting the Right Free Shipping Threshold
The Formula
Optimal threshold = Current AOV × 1.15 to 1.30
If your AOV is $65, set the threshold at $75-85. This is high enough that customers need to add an item, but low enough that they'll actually do it rather than abandoning. A threshold that's too high (like $150 for a $65 AOV store) just frustrates customers.
Validating with Data
Before setting a threshold, analyze your order distribution. Run this in WooCommerce:
- Export orders from the last 90 days
- Create a histogram of order values
- Find the natural clusters — where do orders concentrate?
- Set your threshold just above the largest cluster
For example, if most orders are $45-65 with a second cluster at $90-120, set your threshold at $75. Customers in the $45-65 range will add a small item to qualify. Customers in the $90-120 range already qualify.
Testing the Threshold
Don't guess — test. Use a WooCommerce A/B testing plugin or simply run the threshold for 30 days and compare:
- Conversion rate (should increase)
- Average order value (should increase)
- Total revenue (should increase)
- Total profit (must not decrease)
- Shipping cost as % of revenue (monitor closely)
Strategies to Make Free Shipping Profitable
1. Build Shipping into Product Prices
The simplest approach: raise product prices by your average shipping cost per item. If average shipping is $8 and average items per order is 2, raise prices by $4 per item. Customers see "free shipping" and a slightly higher product price — but psychological research consistently shows they prefer this over lower prices plus shipping charges.
Warning: This doesn't work well if you sell on marketplaces (Amazon, eBay) where price comparison is direct. It works best for stores with unique or branded products where direct price comparison is harder.
2. Use Shipping Zones Strategically
Not all shipping costs are equal. Shipping within your state costs $5. Shipping across the country costs $12. Shipping internationally costs $25. Offering blanket free shipping means your margin varies wildly by destination.
Solution: Offer free shipping only for domestic orders, or only within certain zones. Use WooCommerce's built-in Shipping Zones to set different rules per region. International customers expect to pay shipping — don't absorb costs you don't need to.
3. Exclude Heavy/Bulky Products
A 2kg package costs very different from a 20kg package to ship. If you sell a mix of light and heavy products, exclude heavy items from free shipping. Use WooCommerce's shipping classes to create a "heavy items" class with its own shipping rates, while offering free shipping on standard-weight items.
4. Negotiate Carrier Rates
If you're shipping 100+ orders per month, you have leverage. Contact your carrier (UPS, FedEx, DHL, local post) and negotiate volume discounts. Even 10-15% off published rates significantly improves the free shipping math. Tools like ShipStation and Shippo also offer discounted rates through their carrier partnerships.
5. Optimize Packaging
Carriers charge by dimensional weight, not just actual weight. A product in an oversized box costs more to ship than the same product in a right-sized box. Invest in packaging that fits your products snugly. For many stores, switching from standard boxes to poly mailers saves $2-4 per shipment.
Tracking Shipping Cost vs Revenue in WooCommerce
WooCommerce tracks shipping revenue (what you charge the customer) but not shipping cost (what the carrier charges you). To close this gap, you need to track actual carrier costs per order.
Method 1: Shipping Plugin Integration
If you use ShipStation, Shippo, or WooCommerce Shipping, these platforms record actual carrier costs. Export this data monthly and compare shipping cost vs shipping revenue (or vs zero revenue if you offer free shipping).
Method 2: Manual Tracking
Add a custom field to WooCommerce orders for "actual shipping cost." Train your team to enter the carrier charge when creating shipping labels. This is tedious but gives you order-level shipping cost data.
Method 3: Average Cost Estimation
Calculate your average shipping cost per order from the last quarter's carrier invoices. Apply this average across all orders. Less accurate per-order but gives you a reliable aggregate view.
Key Metrics to Track Monthly
- Shipping cost as % of revenue: Should be 5-12% for most stores. Above 15% is a red flag.
- Shipping cost per order: Track trends over time. Rising costs need intervention.
- Free shipping conversion impact: Compare conversion rates before and after offering free shipping.
- AOV change: After implementing a threshold, is AOV actually increasing?
- Shipping cost per kilogram: Useful for optimizing carrier selection by weight tier.
When Free Shipping Doesn't Make Sense
Free shipping isn't always the right move. Skip it when:
- Product margins are below 20%: There's not enough margin to absorb $5-15 in shipping. Electronics retailers and commodity sellers often can't afford free shipping.
- Products are heavy or oversized: Furniture, fitness equipment, automotive parts — shipping costs $20-50+. Free shipping would require massive price increases that hurt competitiveness.
- Your market doesn't expect it: B2B buyers often expect shipping charges. Luxury buyers care about speed, not cost. International buyers expect to pay shipping and customs.
- You're competing on price: If your competitive advantage is the lowest price, you can't raise prices to fund free shipping. Charge real shipping rates and win on product price.
In these cases, alternatives include: flat-rate shipping ($5.99 everywhere), subsidized shipping (you absorb 50%, customer pays the rest), or free shipping on specific high-margin product categories only.
The Verdict: A Framework for Your Store
- Calculate your current average shipping cost per order from carrier invoices
- Calculate your current average margin per order after COGS and fees
- If margin > 2× shipping cost: Free shipping is viable. Set threshold at AOV × 1.2
- If margin is 1-2× shipping cost: Use a threshold and build partial cost into prices
- If margin < 1× shipping cost: Don't offer free shipping. Use flat-rate instead
- Test for 30 days and measure conversion rate, AOV, total revenue, and total profit
- Adjust quarterly as shipping rates and product mix change
For setting an optimal free shipping threshold with WooCommerce configuration steps, see our WooCommerce free shipping threshold guide. And for comprehensive profit tracking that includes shipping costs, check out our complete WooCommerce profit tracking guide.
Keep reading
Related guides you might find useful
How to Track Stripe Fees in WooCommerce (And Why You Should)
Stripe takes 2.9% + $0.30 per transaction. Here's how to track those fees inside WooCommerce so you can see real profit, not just revenue.
Read guideProfit TrackingWooCommerce Payment Gateway Fees Compared: Stripe vs PayPal vs Square (2026)
Every payment gateway eats into your margins. Here's a detailed fee comparison for WooCommerce stores — including the hidden costs nobody tells you about.
Read guideProfit TrackingWooCommerce Cash Flow Management: See Where Your Money Actually Goes
Revenue comes in, fees go out, refunds happen. Here's how to get a clear cash flow picture for your WooCommerce store without a spreadsheet.
Read guideLevel up your WooCommerce store
Join the WPBundle waitlist and get beta access to our plugin suite completely free.
Join the Waitlist