A five-page brochure site has five ways to fail. A store with 4,000 products, six filter dimensions and three languages has tens of thousands. Ecommerce SEO is not regular SEO with more pages — it is a different problem, because the pages are generated by templates and the errors are generated by combinatorics.
The stores we audit share a predictable pattern: Google is spending most of its crawl budget on filtered URLs nobody searches for, category pages have no content above the product grid, discontinued products 404 in bulk, and the product detail template has an LCP of four seconds on mobile because of an unoptimised gallery.
Ready to find SEO issues on any website?
Try WebSEO Auditor free — run your first audit in seconds.
Try it freeThis guide walks through the eight areas of an ecommerce SEO audit, in the order that finds the most revenue per hour spent.
Audit Templates, Not Pages
The single biggest efficiency gain in ecommerce auditing: stop auditing pages, start auditing templates. A store typically has six to ten templates — home, category, subcategory, product detail, search results, brand page, blog post, checkout funnel, account, and a handful of static pages.
Every product page shares the same template. Fix the template and you fix 4,000 pages. Audit three representative products instead of 4,000 and you finish the same day.
Select representative samples: a bestseller with many reviews, a product with variants (size and colour), a product currently out of stock, a deep category, a category with fewer than five products, and one filtered URL. Those six URLs will surface roughly 80% of everything wrong with the store.
1. Crawl Budget and Index Bloat
Start in Google Search Console under Pages. Compare the number of indexed pages with the number of products and categories you actually sell. If the store has 4,000 products and 12,000 indexed URLs, the extra 8,000 are almost always filter combinations, session parameters, sort orders and pagination.
Then check "Crawled — currently not indexed" and "Discovered — currently not indexed". High counts here mean Googlebot is spending its time on URLs it has judged worthless. Every crawl spent on ?color=red&size=m&sort=price_asc is a crawl not spent on your new product range.
The diagnosis is simple: crawl the site with a tool that respects parameters, group URLs by parameter pattern, and count. Any parameter pattern with hundreds of crawlable URLs and no search demand is a candidate for blocking.
2. Faceted Navigation — The Decision Table
Faceted navigation is where most ecommerce SEO is won or lost. The rule is not "block everything" — some facets have genuine search demand ("black running shoes size 44") and deserve indexable landing pages. The rule is to decide deliberately, facet by facet.
| Facet type | Search demand | Treatment |
|---|---|---|
| Category + brand | Usually high | Indexable, static URL, unique intro text |
| Category + colour or size | Sometimes | Indexable only where volume justifies it |
| Price ranges | Rare | Canonical to parent, or robots-blocked |
| Sort order | None | Block in robots.txt, never linked as crawlable |
| Multi-facet combinations | None | Block — this is where combinatorial bloat starts |
| Session or tracking parameters | None | Strip server-side, canonical to clean URL |
Validate keyword demand before promoting a facet to indexable. If "waterproof hiking boots" has real monthly volume, that filtered view deserves a clean static URL, a unique H1 and 150 words of intro copy. If it does not, it should not be crawlable at all.
3. Category Pages — The Most Underused Asset
Category pages are the highest-intent commercial pages in a store, and in most audits they are also the emptiest. A grid of thumbnails and a one-line H1 gives Google nothing to rank.
What a strong category page contains:
- A descriptive H1 matching real search language, not internal merchandising terms.
- 100–300 words of genuinely useful intro copy above or beside the grid — buying guidance, not keyword filler.
- Internal links to relevant subcategories and to the two or three most relevant guide articles.
- FAQ content answering the questions buyers actually ask about the category, marked up with FAQPage schema.
- A clear pagination strategy — self-referencing canonicals on paginated pages, never canonicalising page 2 to page 1.
Longer descriptions dumped below the footer are ignored by users and increasingly discounted by search engines. Put the useful text where a buyer would actually read it.
4. Product Pages and Structured Data
Product markup is now the price of entry for rich results and for AI shopping surfaces. The minimum viable Product schema in 2026 includes name, image, description, sku, brand, an offers object with price, priceCurrency and availability, and — where genuine — aggregateRating and review.
Two additions matter more than they used to: shipping details and return policy in the Offer object. Search engines surface both directly in results, and stores that omit them lose visible comparison space to competitors that do not.
Common failures we find: prices in markup that drift from displayed prices after a promotion, availability hardcoded to InStock across the whole catalogue, review markup on pages with no visible reviews (a policy violation that risks manual action), and variant pages each claiming to be the canonical product.
For the wider structured data picture, see our guide to schema markup auditing.
5. Variants and Duplicate Content
A shirt in five colours and six sizes can generate 30 near-identical URLs. Three viable strategies exist, and the wrong one is picking none of them:
- Single canonical product page with variant selection handled client-side. Simplest, safest, best for most stores.
- Indexable variants where variants have distinct search demand — colour-specific pages for fashion, for instance — each with unique copy and images.
- Canonicalised variants: variant URLs exist and are linked, but canonical to the parent product.
Whatever you choose, apply it consistently. Mixed strategies within one catalogue are the most common source of duplicate-content dilution in ecommerce.
6. Out-of-Stock and End-of-Life Products
This is where stores silently bleed authority. A product that ranks well and then 404s loses every link and every ranking it accumulated. Use a decision rule:
| Situation | Correct handling |
|---|---|
| Temporarily out of stock | Keep page live, availability: OutOfStock, show restock date and alternatives |
| Permanently discontinued, direct successor exists | 301 redirect to the successor product |
| Discontinued, no successor, has backlinks | Keep page live with alternatives, or 301 to the category |
| Discontinued, no traffic, no links | 410 Gone and remove from sitemap |
| Seasonal product returning next year | Always keep the URL — never delete and recreate |
Never redirect every discontinued product to the homepage. Search engines treat mass homepage redirects as soft 404s and the equity evaporates anyway.
7. Speed on the Templates That Sell
Core Web Vitals in ecommerce are template problems. Measure the product detail page and the category page separately — a fast homepage tells you nothing about the pages that convert.
The recurring culprits: an image gallery that loads all eight photos eagerly instead of lazy-loading everything below the first, review widgets and chat scripts blocking the main thread, no fetchpriority="high" on the main product image, and a mobile grid that reflows as prices load asynchronously and destroys CLS.
Image weight is usually the single biggest win — the mechanics are covered in image SEO and LCP optimisation.
8. Internal Linking Across the Catalogue
Ecommerce internal linking has one job: keep every commercially relevant product within three clicks of the homepage. Deep pagination buries products at depth 8 where they are effectively invisible.
Fixes that work: related-product blocks based on genuine relevance rather than random selection, category hub pages linking to their top products, buying guides in the blog linking directly to category and product pages, and breadcrumb navigation with BreadcrumbList markup on every product.
The full method is in the internal linking audit guide.
Platform-Specific Traps
| Platform | Recurring issue |
|---|---|
| Shopify | Duplicate product URLs under /collections/*/products/* — ensure canonicals point to /products/* |
| WooCommerce | Tag and attribute archives indexed by default, generating thin duplicate pages |
| Magento | Layered navigation producing crawlable parameter explosions out of the box |
| Headless setups | Client-side rendered product data invisible to crawlers without SSR or prerendering |
Prioritise by Revenue, Not by Issue Count
Export your issue list, then join it to revenue data by URL. A thin category page that generates 30% of store revenue outranks 400 filtered URLs in priority every time. Ecommerce audits produce long lists; the only defensible ordering is expected revenue impact per hour of work.
The 15-Point Ecommerce Audit Checklist
- Compare indexed URL count against real product and category count.
- Group crawlable URLs by parameter pattern and quantify bloat.
- Decide index or block for every facet type.
- Confirm sort and session parameters are not crawlable.
- Check every top category has an H1 and useful intro copy.
- Verify pagination uses self-referencing canonicals.
- Validate Product schema on three sample products.
- Confirm price and availability in markup match the visible page.
- Verify shipping and return details are present in the Offer object.
- Confirm a single consistent variant strategy across the catalogue.
- Audit out-of-stock and discontinued product handling.
- Measure Core Web Vitals separately for product and category templates.
- Check click depth of top-selling products (target: three or fewer).
- Verify breadcrumbs and BreadcrumbList markup on product pages.
- Confirm the XML sitemap contains only indexable, in-stock, canonical URLs.
Manufacturer Descriptions and Thin Product Content
Thousands of stores sell the same products using the same supplier-provided description. From a search engine's perspective those pages are interchangeable, and the one that ranks is rarely the smallest retailer.
You do not need to rewrite 4,000 products. Rewrite the ones that matter: take your top 100 products by revenue and add 100–200 words of genuinely original content each — who the product suits, what it does not do well, sizing or compatibility notes, and answers to the questions your support team actually receives. That is usually two weeks of work covering the majority of commercial traffic.
For the long tail, structure beats prose. A consistent specification table, clear variant labelling and accurate categorisation give search engines something unique to index even when the description is shared.
Customer reviews are the other underused asset: they add unique text at zero writing cost, they answer real purchase questions, and they legitimise your review markup. Just ensure reviews render in the HTML rather than loading exclusively from a third-party widget after page load, or search engines never see them.
International and Multi-Language Stores
Cross-border stores add a whole category of audit findings that single-market retailers never encounter.
- hreflang must be reciprocal. If the Finnish page points to the Swedish one, the Swedish page must point back. One-directional annotations are ignored, and partial implementations are worse than none.
- Never redirect by IP address. Automatic geo-redirects prevent crawling of the versions Googlebot cannot reach from its crawl location. Offer a banner or a switcher instead.
- Same language, different market needs region codes, not just language codes — sv-se and sv-fi, de-de and de-at.
- Currency and shipping differences belong in the Offer markup per market, not only in the visible template.
- Out-of-stock status differs per market. A product available in one country and discontinued in another needs per-market availability handling, otherwise your markup contradicts the page.
Sitemaps and Indexation Control at Catalogue Scale
A single 45,000-URL sitemap is technically valid and practically useless. Split sitemaps by type — products, categories, brands, content — and reference them from a sitemap index. When indexation drops, segmented sitemaps tell you immediately which template is affected, which turns a vague problem into a specific one.
Three hygiene rules apply to every sitemap in a store:
- Only canonical, indexable, live URLs. No redirects, no 404s, no noindexed pages, no filtered variants.
- Accurate lastmod values. Setting every entry to today's date on every rebuild is a signal search engines learn to distrust.
- Automatic removal of discontinued products, so the sitemap reflects the catalogue rather than its history.
Track indexation rate per sitemap monthly — indexed URLs divided by submitted URLs. A healthy store sits above 80%. Anything below 50% for the product sitemap means the crawler is finding the catalogue but rejecting large parts of it, which is a content-quality or duplication problem rather than a technical one.
Start With the Templates That Make Money
Audit your product detail template and your top five category pages first. Those two template families carry the overwhelming majority of commercial search traffic in almost every store.
Run a free audit with WebSEO Auditor to check speed, structured data and indexability across your key store templates in under a minute.