"Just order it on Amazon," my husband said, reaching for his phone. "It's probably cheaper."
That assumption — that online is always cheaper — has cost us more money than I care to admit. So last fall, I decided to test it. I made a list of 40 household essentials and priced them both online (Amazon, Walmart.com, Target.com) and in-store (Walmart, Target, Kroger, Aldi). The results changed how I shop.
Here's the short version: online wins sometimes, in-store wins sometimes, and the difference is rarely what you'd guess. The long version is below.
The methodology
I tracked 40 common household items over eight weeks in fall 2025:
- 10 personal care items (toothpaste, shampoo, body wash, etc.)
- 10 cleaning supplies (laundry detergent, dish soap, toilet bowl cleaner, etc.)
- 10 pantry staples (peanut butter, pasta, cereal, etc.)
- 10 paper/plastic products (toilet paper, paper towels, trash bags, etc.)
For each item, I recorded the unit price (price per ounce, per count, etc.) at each retailer. I excluded one-time promotions and focused on regular, recurring prices. I also factored in shipping costs for online orders below free-shipping thresholds.
The headline findings
Before we get into categories, here are the big takeaways:
- In-store wins on 26 of 40 items (65%). The conventional wisdom that online is always cheaper is simply wrong for household essentials.
- Amazon was cheapest on only 8 items. And 4 of those required Subscribe & Save to get the best price.
- Aldi in-store was the overall winner for pantry staples and cleaning supplies, beating every online option.
- Shipping costs erase online savings unless you hit free-shipping thresholds or have a membership (Prime, Walmart+, etc.).
- Online prices fluctuate daily. The same item was 15% cheaper on Tuesday and 10% more expensive on Friday at Amazon.
Category breakdown
Personal care items
| Item | Amazon | Walmart In-Store | Target In-Store | CVS (with rewards) |
|---|---|---|---|---|
| Toothpaste (6oz) | $3.49 | $2.97 | $3.29 | $1.50* |
| Shampoo (12oz) | $4.99 | $3.97 | $4.49 | $2.50* |
| Body wash (18oz) | $5.49 | $4.47 | $4.99 | $2.00* |
| Deodorant | $4.29 | $3.47 | $3.99 | $2.50* |
*CVS prices reflect typical after-ExtraBucks cost. See my drugstore guide for details.
Winner: Drugstores with rewards. If you're using CVS ExtraBucks or Walgreens Register Rewards, drugstores crush both online and grocery store prices on personal care. Without rewards, Walmart in-store is cheapest.
Cleaning supplies
| Item | Amazon | Walmart In-Store | Aldi In-Store | Target In-Store |
|---|---|---|---|---|
| Laundry detergent (100oz) | $11.99 | $9.97 | $6.99 | $10.99 |
| Dish soap (24oz) | $3.49 | $2.47 | $1.99 | $2.99 |
| All-purpose cleaner | $3.99 | $2.97 | $2.49 | $3.49 |
| Trash bags (40ct) | $8.99 | $5.97 | $4.49 | $6.49 |
Winner: Aldi in-store, by a mile. Store-brand cleaning products at Aldi are 30-50% cheaper than name-brand equivalents online. The quality is comparable — cleaning products are commodities, and the active ingredients are the same regardless of brand.
Pantry staples
| Item | Amazon | Walmart In-Store | Aldi In-Store |
|---|---|---|---|
| Peanut butter (18oz) | $3.49 | $2.47 | $1.95 |
| Pasta (16oz) | $1.49 | $0.97 | $0.89 |
| Cereal (12oz) | $4.29 | $2.97 | $2.49 |
| Rice (5lb) | $6.49 | $4.47 | $3.49 |
Winner: Aldi in-store again. Online pantry prices are consistently 40-80% higher than Aldi. Amazon's Subscribe & Save helps, but even with the 15% subscribe discount, Aldi is still cheaper on most items.
Paper products
| Item | Amazon | Walmart In-Store | Costco | Target In-Store |
|---|---|---|---|---|
| Toilet paper (24 rolls) | $14.99 | $12.97 | $15.99** | $13.49 |
| Paper towels (8 rolls) | $11.99 | $9.97 | $13.99** | $10.99 |
**Costco prices reflect larger pack sizes, adjusted for unit comparison. See my bulk buying analysis.
Winner: It's a toss-up. Paper products are where online is most competitive. Amazon with Subscribe & Save can match or beat in-store prices, especially on name brands. But Walmart's store brands (Great Value) are consistently cheaper than anything online.
The hidden cost of online shopping: impulse purchases. The average Amazon order includes 2.3 items the shopper didn't plan to buy. At $8-15 per impulse item, that's $18-35 of unplanned spending per order.
When online actually wins
Despite in-store winning overall, there are specific scenarios where online is the better choice:
- Name-brand products you're loyal to. If you must have Tide specifically, Amazon Subscribe & Save is competitive. If you'll use any detergent, Aldi wins.
- Bulk Subscribe & Save items. With 5+ subscriptions, you get 15% off. For stable-price items, this can beat in-store.
- Hard-to-find items. Specialty products, international foods, and specific health/beauty items are often only available online.
- When you factor in time and gas. If the nearest Aldi is 30 minutes away and Amazon delivers free, the gas and time cost may offset the price difference.
- Subscription boxes for consumables. Some subscription services offer per-unit prices that beat retail, especially for razors, vitamins, and coffee.
The impulse spending problem
Here's the thing nobody talks about with online shopping: it makes impulse buying frictionless. In a store, you have to physically carry the impulse item, stand in line with it, and watch the total climb. Online, it's one click.
Studies show the average online grocery order contains 30% more items than the same shopper's in-store trip. Some of that is convenience — buying things you'd otherwise forget. But a significant portion is impulse.
If you shop online for household essentials, the #1 thing you can do to save money is make a list and stick to it. Don't browse. Search for the item, add it, check out. Treat online shopping like a mission, not an experience.
My Hybrid Strategy
Personal care: CVS with rewards (in-store). Cleaning and pantry: Aldi (in-store, weekly trip). Paper products: Walmart or Amazon Subscribe & Save (whichever is cheaper per unit that month). Specialty items: Amazon. This hybrid approach saves me about $80/month versus all-online or all-in-store.
How to comparison shop efficiently
You don't need to track 40 items to find the best prices. Here's the simplified version:
- Build a price book for your top 20 household items (see my price book guide). This gives you a baseline for comparison.
- Check unit prices, not package prices. A 24-roll pack for $14 isn't necessarily cheaper than a 12-roll pack for $6. Compare price per roll.
- Factor in shipping. If the online price is $2 cheaper but shipping is $6, you lost money.
- Use Rakuten for online purchases. Even 2-3% cash back adds up over the year.
- Re-evaluate quarterly. Prices shift. What was cheapest online in January might be cheaper in-store by April. Check your price book every few months.
The bottom line
Online shopping is convenient, but it's not categorically cheaper. For most household essentials, in-store shopping — especially at Aldi, Walmart, and drugstores with rewards — still offers the best prices. Use online shopping strategically for specific items where it genuinely wins, and resist the impulse to browse.
The best shopping strategy is the hybrid one: know your prices, shop where each category is cheapest, and never assume one channel is always better. Your price book will tell you where to buy what — all you have to do is follow it.
