The WooCommerce indexing question I get is rarely “why did my products never index”. It is “they were indexed, and now they are not”. A catalogue that looked fine at launch loses product URLs month by month, nothing turns red in Search Console, and the owner only notices when a bestseller stops selling.
When I went looking at what ranks for this problem, the results were support threads and tip lists: change everything, hope something was the cause. The best diagnostic write-up I could find dates from 2019 and still talks about the old Coverage report. So here is the version I actually run on WooCommerce stores, in order, using the current Page indexing report, plus the store settings that turn out to be the culprit far more often than “content quality”.
Why do products drop out instead of failing at launch?
Because indexing is a budget, not a ledger. Google continuously re-evaluates what is worth keeping, and a product URL keeps its place by earning recrawls. What changes over time on a store is not usually the product page; it is the store around it. The catalogue grows, filter and sort URLs multiply, stock flips, and one day the section of Google’s attention your products lived in is being spent on ?orderby=price pages instead. Products do not get thrown out so much as crowded out, and the crowding is self-inflicted.
That is why churn is a different diagnosis from a page that was never indexed. If yours never made it in at all, start with Discovered versus Crawled, currently not indexed and come back.
The checks, in order
1. Establish that it is churn. Page indexing report, filtered to All submitted pages (your product sitemap must be submitted for this filter to exist). Note the indexed count and check it against last month, because the report will not tell you a URL left the index; it just counts differently. This is why stores need the numbers written down monthly. A falling indexed count on a stable catalogue is churn. A stable count on a growing catalogue is churn with a disguise on.
2. Read where the leavers went. Sample dropped product URLs with URL Inspection. On WooCommerce the destinations are predictable: Crawled, currently not indexed for thinned-out or templated products; Soft 404 for out-of-stock pages that started saying “nothing here” loudly enough for Google to believe them (my soft 404 post covers that status, and the stock version has its own post); Duplicate statuses when variation and filter URLs are in play.
3. Count what Google is crawling instead. This is the WooCommerce-specific step the generic guides skip. In the Page indexing report’s not-indexed reasons, look at what the URLs actually are. On most churning stores I audit, the list is not products at all. It is catalog sorting (?orderby=), attribute filters (?filter_size=, ?attribute_pa_color=), shop pagination, and add-to-cart parameters. Every one of those is a URL WooCommerce or the theme mints for free, and collectively they outnumber the catalogue. Google’s own faceted navigation guidance describes exactly this overcrawling pattern; my faceted navigation post has the WordPress-side fixes.
4. Only then judge the product pages. If the crawl is clean and products are still declining, now it is a content question: imported manufacturer descriptions shared with fifty other stores, variations split across separate URLs saying the same thing, categories one line deep. Fix the template, not one page.
Diagnostic order from my WooCommerce audits. Crawl-pattern guidance from Google's faceted navigation documentation.
The settings I check by name
Because “technical issues” is not a checklist, these are the specific places the problem lives on real stores:
- Attribute filter and sorting widgets in the theme, which link every combination into the crawl path. The fix is robots rules and unlinking, per the faceted navigation guidance above, not noindexing ten thousand URLs one by one.
- SEO plugin toggles. Yoast and Rank Math both have per-type noindex settings, and I have twice found product categories noindexed by a setting flipped during some past redesign. Categories are how products get recrawled; noindexing them starves the catalogue behind them.
- Out-of-stock behaviour. Hiding out-of-stock items removes every internal link to them while the URL stays live, which is the Soft 404 pipeline described in Google’s e-commerce documentation.
- Variation URLs. If variations resolve to their own indexable URLs with identical copy, the duplicates dilute the parent. Google’s product variant guidance expects one canonical parent.
- The description import. If your descriptions arrived in the same CSV the manufacturer gave every other stockist, Google has seen the page before it crawled you. That one has no setting; it is writing work.
The pattern across all five: the catalogue decays for structural reasons while everyone inspects individual products. Crawl budget sounds like an enterprise problem, but a 300-product store minting 30,000 parameter URLs has an enterprise problem in miniature.
If your store’s indexed count is drifting down and you cannot tell whether it is checks 3 or 4, send me the product sitemap URL. Telling churn from a content verdict takes about a day, and it decides whether you need a robots.txt line or a copywriter.
Sources
- E-commerce best practices for Google Search, Google
- Managing crawling of faceted navigation URLs, Google
- Product variant structured data, Google
- Pagination and incremental page loading, Google
- Store patterns are from my own WooCommerce audit work, summarised on the reviews page
