How you handle tax in a shopping feed depends on where you sell. In the United States, Google expects sales tax to be sent as a separate tax attribute in the feed (or set in your Merchant Center account). In VAT countries (most of Europe and many others), Google expects the tax to be already included in the price, and you do not send a tax attribute at all. This guide covers both, and shows how CTX Feed reads your WooCommerce tax rates so the right numbers reach Google.
First, decide which model you need
- US sales tax → send the
taxattribute. Follow the steps below to map the tax attribute into the feed. - VAT → send tax-inclusive prices, no tax attribute. Skip the tax attribute and instead use the tax-inclusive price fields. See How to include value added tax (VAT) in my prices.
Sending a US-style tax attribute to a VAT account (or double-charging by adding tax to an already tax-inclusive price) is a common cause of price mismatches and disapprovals — so match the model to your market.
Step 1: Set up your tax rates in WooCommerce
CTX Feed reads tax data straight from WooCommerce — it never invents rates — so the numbers must be correct there first.
- Go to WooCommerce → Settings → Tax.
- Under Tax options, set whether your catalog prices are entered inclusive or exclusive of tax.
- Open a tax class (for example, Standard rates) and add a row for each country/region you charge tax in: Country code, State, Rate %, and whether Shipping is taxable. Always fill in the Country code — a row left blank (“all countries”) is not matched to a feed country.
- Make sure each product uses the correct Tax class (on the product’s General tab).
Step 2: Add the tax attribute to your feed
- Go to CTX Feed → Make Feed, or edit an existing feed from Manage Feeds.
- Pick the Google Shopping template and stay on the Config tab.
- The template has no tax row by default, so click Add attribute and choose the channel’s tax attribute.
- Keep the Source toggle on Attribute, and in the Value dropdown choose Tax (Google Format) from the Tax group.
- Click Save & generate to save and regenerate.

- The tax row — Source on Attribute and Value set to Tax (Google Format).
- Add attribute — adds the row to the end of the table.
CTX Feed builds the tax value from the WooCommerce rates of each product’s tax class. In XML feeds it writes one nested g:tax block per rate, with the country, region, rate and whether shipping is taxed. We recommend an XML feed when you send tax rates.
Step 3: Choose which tax rates to include
If you charge tax in several countries but a feed targets just one, you don’t want every rate in every feed. CTX Feed lets you scope this.
- First, set the feed’s Country at the top of the Make Feed screen. This is the country the feed targets; it starts as your WooCommerce store country and is required.
- Open the Filters tab and find Tax rates under Product selection.
- Choose a scope:
- Feed country — writes only the rates whose country code equals the feed’s country. For the US, that includes every state row. Use this for a single-country feed.
- All countries — writes every rate of the product’s tax class. Use this only if the destination expects several countries’ rates.
- Save and regenerate the feed.

- Tax rates — choose Feed country or All countries.
New feeds start on Feed country, unless your global shipping setting is set to include all countries; in that case they start on All countries.
A note on the Google Merchant Center side
You can manage tax in two places, and you should pick one to avoid conflicts:
- Account-level — set your tax nexus and rates in Merchant Center → Tax settings. This is the simplest option for most US sellers and means you can leave the
taxattribute out of the feed. - Feed-level — send the
taxattribute as shown above to override or supplement account settings for specific products.
For VAT regions, leave tax out of both the feed attribute and Merchant Center tax settings, and make your prices tax-inclusive instead.
Troubleshooting
- The tax value is empty in the feed. Check that the product’s Tax class has rate rows and — with the Feed country scope — that one of them has the feed’s country code (rows with a blank country don’t match). Regenerate afterward.
- Google reports a tax or price mismatch. Confirm you’re using the right model:
taxattribute for the US, tax-inclusive prices for VAT. Don’t do both. - Only one country’s tax shows. That’s expected with the Feed country scope. Switch Tax rates to All countries in the Filters tab if you need every rate.
- VAT customers see the wrong total. Don’t add a tax attribute for VAT — include VAT in the price instead. See the VAT guide linked below.
Related guides
- How to include value added tax (VAT) in my prices
- How to add sale price into feed
- How to use commands to format attribute output
