To set up taxes in WooCommerce, first enable tax rates and calculations in WooCommerce > Settings > General. Then open the new Tax tab, decide whether your catalog prices include tax, select the address WooCommerce should use, enter rates for each jurisdiction, assign tax classes to products, and place test orders before accepting real payments.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
Your legal obligation depends on where you sell and where your business has a tax nexus. WooCommerce supplies the calculation framework; it does not decide which jurisdictions you must register for or which rates apply. Confirm your setup with a qualified tax professional, especially when selling across state or national borders.
As an Amazon Associate I earn from qualifying purchases.
Recommended Free Tools
What WooCommerce tax settings control
WooCommerce separates tax configuration into four related decisions:
- Price basis: whether the prices you type into products already contain tax.
- Tax location: which customer or store address determines the rate.
- Rate rules: the country, state, postcode, city, percentage, priority, and other conditions that make a rate apply.
- Product classification: whether an item is taxable and which class (such as Standard or Reduced rate) it uses.
A correct rate can still produce an incorrect order total if any of those four decisions conflict. For example, entering tax-inclusive prices while displaying them as tax-exclusive causes customers to see a different price from the one you intended. Start with the store-wide options, then add rates and classify products.
#1 Best Overall
Prepare your store before enabling taxes
Gather the information your tax adviser or local authority has given you before entering rows in WooCommerce. You may need:
- The legal business address used as the store base address.
- Countries, states or provinces, postcodes, and cities where you are registered or required to collect.
- The percentage and name of each applicable tax (for example, a state sales tax and a local rate).
- Which products are taxable, exempt, or subject to a reduced rate.
- Whether shipping is taxable in each jurisdiction.
WooCommerce does not automatically keep manually entered rates current. A rate change, new postcode boundary, or altered exemption requires you to edit the matching row yourself. Keep a dated record of the source and effective date for every rate so you can audit changes later.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Enable tax calculations
- In the WordPress dashboard, go to WooCommerce > Settings > General.
- Turn on Enable tax rates and calculations.
- Click Save changes.
- Reopen WooCommerce settings and select the new Tax tab.
If the Tax tab is missing, the General setting was not saved, a permissions problem prevented the change, or an extension is replacing WooCommerce’s native settings. Save again, check that you are an administrator, and temporarily review tax-related extensions if their documentation says they alter the settings screen.
Configure the Tax options page
Open WooCommerce > Settings > Tax > Tax options. Labels and defaults can vary slightly by WooCommerce version, so use the wording shown by your installed version.
Prices entered with tax
Select one of two modes:
- Yes, I will enter prices inclusive of tax: the product price you type includes the tax portion.
- No, I will enter prices exclusive of tax: the typed price is the pre-tax amount, and WooCommerce adds tax when it calculates the order.
The choice changes the arithmetic, not merely the label. At a 20% UK rate, a tax-inclusive price of £9.99 is divided into approximately £8.325 before tax and £1.665 tax. If you instead enter £8.325 as an exclusive price, WooCommerce adds 20% and displays approximately £9.99. Rounding at the currency’s displayed precision can make the final penny differ.
Exclusive pricing keeps the underlying item price consistent when customers in different jurisdictions face different rates. TaxCloud recommends that approach for that reason, but it is a vendor recommendation rather than a WooCommerce default; choose the method required by your accounting and consumer-pricing rules. See TaxCloud’s WooCommerce sales-tax setup guide for its explanation.
Calculate tax based on
Choose the address WooCommerce will use to select a rate:
Rank #2
| Option | How it works | Important condition |
|---|---|---|
| Customer shipping address | Uses the destination entered for delivery. | The customer must provide a shipping address. This is the default documented by WooCommerce. |
| Customer billing address | Uses the address associated with payment or billing. | The customer must enter a billing address that contains the country and any required region or postcode. |
| Shop base address | Always uses the store’s configured location. | It does not change when a customer enters a different destination. |
TaxCloud says most U.S. states generally require destination-based treatment and recommends the customer shipping address option for those cases. That is a vendor’s guidance, not a universal rule: confirm the rule for every jurisdiction in which you collect.
If you sell downloads or other virtual goods with no shipping address, billing-address or shop-base calculations may be more practical. Check how your checkout collects addresses before choosing; an address-dependent setting cannot calculate a destination rate that the customer never supplies.
Shipping tax class
Select how shipping is classified when WooCommerce adds a delivery charge:
- Tax class of the cart items (the default): shipping follows the applicable class represented in the cart.
- Standard: shipping always uses the Standard class.
- Reduced rate: shipping always uses the Reduced rate class.
- Zero rate: shipping is not charged tax under that class.
Shipping rules vary substantially. If a cart contains products from more than one class, ask your tax adviser which treatment your jurisdiction requires and test mixed-class carts.
Display prices in the shop and during cart and checkout
Set Display prices in the shop and Display prices during cart and checkout deliberately. They can display tax-inclusive or tax-exclusive amounts, independently of the stored product prices. As a practical safeguard, make both display choices agree with Prices entered with tax unless your pricing policy explicitly requires a different presentation. WooCommerce’s Use recommended settings button aligns these three controls.
Misaligned settings are a common source of apparent overcharging: a catalog can show a tax-inclusive amount while checkout adds tax again, or a tax-exclusive catalog can look lower than the amount a customer ultimately pays. Use a test product and inspect the price in the product page, cart, checkout, and order confirmation.
Rounding
The rounding control determines whether WooCommerce rounds each line item or waits until the cart subtotal. TaxCloud advises leaving the option unchecked so rounding occurs at the cart subtotal rather than per item. The default for this control can differ by version, so verify the selected state in your installation and compare it with your accounting system. Small differences are most visible in carts containing many low-priced items or fractional tax amounts.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Add tax rates and tax classes
After choosing the global behavior, open the relevant class under the Tax tab. WooCommerce normally provides Standard rates, Reduced rate, and Zero rate. Select a class and click Insert row to enter a rule.
What each rate column means
| Field | What to enter |
|---|---|
| Country code | A two-letter ISO country code. Leave blank to match every country, if that broad rule is legally appropriate. |
| State code | The region, state, or province code used by the customer’s address. |
| Postcode / ZIP | A specific code, a range, or a pattern supported by the installed WooCommerce version. |
| City | A city restriction when a local rule applies only there. |
| Rate % | The percentage for this rule, entered exactly as supplied by the tax authority. |
| Tax name | The label shown in calculations, invoices, and order details, such as a state or VAT name. |
| Priority | The order in which WooCommerce evaluates competing rates. |
| Compound | Marks a tax-on-tax rule when the jurisdiction requires a second rate to apply after another tax. |
| Shipping | Indicates whether the rate also applies to the shipping amount. |
Use the narrowest accurate geographic condition. A country-wide row can unintentionally override a state- or postcode-specific rule if its priority and matching conditions are not planned carefully.
Use priorities for stacked or competing rates
Only one applicable rate at a given priority is used. If a state rate and a local rate must both apply, give them different priority numbers so WooCommerce can apply both. Mark a rate as Compound only when the jurisdiction requires tax-on-tax treatment; it is not a general way to stack ordinary rates.
For example, a state rate could use priority 1 and a local rate priority 2. The exact percentages and whether the local amount is compound must come from the authority or your tax adviser. After saving, place an order whose address matches both rows and inspect the itemized tax lines to verify that both rules were selected.
Free tools Windows power users keep installed
One-click scans. No signup required.
Import a CSV when you have many jurisdictions
For a large rate schedule, use the class’s rates page and choose Import CSV instead of inserting rows one at a time. Build the file with the same columns shown in the table, preserve the required country and region codes, and keep a backup of the file you imported. Importing a new schedule does not remove the need to review priorities, shipping flags, compound settings, and overlapping rows.
Create a custom tax class
- In the Tax options screen, find Additional tax classes.
- Type each custom class name on its own line.
- Save the settings.
- Return to the Tax tab, open the new class, and enter its rates using the same row fields.
Use a custom class only when the legal treatment differs from Standard, Reduced rate, or Zero rate. Names are internal labels, so choose clear terms your staff will recognize, such as “Digital services” or “Food reduced,” and document the rule that each class represents.
Assign tax status and class to products
A rate row does nothing for a product that is marked non-taxable. Edit a product and open Product data > General:
Rank #4
- Features Over 160 Latin Songs
- Arranged for C Instruments
- Standard Notation
- 48 Pages
- Set Tax status to Taxable, Shipping only, or None.
- Choose the intended Tax class, such as Standard, Reduced rate, Zero rate, or your custom class.
- Update the product.
Taxable applies the selected class to the product price. Shipping only excludes the item price while allowing tax on its shipping charge where the shipping rule applies. None excludes the product from tax calculation.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →For catalogs with many products, use WooCommerce’s bulk editor. Select the products, choose Edit, set the tax status and tax class, and apply the change. Review a sample from each category afterward; a bulk edit can overwrite carefully chosen exceptions.
Manual rates versus automated tax services
WooCommerce’s built-in rows give you direct control, while an automated extension can maintain jurisdiction data for you. Neither approach removes the need to determine where your business must collect tax.
| Consideration | Manual WooCommerce rates | Automated service or extension |
|---|---|---|
| Upkeep | You update rates, boundaries, and exemptions when rules change. | The service may update tax data, subject to its coverage and update schedule. |
| Control | Full control over classes, priorities, names, and shipping flags. | Some native controls may be hidden, locked, or replaced. |
| Account requirements | No external tax account is required for the built-in table. | Requirements vary. The WooCommerce Tax extension is described by secondary guides as connecting through Jetpack and a WordPress.com account; verify current prerequisites before installation. |
| Cost | No separate service price is stated for the built-in feature. | Pricing depends on the provider and plan; confirm current charges directly with the provider. |
| Coverage | Limited to the jurisdictions and rules you enter. | Depends on the service’s supported countries, product types, and filing features. |
Choose manual rates when you operate in a small, stable set of jurisdictions and need transparent control. Consider automation when maintaining a large, frequently changing rate matrix exceeds your team’s capacity, but test the extension’s address logic and product mapping before replacing native settings.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Test the calculation before launch
Save every settings change before testing. Create a test product for each tax class and run orders that exercise different address and cart combinations.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errors- Place an order using the store base address.
- Place another using a different state, province, or country that has a distinct rate.
- For destination-based tax, enter a shipping address and confirm that the selected rate follows it rather than the billing address.
- For billing-based tax, use different billing and shipping addresses and verify that the billing location controls the result.
- Add a product from each class to a mixed cart.
- Add a taxable shipping method and check whether the shipping amount receives the intended class and rate.
- Test a non-taxable product and a product marked Shipping only.
- Buy multiple quantities and several low-priced items to expose rounding differences.
- Compare the displayed product price, cart subtotal, tax line, shipping tax, order total, confirmation email, and the amount recorded in the order.
Run the same matrix with coupons, refunds, and backorders if those features are part of your normal workflow. A calculation that is correct for one address can still fail when a customer changes the destination during checkout.
Troubleshoot common tax problems
The Tax tab is not visible
Return to WooCommerce > Settings > General, enable tax rates and calculations, and save. If it remains absent, check administrator permissions and whether a tax extension has replaced the native settings.
Best Value
The customer sees tax twice
Compare Prices entered with tax with both display settings. A tax-inclusive catalog combined with tax-exclusive display or a conflicting extension can make the presentation appear duplicated. Check the actual tax line in the cart and order, not only the product-page label.
A local rate is missing
Confirm that the customer’s country, region, postcode, and city match the row exactly, then inspect priorities. Two matching rows at one priority do not both apply; assign distinct priorities when both taxes are required.
Shipping tax is wrong
Review the Shipping tax class, the row’s Shipping flag, and the product class used by the cart. Test a cart containing one class at a time before testing mixed products.
The total differs by a penny
Check the rounding setting and whether your accounting system rounds per line or at subtotal. TaxCloud advises leaving per-item rounding unchecked so WooCommerce rounds at the cart subtotal, but your jurisdiction or accounting workflow may require a different method.
A tax extension removed controls
Read the extension’s current documentation and identify which settings it owns. Do not maintain competing manual rows and automated rules without confirming which system is authoritative; duplicate calculations are difficult to diagnose.
Maintain the setup after launch
Schedule a periodic review of rates, exemptions, and product assignments. When a law changes, update the affected row with its effective date, test an order dated after the change, and retain the previous schedule for your records. Recheck the setup after WooCommerce core updates, theme changes, checkout customization, or installation of a payment, shipping, or tax extension because those changes can alter address collection and displayed totals.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchKeep invoices and order records consistent with the tax name and class used in WooCommerce. If you register in a new jurisdiction, add and test its rate before advertising to customers there. If you stop collecting in a jurisdiction, do not simply delete historical rows needed to explain past orders; archive the old schedule and apply an end date or replacement strategy appropriate to your accounting process.
Tax law is jurisdiction-specific and can change without a WooCommerce release. Have an accountant or tax professional review the countries, states, product classifications, shipping treatment, and filing obligations that apply to your business.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




