Ecommerce SEO audit checklist
Ecommerce SEO audit checklist for online stores: faceted navigation, product schema, variants, out-of-stock pages, site search, Core Web Vitals and AI.
By Seouch TeamUpdated checklist
Take a store with one category page and five filters (colour, size, brand, price band and material), each offering six values. If shoppers can pick one value per filter or leave it unset, that single category can produce 7 × 7 × 7 × 7 × 7 = 16,807 URLs before anyone adds a sort order or a page number. Multiply by every category and it becomes clear why crawl control comes first in any ecommerce SEO audit.
This ecommerce SEO audit checklist is ordered by how much damage each area usually does on a large catalogue. On a small store, start with product pages and structured data instead.
Faceted navigation and crawl control
Google says faceted navigation can create infinite URL spaces that waste crawling and slow the discovery of new pages, and recommends blocking filtered URLs in robots.txt when you do not need them indexed (managing faceted navigation). It describes canonical tags as less effective for this than robots.txt or URL fragments.
- List the filter combinations that match real searches (for example, brand plus category) and decide which deserve an indexable page.
- Block the rest with robots.txt patterns for filter parameters, or move filters into URL fragments.
- If you use
rel="nofollow"on filter links, apply it to every link pointing at those URLs, not some. - For indexable filter pages, use the standard
&separator and keep the order of filters consistent. - Return a 404 for filter combinations with no products, rather than an empty 200 page.
- Keep sort orders (
?sort=price), session IDs and tracking parameters out of internal links.
Category pages and pagination
Google says each page in a paginated series should link to the next with a normal <a href> link, should have its own canonical URL rather than pointing to page one, and that it no longer uses rel="next" and rel="prev".
- Page 2 and beyond carry a self-referencing canonical tag.
- “Load more” buttons and infinite scroll also expose crawlable links to the next page.
- Each category has a short, unique introduction above the grid rather than a block of text pushed below it.
- Category titles follow a pattern with the category name first, not the store name.
Product pages and variants
Google says each variant should be reachable at its own URL, and that markup belongs in the initial HTML because JavaScript-generated product markup can make Shopping crawls less frequent and less reliable (product variant structured data).
- Each product has one canonical URL, even when it appears in several categories.
- Variants selected with a parameter (
?color=green) canonicalise to the URL without the parameter, unless each variant is meant to rank on its own. - Every variant URL preselects the right image, price and availability.
- Titles combine product name, the main attribute people search for and the brand.
- Manufacturer descriptions are rewritten for your best sellers, since every retailer stocking the product can publish the same text.
- Product images have descriptive alt text and explicit width and height.
- Reviews are rendered in the HTML, not only inside a third-party widget that loads later.
Product structured data
- Every product template outputs
ProductorProductGroupJSON-LD with name, image, price, currency, availability and an identifier such as SKU or GTIN. - Only one product block appears per page. Themes and review apps often add a second, with conflicting prices.
- Price and availability in the markup match the visible page and your Merchant Center feed.
- Search Console’s Merchant listings and Product snippets reports show no errors on the templates you rely on.
- Test one URL per template in the schema markup validator. The structured data entry explains the vocabulary.
Out-of-stock and discontinued products
| Situation | Recommended handling |
|---|---|
| Temporarily out of stock | Keep the page live with a 200, mark availability as OutOfStock in markup and feed, and show a restock date or alternatives |
| Seasonal product | Keep the same URL from year to year so it keeps its links and history |
| Discontinued, with a direct replacement | 301 redirect to the replacement |
| Discontinued, no replacement | Return a 404 or 410, or keep the page as an information page if it still earns links and traffic |
Google says redirecting many old URLs to one unrelated page, such as the home page, can confuse users and may be treated as a soft 404 (site move guidance). Check that repeated handle or URL changes have not left redirect chains behind.
Duplicate URLs
- http and https, www and non-www, and trailing-slash variants all redirect in a single hop to one version.
- Products reachable under category paths (
/shoes/runnerand/sale/runner) point to one canonical product URL. - Uppercase and lowercase URLs resolve to one version.
- Spot-check suspicious pages with the canonical checker.
Internal site search
- Search results pages are kept out of the index with noindex or a robots.txt rule. Our view: they are an infinite space of thin pages and rarely the best landing page.
- Your site search logs are reviewed for frequent queries with no matching category; those are candidates for new, properly built category pages.
Core Web Vitals on product pages
Product pages carry the heaviest scripts on most stores: galleries, review widgets, recommendations and chat. Check the product template in Search Console’s Core Web Vitals report, or test a URL with the Core Web Vitals checker.
- The Largest Contentful Paint element, usually the main product image, is not lazy-loaded, is sized for the layout and uses a modern format.
- Third-party scripts for reviews, chat and personalisation load after the main content.
- Space is reserved for image galleries, rating stars and promotional banners so nothing shifts.
AI readiness for product pages
Google says there are no special requirements or markup to appear in AI Overviews or AI Mode; its best practices include allowing crawling, keeping important content in text, making structured data match the visible page and keeping Merchant Center information up to date (AI features and your website). OpenAI’s help documentation says ChatGPT considers structured metadata such as price and description from first-party and third-party providers when choosing which products to show (shopping with ChatGPT search).
- robots.txt and your CDN allow OAI-SearchBot, Claude-SearchBot and PerplexityBot on product and category paths. The AI crawlers guide explains which bot does what.
- Key facts (dimensions, materials, compatibility, care instructions) are in text, not only in images or PDFs.
- Specifications are in a table rather than a paragraph.
- Price and availability agree across the page, structured data and every feed you send.
- The AI visibility checker confirms the product template is readable without JavaScript.
What to do next
- On a large catalogue, fix faceted navigation and duplicate URLs first; nothing else gets crawled properly until you do.
- Pick one product URL and one category URL and run each through the free audit to find template-level problems.
- Crawl a sample of the store with the website audit tool to see how far each problem spreads.
- Work through the technical SEO checklist for the site-wide items this list assumes. If you run on Shopify, read the Shopify SEO audit for the platform’s fixed constraints.
Frequently asked questions
- Should filtered category pages be indexed?
- Only the combinations people actually search for, such as a brand within a category, and only if they have enough products to be useful. Give those a clean URL and unique copy, and keep every other combination out of the crawl.
- Should I delete out-of-stock product pages?
- Not if the product is coming back. Keep the page live, return a 200 and mark it out of stock. Remove or redirect only when a product is permanently discontinued, and redirect only when a genuine replacement exists.
- Do product reviews need to be in structured data?
- Review and rating markup can make a product eligible for review stars, but only if the reviews are visible on the page. Markup for reviews that are hidden or loaded from another page is a policy risk and should be removed.
- How often should an online store run an SEO audit?
- Run a light automated check monthly and a full audit before peak season and after any platform, theme or navigation change. Catalogue imports and new filters are the usual sources of sudden duplicate URL growth.