Set your store address first, pick a tax calculation method second, and let WooCommerce's built-in tax tables (or a tax automation plugin) do the rate math from there. Most tax mistakes in WooCommerce come from skipping the base settings and jumping straight to entering rates by hand, which breaks the moment you sell into a new state or country.
None of this is tax advice. WooCommerce and its automation plugins calculate rates based on rules you configure; whether those rules match what you actually owe is a question for an accountant, not a plugin. Get that relationship in place before you launch, especially if you sell across state or country lines.
Turn on tax handling
In wp-admin, go to WooCommerce → Settings → General and check Enable tax rates and calculations. Saving that setting adds a new Tax tab to the settings screen, which is where the real configuration happens.
Before touching rates, confirm your Store Address on the same General tab is correct and complete, city, state, postal code, country. Every tax calculation WooCommerce makes starts from that address, so an incomplete one produces wrong rates everywhere downstream.
Prices: with tax or without
Under the Tax tab, Prices entered with tax decides whether the numbers in your product editor already include tax or not. Pick one and stay consistent. Mixing products entered both ways in the same store is a common source of checkout totals that don't add up. Most stores selling to consumers enter prices tax-inclusive; B2B stores more often enter tax-exclusive prices and add tax at checkout.
Calculate tax based on controls which address WooCommerce uses for the rate lookup: customer shipping address, customer billing address, or your store's base address. Shipping address is the default and the right choice for most physical-goods stores, since it matches how most tax jurisdictions actually define the sale location.
Rates: manual tables or automation
You have two paths here, and the right one depends on how many jurisdictions you sell into.
- Manual tax tables. WooCommerce → Settings → Tax → Standard rates lets you upload or manually enter a CSV of country, state, postal code, city, and rate. This works fine if you sell into a small, fixed set of jurisdictions and rates don't change often. It does not update itself when a jurisdiction changes its rate.
- Tax automation plugins. Services like WooCommerce Tax, Avalara, or TaxJar plug into WooCommerce and calculate rates in real time based on current jurisdiction rules, including the patchwork of US state and local rates. If you sell into more than a handful of jurisdictions, or into the US where local rates can vary block to block, automation is worth the setup time over hand-maintained tables.
Either way, rates are only part of the picture: nexus (where you're legally required to collect tax at all) is a separate question, and that's squarely accountant territory.
Shipping and digital products
Whether shipping itself is taxable depends on your jurisdiction. The Tax tab has a Shipping tax class setting; leaving it on "Shipping tax class based on cart items" is a reasonable default that mirrors most US rules, but confirm it matches what you're required to charge.
Digital goods, downloads, memberships, subscriptions, often have different tax treatment than physical products, and that treatment varies a lot by jurisdiction. If your store sells both physical and digital products, you may need separate tax classes assigned per product rather than one blanket rate.
Test before you launch
Run test orders from a few different shipping addresses (different states or countries, whatever you actually sell into) and confirm the tax line at checkout matches what you expect. Do this on a staging copy of the store rather than live, the same way you'd test any other checkout change; see running a WooCommerce store for why staging matters specifically for stores, and changing your WordPress site's domain if a domain move is part of what triggered the tax review in the first place.
Keep an eye on performance too. Real-time tax lookups add an API call at checkout if you're using an automation plugin; on Flashcloud's WordPress hosting, checkout pages are already excluded from full-page caching so customers see live, correct totals rather than a stale cached price, but a slow or misconfigured tax plugin can still add noticeable checkout latency. If checkout feels sluggish after adding tax automation, it's worth ruling out as the cause.
When to get help
If tax totals look wrong after you've checked the store address, price settings, and rate source, or if a tax automation plugin isn't returning rates at all, open a ticket from Support → New ticket in the portal. Support can help rule out hosting-side causes like a blocked outbound API call or a caching conflict. What they can't do is tell you which rates you're legally required to charge, that part stays with your accountant or tax advisor.