WooCommerce SEO Guide 2026: How to Rank Products and Categories
WooCommerce SEO is the work of making a WordPress store easy for search engines to crawl, understand and rank, from the permalink of a single product to the way filters generate thousands of near-duplicate URLs. WooCommerce gives you a solid foundation out of the box, but a default install still leaves decisions that only you can make. This guide walks through those decisions in the order that matters most for a real store.
Everything here is grounded in WooCommerce’s own documentation and Google Search Central’s ecommerce guidance, with code snippets you can paste into a site-specific plugin or a child theme. If you run an agency or manage several stores, treat it as a checklist you can repeat on every new build.
Why WooCommerce SEO Needs Its Own Playbook
WooCommerce is one of the most widely used plugins in the WordPress directory: its listing on WordPress.org shows more than 7 million active installations. That popularity means most WordPress SEO advice applies to it, but a store has problems a blog never meets. Products go out of stock, prices change daily, variations multiply, and layered filters can turn a 200-product catalog into a crawl trap.
A blog’s SEO is mostly about individual articles. A store’s SEO is mostly about structure: which URLs exist, which ones you want indexed, and how link equity flows from the home page to categories and from categories to products. Get the structure right and your product content has a fair chance. Get it wrong and even excellent product copy can sit on URLs Google rarely revisits.
The rest of this guide follows that priority. We start with URLs and architecture, then move to page-level content, then to structured data and plugins. If you want a broader audit afterwards, our WordPress SEO audit checklist covers the non-store side of the site.
Product and Category Permalinks
Permalinks are the first WooCommerce SEO decision and the most expensive one to change later, because every change needs redirects. According to WooCommerce’s permalinks documentation, you configure them under Settings > Permalinks in the WordPress dashboard, in a dedicated Product permalinks section.
The documentation lists four product base options:
- Default: with WordPress’s plain permalinks, products use IDs such as
example.com/?product=111; with any other structure, products live underexample.com/product/hoodie-with-logo. - Shop base: uses the name of your shop page, such as
example.com/shop/hoodie-with-logo. - Shop base with category: adds the product category, such as
example.com/shop/hoodies/hoodie-with-logo. - Custom base: lets you set your own text before the product name.
The same page notes that the default product category base is product-category and the default product tag base is product-tag, both editable in the optional section. It also warns that your custom base must not conflict with the taxonomy bases, for example by setting both the product base and the category base to shop.
Which product permalink should you choose?
For most stores, the plain /product/ base or a short custom base is the safest choice. Including the category in the product URL reads nicely, but it creates a maintenance cost: if a product moves category or sits in several categories, its URL logic gets messy. Google itself says it generally doesn’t look at URL structure to work out a site’s structure, relying on links instead, which is explained in its guide to helping Google understand your ecommerce site structure.
So a category in the URL is not a ranking shortcut. Pick something short, readable and stable, set it before launch, and leave it alone. If you must change it on a live store, map every old URL to its new URL with 301 redirects before you flip the setting.
Category Pages: Your Highest-Value WooCommerce SEO Asset
Category pages target the broad, commercial searches that bring the most qualified visitors: “trail running shoes”, “linen bedding”, “espresso grinders”. A single product page rarely ranks for those terms, because searchers want to compare options. That makes product category archives the pages most worth investing in.
Google’s ecommerce guidance is explicit about category structure. It recommends a clear path from menus to categories, from categories to subcategories, and from subcategories to products, and warns that if category pages don’t link directly to all products in a category, crawling alone may miss some of them. It also notes that Googlebot generally doesn’t submit site searches, so products reachable only through your search box may never be found.
Give every category unique, useful copy
WooCommerce lets you add a description to every product category under Products > Categories. Many themes print that description above the product grid. Use it for a short, genuinely helpful introduction: what the range includes, who it suits and how to choose between options. Two or three short paragraphs are usually enough above the grid; longer buying guidance can sit below the products if your theme supports it.
Avoid copying the same template text across every category with the name swapped in. Thin, repetitive category copy gives Google little reason to prefer your page over a competitor with real advice.
Link to categories deliberately
Internal links tell Google which pages matter. Link your most important categories from the main menu and the home page, link related categories to each other where it helps shoppers, and link from blog posts to the category that answers the reader’s buying intent. Our guide to site structure for crawlability and authority explains how to plan these links before the catalog grows.

