E-Commerce SEO: The Technical Foundations That Actually Move the Needle

Content and backlinks are important for e-commerce SEO. But before either of those matter, your store needs to be technically sound — correctly crawlable, properly indexed, and structured in a way that Google understands. Most e-commerce sites have technical SEO problems that quietly suppress rankings regardless of how good the content is.
This guide covers the technical layer. Not keyword research. Not content strategy. The infrastructure decisions that determine whether Google can actually do its job on your store.
Why E-Commerce Sites Have Specific SEO Challenges
E-commerce sites have structural characteristics that create SEO problems most other site types don't face.
Duplicate content from variants and filters. A product with 12 colour variants across 3 sizes can generate 36 URL permutations, all returning near-identical content. Faceted navigation (filter by brand, size, colour, price) can generate thousands of URLs — most of them thin variations of the same content. Google doesn't know which URL to index; crawl budget gets wasted; rankings split across duplicate URLs.
Crawl budget. Google allocates a crawl budget to each site — a rough limit on how many URLs Googlebot will crawl in a given period. On a large catalogue with aggressive faceted navigation, you can easily generate millions of URLs you don't want indexed. This consumes crawl budget that should be spent on your actual product and category pages.
Pagination. Category pages with pagination (/category/shoes?page=2, page=3, etc.) need to be handled correctly — not blocked, but also not treated as independent indexable pages.
Thin category pages. Category pages with only a product grid and no descriptive content are difficult to rank for competitive category keywords. But adding artificial text just for SEO looks terrible to users. The balance requires intentional design.
Structured Data for E-Commerce
Structured data tells Google what your content is, beyond what it can infer from the text. For e-commerce, the relevant schema types are:
Product schema — The most important structured data type for e-commerce. Include: name, description, image, sku, brand, offers (with price, priceCurrency, availability, url). For products with variants, use AggregateOffer if showing a price range, or Offer for each variant.
When implemented correctly, Product schema enables rich results — price and availability shown directly in search results. This meaningfully improves click-through rate on product pages.
Review/Rating schema — aggregateRating on Product schema shows star ratings in search results. Only use this if you have real reviews — Google can penalise misuse. If you have a review system, implement it. The CTR lift is significant.
BreadcrumbList schema — Marks up your breadcrumb navigation. Helps Google understand your site hierarchy and often shows breadcrumbs in search results instead of the full URL. Implement on every product and category page.
FAQPage schema — Use on pages with genuine Q&A content — product FAQs, category page FAQs. Can generate FAQ rich results that significantly expand your search result footprint.
In a Next.js app, structured data is added as a JSON-LD script tag in the page head. Server-side rendering means it's available to Googlebot immediately — no JavaScript execution required.
Core Web Vitals for E-Commerce
Core Web Vitals are Google's page experience metrics and a confirmed ranking signal. For e-commerce specifically, they also directly affect conversion — there's no benefit to ranking well if the page experience drives users away.
LCP (Largest Contentful Paint) — target: under 2.5 seconds. On product pages, LCP is almost always the hero product image. Key optimisations:
- Use next/image with explicit width and height to prevent layout shifts and enable automatic WebP conversion and srcset
- Add priority prop to the above-the-fold product image — this triggers preloading
- Ensure images are served from a CDN (Cloudflare R2 or similar) with proper cache headers
- Don't lazy load the hero image
On category pages, LCP is typically the first product card image in the grid. Same principles apply to the above-the-fold product images.
CLS (Cumulative Layout Shift) — target: under 0.1. Layout shifts happen when elements move after the initial render. Common causes on e-commerce:
- Images without explicit dimensions (always set width/height on images)
- Font swaps — use font-display: optional or font-display: swap with font preloading
- Dynamically injected content above the fold (cart count badge loading in, promo banners appearing after page load)
- Late-loading skeleton loaders that shift content when they resolve
INP (Interaction to Next Paint) — target: under 200ms. Measures responsiveness to user interactions. Filter selections, quantity updates, add-to-cart — these all need to respond visually within 200ms. Heavy client-side JavaScript and unoptimised event handlers are the typical culprits. Next.js server components reduce client-side JS bundle size substantially, which helps.
Canonical Tags for Faceted Navigation
Canonical tags tell Google which URL is the "master" version of a piece of content. For e-commerce faceted navigation, the correct strategy depends on whether filtered pages have genuine ranking value.
For pure filter combinations (e.g., /shoes?color=red&size=10) with no standalone search volume: set canonical to the base category page (/shoes). This consolidates link equity and prevents crawl waste.
For combinations that have real search volume (e.g., /trainers/mens or /laptops/gaming) that you want to rank: these should be proper pages with their own URLs, metadata, and canonical pointing to themselves. Don't canonicalise genuine landing pages away.
Implementation in Next.js: Use generateMetadata() to set canonical URLs programmatically per page. For parameterised URLs, canonicalise to the clean base URL in the metadata export.
Sitemap Strategy for Large Catalogues
Your XML sitemap tells Google which URLs you consider important. For e-commerce:
Include: Product pages, category pages, brand pages, landing pages. Ensure all included URLs return 200 status codes and are indexable (not noindex).
Exclude: Cart, checkout, account pages, filtered/faceted navigation URLs, paginated pages beyond page 1 (if they don't merit independent indexing), out-of-stock product pages (judgment call — if the product will return, keep it; if it's permanently gone, remove or redirect).
Sitemap index: For catalogues over ~10,000 URLs, use a sitemap index file pointing to multiple sitemaps split by content type (products, categories, content). This makes it easier to identify crawl issues by type.
Next.js App Router supports dynamic sitemap.ts files that generate XML sitemaps programmatically from your database. This is far better than a static sitemap that goes stale — your sitemap updates automatically when products are added or removed.
URL Structure Decisions
URL structure is an early decision that's expensive to change later. Get it right upfront.
Use descriptive, keyword-containing slugs. /products/mens-running-shoes-nike-air-max is better than /products/SKU-12345. Product name slugs are standard and correct.
Keep URLs as short as is meaningful. /shoes/mens-trainers/nike-air-max-270 (three levels) is fine. Four or more levels starts to look like a crawl path problem to Google.
Avoid redundant parameters in indexed URLs. Session IDs, tracking parameters, sort order parameters — strip these from canonical URLs and use canonical tags if parameters end up in URLs.
Decide on trailing slashes and be consistent. /category/shoes/ and /category/shoes are different URLs. Pick one convention and canonicalise the other.
Don't change URL structure after launch without setting up 301 redirects for every changed URL and updating your sitemap. URL changes without redirects are one of the most reliable ways to destroy existing rankings.
Technical SEO is built into our e-commerce development process, not retrofitted. If you're also weighing the performance advantages of a headless architecture for SEO, that's a related decision worth exploring. For cost context on building a technically sound store, see how much an e-commerce store costs to build. For the full picture of what goes into a custom e-commerce build, see our complete custom e-commerce development guide.
See what's included in our e-commerce services or view our packages.
Related Posts

Custom E-Commerce Development: The Complete Guide
Everything you need to know about building a custom e-commerce store — Shopify vs custom, costs, architecture, payments, and what separates a good store from a great one.

Headless E-Commerce: What It Is, How It Works, and Whether You Need It
Headless e-commerce decouples your storefront from your backend. Here's what that means, what it costs, and when it's worth the complexity.