# WooCommerce SEO: A Checklist for WordPress Ecommerce Sites

Author: Fatih Emin Çakıroğlu (https://fatihemincakiroglu.com)
Source: https://fatihemincakiroglu.com/en/blog/woocommerce-seo
Published: 2026-10-20
Updated: 2026-10-20

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.

> **Do not change the structure on a live store** WooCommerce's docs note that changing the permalink structure changes existing product URLs; without redirects, old links and indexed URLs return 404s. If a change is unavoidable, map old to new URLs first and prepare rules with the [redirect generator](https://fatihemincakiroglu.com/en/tools/redirect-generator).

General principles on special characters and URL length are in the post on [SEO-friendly URL structure](https://fatihemincakiroglu.com/en/blog/url-yapisi-seo).

## 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.

**Product category**
- Planned, hierarchical, limited in number
- Gets descriptive copy and internal links
- The main archive type you want indexed

**Uncontrolled product tag**
- 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](https://fatihemincakiroglu.com/en/guides/e-ticaret-seo).

## 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.

**Variation decision**
1. **Check search demand**: Do people search for the variation separately, e.g. "red evening dress"?
2. **No demand: one page**: Variations stay as selectors; one URL gets stronger.
3. **Demand: separate product**: Create a separate product with its own copy, images and title.
4. **Check parameters**: Variation 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](https://fatihemincakiroglu.com/en/guides/teknik-seo).

## 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](https://fatihemincakiroglu.com/en/blog/core-web-vitals-2025).

- **Hosting**: On shared hosting, server response slows as products and orders grow. Caching and a current PHP version are the first checks.
- **Page builders**: Heavy page builders add extra CSS and JavaScript to every page. Keep the product template lean.
- **Plugin overlap**: Two plugins doing the same job (two SEO, two caching) cause both speed issues and duplicate meta tags.
- **Images**: Upload product images at the right size, use modern formats and do not lazy-load the first image.

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](https://fatihemincakiroglu.com/en/blog/yoast-mu-rank-math-mi). 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](https://fatihemincakiroglu.com/en/guides/schema-yapisal-veri) 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](https://fatihemincakiroglu.com/en/industries/ecommerce-seo-consulting) or [get in touch](https://fatihemincakiroglu.com/en/contact).

## 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](https://fatihemincakiroglu.com/en/blog/e-ticaret-altyapisi-seo-karsilastirma).

### 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](https://fatihemincakiroglu.com/en/guides/site-tasima-seo).

### 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.

---
Please attribute as: "Fatih Emin Çakıroğlu (fatihemincakiroglu.com)". Original: https://fatihemincakiroglu.com/en/blog/woocommerce-seo
