Every ‘best WooCommerce plugins’ list is written to fill space, not to get you to checkout. So here’s the stack I install for a store that needs to be live by Sunday, and the popular stuff I leave out on purpose.
Start with hosting that isn’t $3 a month. WooCommerce runs database queries on every product page, and cheap shared hosting turns a 40-product catalog into a five-second load. You don’t need managed enterprise hosting either — a $10–15/month plan with at least 1GB memory and PHP 8.2 is the floor. If your host won’t let you switch PHP versions from the panel, that’s your sign to pick a different host before you install anything.
Theme: use a block theme built for WooCommerce — Twenty Twenty-Four or Twenty Twenty-Five both work fine, and Storefront is still the boring safe choice. The temptation is a $59 ‘multi-purpose’ theme with a page builder bundled. Skip it. Page builders add a layer between you and the product templates, and when a WooCommerce update changes a hook, your builder’s product widget is the thing that breaks. Plain block themes don’t have that problem.
Plugins, in the order I install them: WooCommerce itself, then a payment gateway (Stripe or WooPayments — pick one, not both), then a shipping plugin only if you need live carrier rates. For tax, WooCommerce Services handles US nexus well enough for a solo store. For email receipts and abandoned carts, use a transactional email plugin pointed at a real SMTP service — WordPress’s default mail function gets your receipts flagged as spam, and that’s a support ticket you don’t want.
Now the skips. First, most ‘all-in-one’ SEO plugins with 40 modules. You need titles, meta descriptions, and a sitemap. Rank Math or Yoast both do that; turn off everything else. Second, caching plugins that promise ‘one-click optimization.’ They conflict with WooCommerce’s cart fragments and session cookies more often than they help. If your host has server-level caching, use that and leave the plugin alone.
Third, and this is the one people argue with me about: skip the upsell/cross-sell plugin on day one. You have no traffic yet. Optimizing average order value before you have orders is procrastination with a dashboard. Add it when you’re doing 50 orders a month and can actually read the data.
Here’s the part the lists never mention: the settings you’ll forget. Turn off guest checkout if you’re selling digital goods and need email delivery confirmed — actually, keep guest checkout on, it reduces friction, but make sure ‘require email verification’ is off or your first customer will email you confused. Set your currency and product weight units before adding products, because changing them later means editing every product. And set your permalinks to ‘Post name’ before you publish anything, or your product URLs will be ugly forever unless you set up redirects.
One more: test checkout with a real card in live mode before you tell anyone the store exists. Stripe’s test mode passes when live mode fails on a missing webhook, and you’ll find out from a customer. Buy your own cheapest product, confirm the receipt email arrives, then refund yourself. That five-minute test catches more launch-day problems than any checklist.
None of this is clever. That’s the point. The stack that goes live this weekend is the one with the fewest moving parts, not the one with the most features you’ll never configure.