Product Pages That Deserve to Rank
Product pages capture specific, high-intent searches such as a model name, a size or a material combination. They convert well, but only if they offer more than the manufacturer’s spec sheet that every other retailer also publishes.
Write descriptions people actually need
The short description sits near the price and add-to-cart button; use it for the two or three facts that decide a purchase. The long description is where you answer questions: sizing, materials, compatibility, care, what is in the box. If customers repeatedly email the same question, the answer belongs on the product page.
If you sell the same item as many other shops, your own photos, measurements and usage notes are what make the page distinct. Copying manufacturer text is quick, but it puts you in a pool of near-identical pages competing on domain strength alone.
Titles, images and variations
Product titles should name the product the way people search for it, usually brand, model and the key attribute. Image file names and alt text should describe the product and variant shown, which helps accessibility first and image search second.
Variations need care. Google’s guide to designing a URL structure for ecommerce sites says that if you want variants to appear separately, each variant should be identifiable by its own URL, using a path segment or a query parameter rather than a fragment, because Google does not use fragment identifiers in indexing. Where variants use optional query parameters, Google suggests treating the URL without the parameter as canonical; where variants have unique URLs, include the canonical product URL on all variant pages.
Out-of-stock and discontinued products
Temporarily unavailable products should usually stay live with clear availability information, so the page keeps its links and returns when stock does. Permanently discontinued products are different: redirect them to the closest replacement or the parent category when a genuine equivalent exists, and let them return a 404 or 410 when nothing comparable exists. Redirecting everything to the home page helps nobody.
Filters, Sorting and Faceted Navigation
Faceted navigation is where WooCommerce SEO problems multiply fastest. Every sort order, colour filter, size filter and price range can create a new URL. On many stores you will see parameters such as ?orderby=price or ?filter_color=blue appended to category archives, and combinations of them quickly outnumber your real pages.
Google’s documentation on managing crawling of faceted navigation URLs gives several options. You can use robots.txt to disallow crawling of filter URLs while keeping the unfiltered listing crawlable. It notes that rel="canonical" pointing filtered pages to the unfiltered version may, over time, decrease crawling of the non-canonical versions. It recommends keeping filter order consistent with no duplicate filters, and returning an HTTP 404 when a filter combination returns no results.
Option 1: Block filter parameters in robots.txt
If filtered pages have no search value for your store, blocking them from crawling saves crawl activity for pages that matter. Adapt the parameter names to what your theme and filter plugin actually output:
User-agent: *
Disallow: /*?*orderby=
Disallow: /*?*filter_
Disallow: /*?*min_price=
Disallow: /*?*max_price=
Test any pattern before you deploy it, and remember that a blocked URL cannot be crawled, so search engines will not see a noindex tag or canonical on it. Choose either blocking or on-page directives for a given URL pattern, not both. Our robots.txt guide covers wildcard syntax in more depth.
Option 2: Keep filters crawlable but out of the index
If you prefer crawlers to follow links through filtered pages but not index them, add a noindex robots directive. WordPress has a wp_robots filter, introduced in WordPress 5.7 according to the WordPress developer reference, which receives an associative array of directives. A minimal snippet for WooCommerce archives looks like this:
add_filter( 'wp_robots', function ( $robots ) {
if ( function_exists( 'is_shop' ) && ( is_shop() || is_product_taxonomy() ) ) {
$facets = array( 'orderby', 'min_price', 'max_price' );
foreach ( array_keys( $_GET ) as $param ) {
if ( in_array( $param, $facets, true ) || 0 === strpos( $param, 'filter_' ) ) {
$robots['noindex'] = true;
$robots['follow'] = true;
break;
}
}
}
return $robots;
} );
If you use Yoast SEO, Rank Math or another SEO plugin, check whether it already handles these parameters before adding code, so you do not output conflicting directives.
Option 3: Turn your best filters into real landing pages
Some filter combinations match real searches, such as “waterproof hiking boots” or “oak dining tables”. Rather than letting a parameter URL rank by accident, create a proper subcategory or a curated landing page with its own copy and a clean URL. That is the same principle behind programmatic SEO for ecommerce, applied by hand to the handful of facets that deserve it.
Pagination on Shop and Category Archives
Large categories split across several pages, such as /product-category/shoes/page/2/. Pagination is fine for SEO as long as crawlers can reach every page and every product. Google’s guidance on pagination and incremental page loading sets out the rules:
- Link each page to the next page with normal HTML anchor links so crawlers can follow the sequence.
- Give each page its own unique URL; Google treats URLs in a paginated sequence as separate pages.
- Do not use the first page as the canonical for the whole sequence; give each page its own canonical URL.
- Google no longer uses
rel="next"andrel="prev", although other search engines may still use them.
Infinite scroll and “load more” buttons are the usual trap. If your theme loads extra products with JavaScript only, make sure there is still a crawlable paginated URL behind it. Otherwise products deep in a category may only be discoverable through your XML sitemap.
Product Structured Data and Merchant Center
Structured data helps Google understand product details like price and availability. Google’s Product structured data documentation distinguishes two experiences: product snippets, meant for pages where people cannot buy the product directly, such as editorial reviews, and merchant listings, meant for pages where customers can buy from you. It notes that meeting the required properties for a merchant listing also makes a page eligible for product snippets.
What WooCommerce outputs by default
WooCommerce core already generates JSON-LD. Its WC_Structured_Data class on GitHub builds Product markup with Offer or AggregateOffer data, AggregateRating and Review data when reviews exist, plus BreadcrumbList, WebSite and Order markup. That means a basic store is not starting from zero.
What core cannot know is data you never entered. Brand, GTIN or MPN identifiers, shipping details and return policies depend on your product data and on the extensions or SEO plugin you use. Fill in identifiers where you have them, keep prices and stock accurate, and validate a few product URLs with Google’s Rich Results Test after any theme or plugin change. For hands-on markup examples, see how to implement Product schema for rich results.
Structured data plus a product feed
Google’s guide to sharing product data notes that structured data is not required to appear in Search, and that web crawling is not guaranteed to find all products on a site. It recommends using both structured data and a Merchant Center feed, and states that Merchant Center participation is required to appear in the Google Shopping tab. For a WooCommerce store selling physical products, a feed is worth setting up alongside on-page markup.

WooCommerce SEO Plugins Compared
You do not need a dedicated WooCommerce SEO plugin to rank, but a general SEO plugin is close to essential for titles, meta descriptions, sitemaps and canonical control. The question is whether you need a WooCommerce-specific add-on on top. Our Rank Math vs Yoast vs AIOSEO comparison covers the general plugins; here we focus on what matters for stores.
| Need | WooCommerce core | General SEO plugin | Store-specific add-on |
|---|---|---|---|
| Product JSON-LD (price, offers, reviews) | Yes, built in | Varies; often extends or replaces core output | Usually extends with extra properties |
| Titles and meta descriptions per product and category | No | Yes | Yes, often with catalog templates |
| XML sitemaps | No (WordPress core has basic sitemaps) | Yes | Often tuned for product sitemaps |
| Canonical and noindex control for filters | No | Partial, depends on plugin | Often included |
| Brand and GTIN fields | Depends on version and extensions | Varies | Commonly included |
As one example of a store-specific add-on, the Yoast WooCommerce SEO product page lists product schema for price, availability, ratings and identifiers, product and category breadcrumbs, product sitemaps that leave out cart, checkout and filter pages, canonical controls for filters and parameters, and a redirect manager. It is a paid product that runs alongside Yoast SEO. Rank Math also documents WooCommerce-specific settings in its knowledge base, with some options, such as GTIN support, reserved for its paid tier.
A sensible rule: start with one general SEO plugin, confirm what it does with WooCommerce data, and only add a store add-on when you hit a specific gap such as GTINs, filter canonicals or catalog-wide title templates. Two plugins both outputting Product schema is a common source of duplicate or conflicting markup.
Content Beyond the Catalog
Category and product pages target buyers who already know what they want. Content targets people earlier in the journey: comparisons, buying guides, care instructions and how-tos. Those articles earn links that product pages rarely attract, and they pass relevance to your categories through internal links.
The pattern that works for most stores is simple. Pick a category, list the questions people ask before buying from it, write one genuinely useful article per question, and link each article to the category and to two or three relevant products. FAQ and HowTo markup on those articles can help search engines understand the questions they answer.
The hard part is consistency. A store that publishes one guide a month for a year usually ends up with stronger category rankings than one that publishes twenty posts in a burst and stops. Planning a calendar per category and scheduling posts ahead keeps the output steady during busy sales seasons.
A Practical WooCommerce SEO Checklist
Use this list on a new store before launch, or on an existing store as a quarterly review:
- Confirm the product base, category base and tag base under Settings > Permalinks, with no conflicts.
- Make sure every category page links directly to all of its products, through pagination if needed.
- Write a unique introduction for each important category.
- Rewrite manufacturer descriptions for your top-selling products first.
- Decide how filter and sort URLs are handled: blocked in robots.txt, noindexed, or turned into real landing pages.
- Check that paginated archives use unique, self-referencing URLs with plain links between pages.
- Validate Product structured data on a sample of simple and variable products.
- Run only one plugin that outputs Product schema, or confirm that the outputs are merged.
- Set up a Merchant Center feed if you sell physical products.
- Redirect discontinued products to true equivalents, and let the rest return 404 or 410.
- Publish supporting content on a schedule and link it to the relevant categories.
Frequently Asked Questions
Is WooCommerce good for SEO?
Yes. WooCommerce runs on WordPress, gives you control over permalinks and content, and outputs Product structured data by default. Rankings still depend on how you handle categories, filters, pagination and product content.
Should I include the category in WooCommerce product URLs?
It is optional. Google says it generally relies on links rather than URL structure to understand a site, so a category in the URL is not a ranking advantage. Short, stable URLs are easier to maintain, especially when products sit in several categories.
Do I need a WooCommerce SEO plugin?
You need a general SEO plugin for titles, meta descriptions, sitemaps and canonical control. A store-specific add-on is worth it only when you need extras such as GTIN fields, filter canonicals or catalog-wide templates.
Should WooCommerce filter pages be indexed?
Usually not. Most filter and sort combinations create near-duplicate pages. Block them from crawling or noindex them, and turn the few combinations that match real searches into proper landing pages with their own copy.
Does WooCommerce add product schema automatically?
Yes. WooCommerce core generates Product JSON-LD with offers, plus ratings and reviews when they exist, along with breadcrumb and website markup. Identifiers like GTIN, shipping details and return policies depend on your product data and extensions.
What should I do with out-of-stock products?
Keep temporarily unavailable products live with clear availability information. Redirect permanently discontinued products to a genuine replacement or the parent category, or let them return 404 or 410 when no equivalent exists.
