How WooCommerce Handles Sitemap.xml by Default
WooCommerce does not ship its own sitemap generator. The sitemap.xml for a WooCommerce store is produced either by WordPress core's built-in sitemap feature (introduced in WordPress 5.5) or by an SEO plugin installed separately. WordPress core generates a basic sitemap at /wp-sitemap.xml, but it excludes product attributes, custom taxonomies added by WooCommerce extensions, and any URL patterns that fall outside standard post types and taxonomies registered at install time.
The practical result: a fresh WooCommerce store relying solely on WordPress core sitemaps will have an incomplete sitemap. Product categories, product tags, and base product pages typically appear, but attribute archives (e.g., /product-category/shoes/?filter_color=red) and shop-specific filtered URLs created by plugins like WooCommerce Layered Nav do not get included automatically. For stores with large catalogs, this omission causes crawl gaps immediately.
The Two Plugin Standards: Yoast SEO vs. Rank Math on WooCommerce
Yoast SEO is the most widely deployed sitemap solution on WooCommerce. It replaces the WordPress core sitemap entirely and generates a sitemap index at /sitemap_index.xml, with separate child sitemaps for posts, pages, products, product categories, and product tags. Yoast respects WooCommerce's built-in post type registration, so every published product with a public URL appears in the product sitemap automatically. The free tier covers all of this; Yoast SEO Premium adds video and news sitemaps but nothing WooCommerce-specific beyond what the free version does.
Rank Math is the primary alternative and takes a similar approach: it generates a sitemap index and populates child sitemaps per post type and taxonomy. Rank Math's free tier includes WooCommerce-specific schema markup generation alongside sitemap output, which Yoast reserves for its paid tiers. Both plugins honor the noindex directive โ any product set to noindex in the plugin's meta settings is automatically excluded from the sitemap, which is the correct behavior for out-of-stock or duplicate products you want to suppress.
The choice between them does not materially affect how Google processes the sitemap, but Rank Math's free tier delivers more WooCommerce-adjacent features without payment. The critical configuration step in both plugins is identical: navigate to the sitemap settings, confirm WooCommerce product post types and taxonomies are toggled on, and verify the sitemap index URL in Google Search Console after saving.
WooCommerce-Specific URL Patterns That Break Standard Sitemaps
WooCommerce generates several URL classes that standard sitemap plugins do not handle well. The first is variable product URLs with query strings appended by the attribute selection UI โ these are not canonical product URLs and should not be in any sitemap. Standard plugins ignore them correctly. The second and more problematic class is filtered navigation URLs produced by WooCommerce's built-in layered navigation or third-party filter plugins like FiboFilters or WOOF. These generate thousands of faceted URLs that are crawlable but carry no independent indexing value; if they land in a sitemap, crawl budget is consumed on low-value pages.
The correct configuration is to combine two controls: set faceted filter URLs to noindex via the SEO plugin's conditional rules, and confirm those noindexed URLs are absent from the sitemap. Both Yoast and Rank Math exclude noindexed URLs from sitemaps by default, but verify this in staging before deploying to production. The third URL class to audit is WooCommerce's /shop/ base page and any paginated archive pages (/shop/page/2/, /shop/page/3/). Google's current guidance treats these as supplemental; include /shop/ in the sitemap but apply rel=canonical on paginated archive pages to point back to /shop/.
Large Catalog Limits and Sitemap Splitting on WooCommerce
The XML sitemap specification caps a single sitemap file at 50,000 URLs and 50 MB uncompressed. Yoast SEO splits product sitemaps automatically once the product count exceeds 1,000 URLs per file (a conservative internal default, not the specification limit). This means a store with 5,000 SKUs will see five product sitemap files indexed under the sitemap index. Google handles this correctly; the only operational task is confirming all child sitemap files appear and return 200 status codes in Search Console's Sitemaps report.
Stores with very large catalogs โ tens of thousands of SKUs โ face a different challenge: sitemap generation time. On shared hosting or under-resourced VPS environments, generating sitemaps for 30,000+ products on a cron schedule can time out or spike server load during peak traffic. The mitigation is to schedule sitemap regeneration during low-traffic windows using a server-level cron job rather than WordPress's WP-Cron, which runs on user requests. Alternatively, some teams cache the sitemap output as a static file using a full-page cache plugin like WP Rocket, ensuring fast delivery without runtime generation on every Googlebot request.
Product Images and the WooCommerce Image Sitemap
Google's image indexing relies partly on image data embedded in page-level sitemaps, not a separate image sitemap file. Both Yoast SEO and Rank Math inject image tags (using Google's image sitemap extension namespace) into product sitemap entries automatically when product images are attached to WooCommerce products in the standard way. Each product's primary image and gallery images appear as image:image child elements within the product's URL entry.
The failure mode here is products that use externally hosted images (CDN URLs on a different domain or images linked from third-party sources rather than uploaded to the WordPress media library). These images are not attached to the product post in WordPress, so they do not appear in the sitemap's image extension data. For catalog images to be indexed via sitemap, they must be uploaded to the WordPress media library and associated with the product through WooCommerce's standard product image fields.
Configuration Checklist Before Submitting to Google Search Console
Before submitting a WooCommerce store's sitemap to Google Search Console, verify these specific conditions: the sitemap index URL resolves to a 200 status and contains child sitemap entries for products, product categories, and product tags; WooCommerce's shop page and standard content pages appear in the appropriate child sitemap; faceted navigation URLs are excluded (test by checking that a known filter URL does not appear in any sitemap file); product images attached via the media library appear as image extension entries in the product sitemap; and no noindexed products or draft products appear in any sitemap entry.
Submit the sitemap index URL โ not individual child sitemap URLs โ to Search Console. Search Console will discover and process child sitemaps from the index automatically. After submission, monitor the Indexed vs. Submitted ratio in the Sitemaps report. A significant gap between submitted URLs and indexed URLs signals either crawl budget constraints, thin content across product pages, or canonicalization conflicts โ all of which require investigation beyond the sitemap configuration itself.