The Best Permalink Structure for WooCommerce in 2026

Updated Oct 5, 2026

The best permalink structure for WooCommerce, for most stores, is the product name on its own for products (/hoodie-with-logo/) and the category path for categories (/clothing/hoodies/), with WordPress set to Post name. That gives every product one short, readable URL that doesn’t change when you reorganize your categories. WooCommerce can’t remove /product/ and /product-category/ on its own, so if you’re staying with WooCommerce’s settings, keep its Default product structure (/product/hoodie-with-logo/) rather than putting the category in the product URL.

We build Premmerce Permalink Manager for WooCommerce, so we’ve seen what each structure does on real stores. This guide shows every option WooCommerce gives you, what we recommend and why, and how to change the structure on a live store without breaking old links.

The best permalink structure for WooCommerce, in short

Page WooCommerce default Best with WooCommerce alone Best with Permalink Manager
Product /product/hoodie-with-logo/ keep the default /hoodie-with-logo/
Category /product-category/clothing/hoodies/ keep the default, or rename the base /clothing/hoodies/
Tag /product-tag/organic/ keep the default /organic/ (premium)

The rules behind it:

  • WordPress on Post name. Under Settings > Permalinks, Plain gives you /?product=hoodie-with-logo. Every other choice depends on pretty permalinks.
  • One URL per product. Keep categories out of product URLs unless each product sits in one category that won’t change.
  • Keep the hierarchy for categories. /clothing/hoodies/ tells a shopper where they are and matches your breadcrumbs.
  • Decide once. Every change to a live structure needs redirects. The best structure for an established store is often the one it already has.

Does your WooCommerce URL structure affect SEO?

Less than most guides suggest. Google’s John Mueller has said URL length and the number of slashes don’t matter for ranking: Google uses URLs as identifiers. When it finds the same page at several URLs, it tends to pick the shorter, clearer one to show, but that’s about which URL appears, not where it ranks.

What Google’s ecommerce URL guidance does ask for:

  • “Add descriptive words in URL paths.” A product slug made from the product name already does this.
  • “Minimize the number of alternative URLs that return the same content.” This is the one most WooCommerce stores get wrong, usually by putting categories in product URLs.

So the goals are readable words, one URL per page and URLs that stay put. Short URLs are mainly for people: they’re easier to read in search results, share and trust.

The permalink options in WooCommerce

WooCommerce adds its settings to the WordPress permalinks screen, at Settings > Permalinks.

WooCommerce product permalink settings on the WordPress Permalinks screen

Under Product permalinks you choose one of four structures:

Option Product URL
Default /product/hoodie-with-logo/
Shop base /shop/hoodie-with-logo/ (your shop page’s slug)
Shop base with category /shop/clothing/hoodies/hoodie-with-logo/
Custom base any text you enter, such as /products/hoodie-with-logo/

On a new store, WooCommerce 11.1 shows Custom base selected with product/ in the box, as in the screenshot. That’s the same URL as Default, so there’s nothing to fix.

Premmerce Permalink Manager for WooCommerce

Get started controlling your WooCommerce product permalinks to increase site usability and SEO performance.

Buy Plugin

Higher up the same screen, under Optional, are the Product category base (product-category by default), Product tag base (product-tag) and Product attribute base (empty). You can rename them; WooCommerce’s permalinks documentation notes that the bases must not clash with each other.

What WooCommerce won’t do is remove a base. Leave the category base or product base empty and WooCommerce falls back to product-category or product. A custom base of just /%product_cat%/ is rewritten to /product/%product_cat%/, because category URLs and product URLs would otherwise be impossible to tell apart.

Why we don’t put categories in product URLs

“Shop base with category” looks tidy, but it causes three problems on a growing store:

  • Products in several categories. A product gets one URL, built from one of its categories. WooCommerce picks the deepest one (since WooCommerce 9.9; before that, it depended on sort order). The URL may not use the category you’d expect.
  • Reorganizing changes URLs. Move hoodies under a new “Winter” category and every hoodie gets a new address. Each change needs redirects.
  • Longer, repeated words. /shop/clothing/hoodies/hoodie-with-logo/ says “hoodie” twice and adds nothing a breadcrumb doesn’t already show.

A category in the URL can make sense when your categories never change and each product belongs to exactly one, for example /mens/ and /womens/ on a shoe store. Then choose the category yourself with a primary category (below), rather than leaving it to WooCommerce.

How to remove /product/ and /product-category/ from WooCommerce URLs

Permalink Manager adds the structures WooCommerce leaves out. The free version covers products and categories:

  1. Install Premmerce Permalink Manager for WooCommerce from wordpress.org and activate it.
  2. Go to Premmerce > Permalink Manager.
  3. Under Categories, choose Full category path (/clothing/hoodies/) or Category slug (/hoodies/).
  4. Under Products, choose Product slug (/hoodie-with-logo/). The other choices are Product slug with primary category (/hoodies/hoodie-with-logo/) and Full product path (/clothing/hoodies/hoodie-with-logo/).
  5. Click Save Changes. The plugin rebuilds the rewrite rules, so the new URLs work straight away.

Permalink Manager settings with Full category path and Product slug highlighted

