E-commerce

The e-commerce SEO checklist, in the order the checks actually matter

E-commerce SEO fails in three places: crawlable URLs, duplicate and faceted pages, and product markup that contradicts the page. Fix those before touching content. A store with 40,000 crawlable filter combinations has a crawl budget problem no amount of blog posting will fix.

By Anas Bin Masud Updated 3 min read 721 words

Indexation — is it even reachable?

  1. Product and category pages return 200 and are in the XML sitemap
  2. The sitemap is generated from the catalogue, not maintained by hand
  3. HTML contains the product text without JavaScript execution — check with view-source, not DevTools
  4. robots.txt does not block the shop directory, assets or the sitemap itself
  5. Pagination is crawlable with real links, not a JavaScript "load more" button alone
  6. Internal search result pages are noindex — they are infinite and they are not content

Duplication and facets — where crawl budget dies

Faceted navigation is the biggest single source of index bloat in e-commerce. Four filters with five options each generate several hundred URL combinations, most of which are near-identical to each other and none of which anyone searched for.

  • Canonical every filtered view to the clean category URL, unless a facet has genuine search demand
  • Facets you deliberately want indexed get a real, static URL and unique copy — not a query string
  • Sort-order parameters (?sort=price) are never indexable variants
  • One product reachable via three category paths still has exactly one canonical
  • Tracking parameters do not create new indexable URLs

Product markup that matches the page

Product structured data is the highest-yield markup in e-commerce and the easiest to get flagged for. The rule is simple and absolute: the price, currency and availability in your JSON-LD must match what a human sees on the page, at all times.

  • Product with name, image, description, sku and brand
  • Offer with price, priceCurrency, availability and priceValidUntil where relevant
  • AggregateRating ONLY if real reviews are visible on that page — inventing them risks a manual action
  • BreadcrumbList matching the visible breadcrumb trail
  • No Product markup on category pages; use ItemList instead

Out-of-stock and discontinued products

Deleting a product page that has links and ranking history throws away an asset. The right handling depends on whether the product is coming back.

Temporarily out of stock
Keep the page, keep it indexed, set availability to OutOfStock, and offer alternatives on the page.
Permanently discontinued, replacement exists
301 to the replacement product. Not to the category, and definitely not to the home page.
Permanently discontinued, no replacement
Keep the page live with a clear message and links to the category, or 410 it if there is nothing useful to say.
Seasonal
Never delete. The page rebuilds authority every year and you cannot buy that back.
  1. Category pages carry copy that answers the buying question, placed where it helps a human rather than dumped below the fold
  2. Product descriptions are yours, not the manufacturer feed every competitor also published
  3. Every product links up to its category, and categories link across to genuine alternatives
  4. Blog and guide content links into commercial pages with descriptive anchor text
  5. No orphan products — if nothing links to it, it does not exist

Speed, on the pages that convert

Core Web Vitals matter most on category and product pages, because that is where sessions start and end. The usual culprits are unoptimised product imagery, a carousel that ships more JavaScript than the rest of the page combined, and third-party tags whose value nobody has audited since installation.

Questions people ask about this

Should category pages have text on them?
Yes, if it helps a buyer choose. A wall of keyword-padded copy under the fold helps nobody and has not worked for a decade. Two or three genuinely useful paragraphs near the products, answering the question that decides the purchase, does work.
How do I stop Google indexing thousands of filter URLs?
Canonicals to the clean category URL, plus not linking to filter combinations you do not want crawled. Robots.txt disallow prevents crawling but leaves already-indexed URLs stranded, so use it deliberately rather than as a first response.
Is duplicate manufacturer content really a problem?
It is not a penalty — it is a competition problem. Two hundred stores publishing identical text gives Google no reason to prefer yours, so it prefers the one with more authority. Rewriting descriptions for the products that actually sell is the highest-return content work in most stores.

Who wrote this

Anas Bin Masud builds e-commerce sites and does technical SEO for businesses in the UK, Canada and Pakistan — fifteen live client sites, six of them stores taking real payments. The examples in these guides come from those builds and from the audit that rebuilt this site, not from a content brief. More about how I work, or read the case studies.

Keep reading

Want this done on your site instead of read about?

Every guide here describes work I do for clients. Send the brief and you get a reply within one business day — either questions, or a scoping call.

Response
Replies within 1 business day
Hours
Mon–Fri, 09:00–18:00 PKT — overlaps 05:00–14:00 UK, 00:00–09:00 US Eastern
Booking
Booking projects from October 2026
WhatsApp — opens a chat with +92 346 5348466 in a new tab