Why e-commerce technical SEO is more complex
Challenge 1: Faceted navigation and URL parameter explosion
A product catalog with 500 products and filter options for size, colour, price, and brand can generate millions of URL combinations: /sarees?colour=red&size=medium&price=under-2000&brand=abc. Most of these pages are near-duplicates with minimal unique content and they exhaust crawl budget, create duplicate content, and dilute the authority of your core category pages.
Solution Option A: Block parameters in robots.txt ` Disallow: /?colour= Disallow: /?size= Disallow: /*?sort= ` This prevents Googlebot from crawling parameterised URLs entirely. Pros: simple. Cons: some filter combinations may have genuine search demand.
Solution Option B: Canonical tags on filtered pages Every filtered page (/sarees?colour=red) has a canonical tag pointing to the unfiltered category page (/sarees). Google indexes only the canonical; the filtered versions remain accessible to users. Pros: users can still use filters; SEO value concentrates on the category page.
Solution Option C: Noindex on filter combinations Less used but effective for smaller catalogs: add to parameterised URLs. Google does not index the filtered pages but follows links from them to product pages.
The right solution depends on your catalog size and whether any filter combinations have meaningful search volume. For most Indian e-commerce brands, Option B (canonical tags) is the best balance.
Ready to take the next step?
Let Perceptra scope the right approach for your business.
Book a Free Strategy Session ?Challenge 2: Pagination thin content
A category page that paginates to /category/sarees/page/2/ through /category/sarees/page/47/ creates 47 pages with nearly identical navigation and only different product listings. Most of these pages have low authority and thin content.
Solution: Use canonical tags pointing to page 1 for paginated pages, or implement rel="next" / rel="prev" link elements for paginated series. For large catalogs, consider an "infinite scroll" or "load more" approach that does not create multiple indexable page URLs.
Challenge 3: Out-of-stock products
When a product goes out of stock, the product page may return a 200 status but show "Out of Stock" or be deleted, creating a 404 error. Neither is ideal.
Best practice for temporary out-of-stock: Keep the page live with the product information and an "Out of Stock" status. Add schema indicating the availability. Use the opportunity to suggest similar products. The page retains its authority and can rank for product name searches.
Best practice for permanently discontinued products: 301 redirect to the closest available product or category page. Do not leave as a 404 a 404 loses all link equity the page had accumulated.
Challenge 4: Product schema at scale
Every product page should have Product schema with name, image, description, price, availability, and aggregate rating (if you have reviews). On a 5,000-SKU catalog, this cannot be done manually.
Solution: Generate Product schema dynamically from your product database. In a CMS like Shopify, plugins (JSON-LD for SEO, Schema App) automate this. In custom-built stores, the product schema template is generated server-side from the product attributes already in your database. The template needs to be built once and applied to all products automatically.
Frequently asked questions
Does having out-of-stock products hurt our overall site SEO? A small number of out-of-stock pages with the correct status markup does not significantly hurt overall site SEO. A catalog where 40% of pages are out-of-stock 404 errors is a meaningful crawl budget and authority problem.
Should product images be in the sitemap? Yes Google Images is a significant traffic source for e-commerce. Use the image sitemap extension: within each product URL's sitemap entry.
How do we handle seasonal products that appear and disappear? 301 redirect seasonal product URLs to the category page when the season ends. When the product returns, redirect back to the original URL (or reactivate the same URL). This preserves any authority the URL accumulated.