The 25-point WooCommerce SEO checklist
For WooCommerce stores with hundreds or thousands of products. Every check can be run with Search Console, the WooCommerce admin or Google's Rich Results Test. 6 are marked fix first: they decide whether your products get indexed at all.
Where this comes from. Both SearchPrex ecommerce case studies are WooCommerce stores, and these checks are in the order that work was done: SMK Store (a 35,000-product catalogue) and Michigan Outdoor Sports (recovered after a de-indexing event). Tick what is true today; progress is saved in this browser. Checking titles? Use the SERP simulator, and for the platform-independent checks, the technical SEO checklist. Want the full method with screenshots? It is on the WooCommerce SEO page.
Indexing and crawl
0/5Whether Google can find, crawl and keep your product pages at all. On a large catalogue this is where most lost revenue hides.
You know how many product pages are indexed — and why the rest are not
Fix firstSearch Console → Indexing → Pages. Look at “Crawled – currently not indexed” and “Discovered – currently not indexed”, then use URL Inspection on a sample of product URLs. A large gap between published products and indexed products is the first thing to fix.
One XML sitemap source, submitted in Search Console
WordPress has its own sitemap (wp-sitemap.xml) and SEO plugins such as Yoast or Rank Math replace it with theirs. Make sure only one is live, it is the one submitted in Search Console, and its product sitemap lists only published, indexable products.
Filter, sort and add-to-cart URLs are not being crawled and indexed
Fix firstWooCommerce creates URL parameters such as ?orderby=, ?min_price=, ?filter_colour= and ?add-to-cart=. Search Console's Pages report and a site: search show whether they are indexed. Canonical them to the clean category URL and keep crawlers out of ?add-to-cart= links.
Cart, checkout and account pages are noindex
WooCommerce marks these pages noindex by default. View the page source of /cart/, /checkout/ and /my-account/ and confirm a theme or plugin has not removed the robots noindex tag.
Out-of-stock and discontinued products have a plan
Products coming back keep their page, with availability shown. Products gone for good are redirected (301) to the closest replacement or their category. The “Hide out of stock items” setting only hides them from listings — the URLs still exist.
Product pages
0/5The page Google decides to index or skip, and the page a buyer decides on.
Product descriptions are your own, not the manufacturer's copy
Fix firstPaste a sentence from a product description into Google in quotes. If dozens of other stores show the same text, Google has little reason to index yours. Rewrite the products that matter most first — brand by brand works well on a large catalogue.
Product titles name what people search: brand, model and the key attribute
“Benchmade Bugout 535 Folding Knife” beats “Bugout”. Check how the SEO title looks in results with a SERP preview — the end is cut if it is too wide.
Variations live on one product page
Colours and sizes belong as variations of one variable product, not as separate near-identical products — unless each variation is searched for on its own and has something different to say.
Images have descriptive file names and alt text, and are compressed
“benchmade-bugout-535-grey.jpg”, not “IMG_2231.jpg”. WordPress supports WebP and AVIF uploads; WooCommerce generates its own thumbnail sizes, so upload one sharp, compressed original.
Short and long descriptions both do a job
The short description sits next to the price: key specs and why to buy. The long description answers the questions buyers ask — sizing, materials, care, compatibility.
Structured data
0/4What makes a product result show price, availability and reviews instead of a plain blue link.
Product structured data is valid, with price, currency and availability
Fix firstWooCommerce outputs Product JSON-LD by default, and SEO plugins extend it. Run a product URL through Google's Rich Results Test and fix every error; check Search Console's product snippet and merchant listing reports.
Review data comes only from real customer reviews
WooCommerce includes product ratings in its structured data. Only genuine reviews left on your store should feed it — imported or invented reviews break Google's policies.
Shipping and returns information is given to Google
Through Merchant Center or through shipping and return policy structured data, so product results can show delivery and return details.
Breadcrumbs are on product and category pages, with BreadcrumbList markup
WooCommerce and most SEO plugins can output both. Breadcrumbs help buyers move up to the category and help Google understand the catalogue structure.
Categories and structure
0/4Category pages often rank for the broad searches — “folding knives”, “fixed blade knives” — that product pages cannot.
Main category pages have their own copy, not just a product grid
A short introduction above the grid and buying advice below it, written for that category. A category that is only a grid looks the same as every competitor's.
The product permalink base is settled — and changed only with redirects
Fix firstSettings → Permalinks → Product permalinks. Any structure can work; changing it on a live store changes every product URL, so it needs a full set of 301 redirects planned before you switch.
Paginated category pages keep their own canonical
Page 2 of a category should canonical to itself, not to page 1 — otherwise Google may not crawl through to the products on later pages.
Thin tag and attribute archives are noindexed or removed
Product tags and attribute archives with a handful of products create many thin pages. Keep the ones you curate and noindex the rest.
Speed and technical health
0/4WooCommerce sites slow down as plugins pile up. Speed decides whether a phone visitor stays long enough to buy.
Core Web Vitals pass for product and category templates
Fix firstSearch Console → Core Web Vitals. Look at groups of product and category URLs, not just the homepage. Fix the template once and every page on it improves.
Unused plugins are removed and scripts load only where needed
Deactivate plugins nobody uses. Check whether cart, slider or review scripts load on pages that do not need them, such as blog posts.
Page caching is on, with cart and checkout excluded
Hosting or plugin page caching speeds up category and product pages; cart, checkout and account pages must stay uncached so each customer sees their own basket.
The site is on HTTPS with one version of every URL
http, https, www and non-www should all redirect to one version, and trailing-slash variants should not both resolve.
Monitoring
0/3A large catalogue drifts. These checks catch it before revenue does.
Indexed products are compared with published products every month
Note the number of published products in WooCommerce and indexed product URLs in Search Console. A widening gap is an early warning.
404s from deleted products are redirected
Search Console → Pages → Not found (404). Redirect removed products that still get links or traffic to the closest replacement or category.
Plugin, theme and SEO settings changes are tested on staging first
An update to the theme or SEO plugin can change canonicals, noindex tags or structured data site-wide. Check a product, a category and the sitemap after every update.
Ran the checklist and found more than you can fix?
This is the audit I run on a WooCommerce store before any work starts, written out so you can do it yourself. If you would rather I checked your store's indexing, product pages and structured data against the stores above you, that is the offer below — free, within 24 hours.
Free · No obligation · Reply within 24 hours · Market Exclusivity (One client per city)
WooCommerce, WordPress and Google change their behaviour from time to time. Where a check describes a default setting or a Google rule, confirm it against the current documentation.