Move products to another category in WooCommerce: bulk edit or a conversation
How do you move products to another category in WooCommerce? On the product list, tick the products, choose bulk edit and add the new category. Bulk edit won't remove the old one, so you then untick it in Quick Edit, product by product. With a few products that takes a moment, with sixty it takes evenings of clicking, so it pays to know both routes.
Author: The TellMyShop team. A guide for WordPress site and WooCommerce store owners: the cause, the manual fix and the same work in a chat conversation.
Last updated: · 6 min read
What happens when you change a product's category
A category in WooCommerce is a label, not a folder. A product can have several and appears in each. “Moving” is in practice two operations: adding the new category and removing the old one. How categories, tags and attributes work is described in the WooCommerce documentation on categories and attributes.
Before you start, check three things:
- The product URL. By default it looks like store.com/product/name and doesn't contain the category, so moving doesn't change it. If a product base with the category is selected in Settings → Permalinks, the URLs will change. The options are described in the WooCommerce permalinks documentation.
- Breadcrumbs. When a product has several categories, the SEO plugin shows one of them. Yoast lets you set it as the primary category, and Rank Math has a similar setting.
- The old category. If it ends up empty after the move but gets traffic from Google, it needs a description with a link to the new one, or a redirect.
Bulk edit in the admin, step by step
The built-in WordPress bulk edit can add a category to many products at once, but it can't take one away. It works the same way for posts, as described in the WordPress help on the Posts screen. Moving 60 lamps from the Lighting category to a new Table lamps category goes like this:
- Create the new category in Products → Categories. Set a parent category if it is meant to be a subcategory.
- Go to Products → All Products and filter the list by the old category.
- In Screen Options, set a higher number of products per page so you can see them all at once.
- Tick the products that should move. Watch out for the ones that should stay.
- From the Bulk actions menu choose Edit and click Apply.
- In the category field, tick the new category and click Update.
- Now every product has both categories. Open Quick Edit for each of them, untick the old category and save.
- Check the new and the old category in the store, and the product counts in Products → Categories.
Steps 1 to 6 take a few minutes. Step 7 you repeat sixty times. That's why many stores leave products in both categories, and over time the old category becomes a mess: a customer in Lighting sees table lamps mixed with wall lights, and the filters show values that don't belong in that category.
One shortcut helps with fewer products. When the old category is meant to go entirely, instead of moving the products you can change the name and URL of the category itself in Products → Categories. The products stay where they are and only the label changes. Remember to redirect the old category URL.
Admin, a bulk edit plugin or the chat
| Bulk edit in the admin | Bulk edit plugin | Chat through the TellMyShop plugin | |
|---|---|---|---|
| Adding the new category | yes, to many products at once | yes | yes, up to 50 products per batch |
| Removing the old category | by hand, in Quick Edit for each product | usually yes, a “replace” mode | yes, in the same batch |
| Choosing products | list filters and ticking | the plugin's filters | in plain words, for example “table lamps under 40 cm” |
| Preview before saving | no | depends on the plugin | yes, a “before → after” list |
| Undo | by hand | depends on the plugin | change history, you can undo most changes |
A bulk edit plugin is a sensible choice when you make changes like this every week. When you tidy the catalogue once in a while, there is no need to install another plugin just for that.
Sixty products in one conversation
Tuesday, 22:50. Quick Edit open on product 23 of 60, the cursor over the category field. That is what removing the old category by hand looks like.
The TellMyShop plugin for WordPress and WooCommerce lets you do the same with one request. Your chat (Claude or ChatGPT) finds products by category, name, attribute or price, shows a list for you to check, and then prepares a preview of the category changes. In one batch it changes the assignment of up to 50 products, so 60 lamps means two batches. Before starting it checks whether the job fits within the hourly limits set in the plugin panel. It can also create the new category. An example conversation, with sample names and numbers:
You: Move the table lamps from the Lighting category to a new Table lamps category. Wall lights and pendant lamps stay.
Your chat: The Lighting category has 148 products. By name and the Type attribute, 60 are table lamps. Three are doubtful, because the name says “bedside lamp”. Shall I include them?
You: Yes, the bedside lamps too.
Your chat: First the new Table lamps category as a subcategory of Lighting. Then two batches, 50 and 10 products. Preview of the first:
Product URLs won't change, because they don't contain the category. I'll save it after your ‘yes’.
Fala table lamp, white
old version: Lighting
new version: Table lamps
Moon bedside lamp
old version: Lighting
new version: Table lamps
On Wednesday morning you write the request, read the list and approve both batches in the same conversation. If you'd rather the products also stayed in the old category, say so, and the chat will only add the new one. Every batch goes into the change history, and you can undo most changes with “undo the last change”.
What to do after the move
Once the products are in the new category, two things remain. The first is the new category's description: an empty category page with just a grid of products tells Google and customers very little. We show how to write one in the piece on the WooCommerce category description. The second is the old category. If you delete it and it had traffic, set up a 301 redirect to the new one. In Pro the chat adds redirects without any switch, and in the free version it shows a report of 404 URLs with visit counts.
If after the change the filters in the new category don't show all products, see the guide for when WooCommerce filters are not working.
TellMyShop Free shows the category tree with product counts and finds the products to move, but saves nothing. Start with it on the free version page. Changing categories, creating new ones and redirects work in TellMyShop Pro as soon as the licence is active. Details are on the TellMyShop for WordPress and WooCommerce page, prices on the pricing page.
Questions and answers
Does WooCommerce bulk edit remove the old category?
No. Bulk edit on the product list adds the ticked categories to the selected products, but doesn't remove the ones they already have. To take a product out of the old category you have to untick it in Quick Edit or on the product screen, separately for each product.
Will moving a product to another category change its URL?
With the default settings, no, because the product URL doesn't contain the category. It will change if the product base in the permalink settings includes the category. Then the old URLs need 301 redirects.
Can a product be in several categories at once?
Yes. WooCommerce lets you assign a product to many categories and shows it in each of them. With an SEO plugin it is worth setting a primary category, because that is the one used in the breadcrumbs.
What should I do with the old, empty category?
If it gets traffic from Google or links from other sites, don't delete it without a redirect. You can keep it with a description and links to the new category, or delete it and redirect its URL to the new one. An empty category with no traffic you can simply delete.
How many products will the chat move in one batch?
Up to 50 products in one preview. With 60 products the chat will suggest two batches, and before bigger work it checks whether the job fits within the hourly limits set in the plugin panel.
WordPress is a trademark of the WordPress Foundation. WooCommerce is a trademark of Automattic Inc. Claude is a trademark of Anthropic PBC. ChatGPT and OpenAI are trademarks of OpenAI. TellMyShop is not affiliated with these companies.