WooCommerce Sitemap: Configure Products, Categories, and Variations
WooCommerce Doesn't Generate Sitemaps — Plugins Do
WooCommerce itself has no built-in sitemap generator. Your sitemap is produced by your SEO plugin — either Yoast SEO or Rank Math are the two dominant choices. WordPress 5.5+ introduced a basic XML sitemap, but it's too limited for ecommerce use. You need a dedicated SEO plugin for proper product sitemap management.
Your WooCommerce sitemap URL is typically at https://yourdomain.com/sitemap_index.xml (Yoast) or https://yourdomain.com/sitemap.xml (Rank Math). Both generate a sitemap index pointing to child sitemaps for products, categories, pages, and posts. Go to this URL in your browser first — if you see a 404, your SEO plugin may not be generating sitemaps or may have a conflict with another plugin.
What to Include vs Exclude in Your WooCommerce Sitemap
Include in your sitemap: product pages, product category pages, product tag pages (if they have enough unique content), and CMS pages. These are the URLs you want Google to discover and index for search traffic.
Always exclude from your sitemap: the cart page (/cart/), checkout page (/checkout/), my account pages (/my-account/ and all subpages), thank you / order confirmation pages, and any page with a noindex tag. These URLs have no SEO value and waste your crawl budget.
In Yoast SEO: go to SEO > Search Appearance > Content Types and set each content type to off/noindex if you want to exclude it from the sitemap. For individual pages, set the Yoast snippet settings to "noindex" in the page editor. In Rank Math: go to Rank Math > Sitemap Settings and toggle each post type.
The Product Variation URL Explosion Problem
WooCommerce variable products create separate URLs for each variation when accessed directly (e.g., /product/t-shirt/?attribute_color=red&attribute_size=large). These variation URLs can number in the hundreds of thousands for large stores and serve near-identical content. They should never appear in your sitemap.
Neither Yoast nor Rank Math includes variation URLs in the sitemap by default — the sitemap includes only the parent product URL. However, if you've manually added variation URLs somewhere or have a plugin generating them, audit your sitemap for ?attribute_ query strings and exclude those URLs. Also add a canonical tag on each variation URL pointing back to the parent product to prevent duplicate content issues.
Product Image Sitemaps and lastmod
Yoast SEO includes product images in the sitemap XML using the image: namespace extension. Each product URL entry gets <image:image> child elements listing the featured image and gallery images. This helps Google discover your product images for Google Images search. Rank Math has similar functionality enabled by default.
The lastmod date in your product sitemap should reflect when the product was last updated in WooCommerce. Both Yoast and Rank Math pull this from WordPress's post_modified date — so updating a product's price, description, or stock status will update its lastmod in the sitemap, signaling Google to re-crawl it.
Handling Large WooCommerce Catalogs (50k+ Products)
XML sitemaps have a limit of 50,000 URLs and 50MB per file. For large WooCommerce stores, Yoast automatically splits the product sitemap into multiple files: product-sitemap1.xml, product-sitemap2.xml, etc., all referenced from the main sitemap_index.xml. This is correct behavior — don't try to consolidate them into one file.
For very large catalogs, your bigger concern is crawl budget. Google allocates a crawl budget per site, and a 100,000-page sitemap doesn't mean Google crawls all 100,000 pages. Focus on quality over quantity: exclude out-of-stock products that have been unavailable for more than 30 days, exclude thin product pages with very little unique content, and ensure your most important category and product pages are well-linked internally so they get crawled first.
Submitting Your WooCommerce Sitemap to Google Search Console
In Google Search Console, go to Indexing > Sitemaps and submit your sitemap index URL. For Yoast, this is sitemap_index.xml. For Rank Math, it's sitemap.xml. You only need to submit the index — Google follows the child sitemap links automatically.
After submission, monitor the "Submitted" vs "Indexed" counts in GSC. A large gap (e.g., 10,000 submitted, 2,000 indexed) typically indicates duplicate content, thin pages, or crawl budget issues — not a sitemap problem per se. Use the URL Inspection tool on specific product pages to understand why Google isn't indexing them.
WooCommerce Pagination and Archive URLs in Sitemaps
WooCommerce generates paginated archive URLs like /shop/page/2/ and /product-category/clothing/page/3/. These paginated archives should not be in your sitemap — they are near-duplicate listing pages with no unique content. Yoast SEO excludes paginated archives from the sitemap by default, and Rank Math does the same. This is correct behavior and you should not override it.
However, if you've customized your sitemap settings or use a third-party sitemap plugin, verify paginated URLs are excluded by checking your product sitemap XML file for URLs ending in /page/N/. If you find them, exclude them in your SEO plugin's sitemap settings or add the pattern to your plugin's exclusion list.
Product tag archive pages (/product-tag/sale/) require individual evaluation — only include tag pages in your sitemap if they have enough unique products to provide genuine value to a searcher. A tag with 3 products and no unique description does not deserve a sitemap entry. In Yoast, you can exclude product tag archives entirely under SEO > Search Appearance > Taxonomies. In Rank Math, use the Sitemap Settings to toggle product tag inclusion.
Diagnosing WooCommerce-Specific Sitemap Errors in Google Search Console
The most common WooCommerce sitemap issue in GSC is a large gap between "Submitted" and "Indexed" counts — for example, 8,000 URLs submitted but only 1,200 indexed. This is almost never a sitemap formatting error. The root causes are typically content-quality issues that a sitemap change alone cannot fix.
The four main causes: (1) Duplicate content — your products are accessible via multiple URL paths (category path, tag path, direct path). Yoast and Rank Math handle this automatically via canonical tags on product URLs, but verify canonical tags are present on your products using URL Inspection in GSC. (2) Thin product pages — products with only a name and price and no description are flagged as thin content. Improve descriptions for your top-selling products first. (3) Crawl budget constraints — for stores with 10,000+ products, Google may not crawl every product on every pass. Improve internal linking from category pages to individual products to signal priority. (4) Soft 404s — out-of-stock products that return a 200 HTTP status but display "Product not available" behave like soft 404s in Google's eyes. Either keep these products live with a complete description, or 301 redirect them to the most relevant in-stock alternative.