Nothing changes when you activate the plugin: every section starts on Use WooCommerce settings until you pick something else. If WordPress is still on Plain permalinks, saving switches it to Post name. The settings screen doc explains each option in more detail.

Products in more than one category

If you use a structure with a category in it, turn on Use primary category under Additional. Permalink Manager then builds the product URL from the primary category you set in Yoast SEO’s product editor (and with Support breadcrumbs on, a premium setting, the breadcrumbs follow the same category). Without it, Permalink Manager uses the product’s category with the highest ID, which is usually the one created most recently. Our guide to using Permalink Manager with Yoast shows where to set the primary category.

What’s free and what’s premium

Permalink Manager's Additional settings: primary category, canonicals and redirects

Setting Free Premium
Category URLs without /product-category/ yes yes
Product URLs without /product/, with or without categories yes yes
Use primary category (Yoast SEO) yes yes
Add canonicals yes yes
Remove product tag base yes
Create redirects (301 from old URLs) yes
Support breadcrumbs, Remove Shop from breadcrumbs yes
Include Shop (puts your shop page’s path in front: /shop/clothing/hoodies/) yes
SKU: Replace product slug yes
URL suffix, such as .html yes

The SKU option gives URLs like /woo-hoodie-with-logo/ for wholesale stores whose buyers search by code (how to set it up). For everyone else, readable product names are better: Google’s URL structure guidance asks for “readable words rather than long ID numbers”.

How to change the permalink structure on a live store

On a new store, pick a structure before you add products and you’re done. On a store that’s already indexed, the old URLs are in Google, in your emails and in other sites’ links, so plan for them.

What happens to the old URLs. With Permalink Manager, WooCommerce’s own URLs keep loading: /product/hoodie-with-logo/ and /product-category/clothing/hoodies/ still show the same pages. That’s safe, but it’s two URLs for one page:

  • Product pages carry a canonical tag pointing at the new URL (WordPress adds one to every product page, and SEO plugins replace it with their own).
  • Category pages get one from Add canonicals when no Yoast SEO is active (Yoast adds its own).
  • Create redirects (premium) turns the old URLs into permanent 301 redirects to the new ones, so there’s only one URL per page. It also sends a 404 whose path contains a category slug to that category. Our doc on creating 301 redirects has an example.

What isn’t redirected. Product URLs that stop resolving altogether: for example after you change a product’s slug, or change WooCommerce’s product base under Settings > Permalinks. Add those to a redirect plugin by hand. (Old category URLs that 404 are caught by Create redirects as long as the category’s slug is still in them.) Our tutorial on changing a product’s slug covers the single-product case.

Don’t rely on WordPress’s guess. When a URL 404s, WordPress redirects to a post whose slug starts with the one requested. If you delete the “Hoodie” product, /hoodie/ can land on /hoodie-with-logo/: a different product at a different price.

A safe order for the switch:

  1. Export your current product and category URLs from your XML sitemap.
  2. Make the change on a staging copy first.
  3. Check a few old URLs of each type: each should redirect (premium) or load with a canonical tag pointing at the new URL.
  4. Look for slug clashes. With base-free URLs, a page and a product with the same slug both want /hoodies/; the product or category wins. Rename the page.
  5. Update menus and internal links to the new URLs, then resubmit your sitemap in Google Search Console.

If links return 404s after the change, our guide to permalinks not working in WordPress covers rebuilding the rewrite rules.

Moving from Shopify? Keep your URLs

The best URL structure for a store moving from Shopify may be the one it already has. Shopify puts products at /products/handle and collections at /collections/handle, and WooCommerce can match both without a plugin:

  1. Under Settings > Permalinks, choose Custom base and enter /products/.
  2. Set the Product category base to collections.
  3. Import your products with their Shopify handles as slugs, and your collections as categories with the same slugs.

Your main product and collection URLs then carry over unchanged. Shopify also serves products inside collections (/collections/hoodies/products/hoodie-with-logo), so redirect those to the product URLs. Our Shopify to WooCommerce guide covers the rest of the move.

WooCommerce permalink best practices

  • Use lowercase words separated by hyphens, not underscores.
  • Put the words a shopper would search for first: /merino-wool-beanie/ rather than /beanie-merino-wool-blend-v2/.
  • Leave dates and IDs out of product URLs.
  • Keep slugs short: drop words like “the”, “and” and “for” when the slug reads fine without them.
  • Set up a 301 redirect whenever you change a live URL.
  • Prefer flat URLs, and let breadcrumbs show the hierarchy.

Get the best WooCommerce permalink structure with Permalink Manager

WooCommerce’s settings are fine if you’re happy with /product/ and /product-category/ in your URLs. If you want shorter ones, Premmerce Permalink Manager for WooCommerce removes both bases in the free version, and the premium version adds 301 redirects from the old URLs, base-free tag URLs, the /shop/ prefix, SKU URLs and suffixes. We compare it with the alternatives in our roundup of custom permalink plugins.

Try Permalink Manager free on wordpress.org.

Comments

Avatar
Author
Iain
6 min read
Share this post:

Ready to Get Started?

Join over 100,000 smart shop owners who use Premmerce plugins to power their WooCommerce stores.

Get started