WooCommerce SEO: A Checklist for WordPress Ecommerce Sites

WooCommerce gives you a freedom Shopify does not: you choose the URL structure, templates and server. Most WooCommerce problems I see in audits come from a few settings chosen at launch and from plugins piled up over the years.
This post is a checklist for stores running on WordPress: permalinks, category and tag archives, variable products, filter URLs, speed and plugin choice.
Short answer: the most critical WooCommerce SEO decision is setting the permalink structure before the store launches; changing it later changes every product URL. After that come keeping product tags under control, keeping variations on one product page, limiting crawling of filter URLs and keeping the plugin count low.
How should WooCommerce permalinks be set up?
According to WooCommerce's official docs, product URLs are set in the WordPress dashboard under Settings > Permalinks. The product category base defaults to product-category and the tag base to product-tag; you can replace them with a short term in your store's language.
| Product base option | Example URL | When it fits |
|---|---|---|
| Default | /product/hoodie-with-logo | Simple structure; pick a custom base to localise the prefix |
| Shop base | /shop/hoodie-with-logo | When you want consistency with the shop page |
| Shop base with category | /shop/hoodies/hoodie-with-logo | Stable categories only; the URL changes if the category does |
| Custom base | /item/hoodie-with-logo | When you want a short, localised prefix |
For most stores I prefer a short custom base without the category. Moving the product to another category changes its URL and requires a redirect. As the docs warn, the product base and category base must not be identical.
General principles on special characters and URL length are in the post on SEO-friendly URL structure.
Category, tag and attribute archives
WooCommerce can create three kinds of archive pages: product categories, product tags and attributes with archives enabled (colour, size). Categories are the backbone of the store; tags, used without control, produce hundreds of thin, near-identical pages.
- Planned, hierarchical, limited in number
- Gets descriptive copy and internal links
- The main archive type you want indexed
- Added to products at random
- Mostly thin pages with a few products
- Competes with categories for the same query
Either skip tags or use them only for filtering and set their archives to noindex. According to WooCommerce's docs, attribute archives only exist if you enable archives for that attribute; leave them off unless a combination is genuinely searched. How to build category architecture is covered in the ecommerce SEO guide.
How should variable products be handled?
On variable products, variations (colour, size) are selected on a single product page by default; no separate product page is created. That is the right structure for most stores: links, reviews and content stay on one page.
- Check search demandDo people search for the variation separately, e.g. "red evening dress"?
- No demand: one pageVariations stay as selectors; one URL gets stronger.
- Demand: separate productCreate a separate product with its own copy, images and title.
- Check parametersVariation URLs with parameters should canonicalise to the main product.
If you create a separate product for a variation, make the copy genuinely different. Pages where only the colour name changes come back in Search Console as URLs that are not indexed.
Filter, sorting and cart URLs
Layered filters and sorting options create a new parameter URL with every click. Cart, checkout and my-account pages do not belong in search results either.
- Limit crawling of sorting (orderby) and multi-filter parameters via robots.txt or by not exposing them as crawlable links.
- For single filter combinations people actually search ("men's leather boots"), create a real subcategory instead of a parameter.
- Keep cart, checkout and account pages out of the sitemap; your SEO plugin usually does this automatically.
- Check that parameter URLs canonicalise to the clean category URL.
Which method fits which case (robots.txt, noindex, canonical) is compared in the technical SEO guide.
Speed and plugin bloat
Three things drive WooCommerce speed: hosting, theme and plugins. For the Core Web Vitals thresholds (LCP ≤ 2.5 s, INP ≤ 200 ms, CLS ≤ 0.1), see the Core Web Vitals post.
A simple rule for plugin audits: every plugin needs an owner and a reason. Otherwise, disable it on staging and measure.
Choosing an SEO plugin and structured data
On its own, WooCommerce is limited for title templates, sitemap detail and category meta descriptions, so most stores use an SEO plugin. I compare when each fits in Yoast or Rank Math. One rule: only one SEO plugin at a time.
WooCommerce adds basic product structured data to product pages, and SEO plugins can extend it. Use the Rich Results Test to confirm the source does not contain more than one Product block. See the structured data guide for details.
- Permalink bases are short, localised and distinct.
- Product tags are under control; thin archives are noindex.
- Variations live on one page or as justified separate products.
- Filter and sorting URLs canonicalise to the category.
- One SEO plugin, one caching plugin.
- Product structured data is not duplicated.
If you want to audit your WooCommerce store against this list or plan a migration to WooCommerce, see ecommerce SEO consulting or get in touch.
Frequently Asked Questions
Is WooCommerce or Shopify better for SEO?
Stores rank well on both. WooCommerce offers more control, Shopify less maintenance. I cover the decision criteria in the ecommerce platform SEO comparison.
Should the shop page (/shop/) be indexed?
The shop page is usually a general archive listing every product and rarely a strong search target on its own. Leaving it indexed is fine, but build main navigation around categories. Check that paginated URLs self-canonicalise.
Can I remove the product category base entirely?
Some plugins do this, but without a base, category, page and post URLs can collide. The benefit is small and the risk is real, so I recommend a short localised base.
What should I watch when migrating to WooCommerce from another platform?
Do not go live before mapping every old and new product, category and content URL with 301 redirects. Carry over meta titles, descriptions and structured data. The process is laid out in the site migration SEO guide.
Should I hide out-of-stock WooCommerce products?
WooCommerce has an option to hide out-of-stock items from the catalogue, but that does not remove the product page. Keep the page live if the product is returning; if it is gone for good, 301 it to the closest alternative.
Should the blog and store live on the same WooCommerce site?
Yes, the same domain helps internal linking. Link from blog posts to related categories and avoid having a post target the same query as a category page.

8+ years of hands-on SEO and GEO experience across 150+ projects in e-commerce, SaaS, healthcare and local business sectors. Writes based on real client data, not theory.