Seo for large ecommerce sites stops resembling normal SEO somewhere around 10,000 URLs. Page-by-page optimization becomes impossible, crawl budget turns from a theoretical concern into the binding constraint, and the highest-value change you can make is usually a template edit that touches 40,000 pages in one deploy.
The discipline shifts from writing pages to designing systems. You stop asking “how do I optimize this page” and start asking “what rule, applied across a page type, moves the most revenue.”
Work in page types, never in pages
Every large store reduces to five or six templates: homepage, category, subcategory, product, brand, and editorial. Everything you do should be expressed as a change to one of those templates, because that’s the only unit of work that scales.
Audit by type. Sample 50 URLs from each template, score them against the same criteria, and the pattern shows up immediately — product pages missing schema, categories with no intro copy, brand pages with duplicate titles. One template fix then resolves tens of thousands of instances at once.
The corollary is that hand-editing individual pages is almost always a mistake at this scale, with one exception: your top 50 to 100 revenue pages deserve bespoke attention because they carry a disproportionate share of the traffic. Everything below that tier gets template treatment.
Crawl budget is the binding constraint
On a 200-page site, crawl budget is a non-issue. On a 500,000-URL catalog, it decides which of your products Google even knows exist. Google allocates a finite crawl rate per host, and every request spent on a sort-order parameter is a request not spent discovering your new season’s inventory.
Server logs are the only honest source here. Pull a month of Googlebot hits and group by URL pattern and page type. The typical unmanaged result:
- 60–80% of crawl going to filtered, sorted, or parameterized URLs
- Category pages crawled weekly, deep products crawled every four to eight weeks
- A meaningful share of requests hitting redirects, 404s, and pages blocked downstream
- New products taking three or four weeks to be discovered at all
Fixing allocation costs nothing but decisions and it’s usually the highest-leverage change available. Cut the parameter waste, flatten redirect chains to a single hop, remove dead URLs from sitemaps, and the crawl you already have redistributes to pages that matter.
Index bloat and the faceted URL explosion
Faceted navigation is the biggest technical risk at scale and the arithmetic is brutal. Five facets with six values each is roughly 46,000 combinations per category; across 300 categories that’s over 13 million crawlable URLs generated by one feature.
Assign every facet a treatment rather than looking for one global setting:
- Canonicalize filtered views back to the clean category URL where the facet has no independent search demand.
- Block parameter paths in robots.txt for sort orders, view toggles, price sliders, and session parameters that should never be crawled.
- noindex, follow where a page must stay crawlable for link discovery but has no business ranking. Remember these two are mutually exclusive: a URL blocked in robots.txt is never fetched, so its noindex is never read.
- Static URLs only for facets with real search demand — those get a proper title, H1, intro copy, and internal links, and stop being facets at all.
Measure the bloat before and after. A site: count wildly exceeding your real page count, and a large “Crawled — currently not indexed” bucket in Search Console, are the two indicators that tell you how much of your crawl is being wasted.
Duplicate content at industrial scale
Two sources dominate. Manufacturer descriptions pasted across forty retailers make your product pages informationally identical to everyone else’s — Google keeps one and it’s usually the marketplace. And internal templating produces self-duplication when the same 400-word buying guide prints on every paginated page or the same title formula repeats across near-identical categories.
Neither is a penalty. Both cause filtering, which looks identical from the traffic side and requires a different diagnosis. The tell is pages indexed with near-zero impressions on their own product names.
The scale-appropriate fix is tiered. Bespoke copy for the few hundred products carrying real opportunity. Attribute-driven templates for the middle, where the template pulls genuinely different specs, dimensions, and compatibility data so the pages actually differ. User-generated reviews and Q&A for the long tail, accumulating unique text on pages you will never write by hand.
Pagination and depth on very large listings
Google no longer uses rel=”next” and rel=”prev” — that was announced years ago and half the ecommerce advice online hasn’t caught up. Self-canonicalize each paginated page to itself, keep the pages crawlable, and link between them with real anchor tags. Never canonicalize page 5 to page 1; that orphans everything past the first page.
At scale, though, deep pagination is a symptom. A category running to 60 pages will never have its deep pages crawled with any useful frequency, no matter how the markup is set. The answer is subcategorization driven by search demand, which shortens listings and captures volume the parent category can’t reach. Raising products per page from 24 to 48 halves depth cheaply and is usually a good trade on lightweight product cards.
Product lifecycle policy, enforced in code
Large catalogs churn constantly, and most platforms delete discontinued products by default. That converts years of accumulated rankings and links into 404s at a rate nobody tracks. Write the policy once and implement it as platform behavior, not as a manual process:
- Temporarily out of stock: keep live and indexed, availability OutOfStock in schema, show restock timing and related in-stock items. No redirect.
- Discontinued with a successor: 301 to the nearest equivalent product; redirecting to the homepage reads as a soft 404.
- Discontinued, no equivalent, no links, no traffic: 410 Gone, a clean removal for the dead tail.
- Seasonal: permanent URLs, never rebuilt annually.
Keep product schema accurate throughout — availability claims that don’t match reality put your rich results at risk, and review markup must not be self-serving.
Prioritizing and auditing when everything is broken
On a large site, everything is broken somewhere, and the failure mode is trying to fix all of it. Rank the work by page type and revenue exposure: estimated search volume times conversion value times number of affected pages, discounted by implementation cost. Templates that touch the most revenue-adjacent pages go first, and that’s usually category templates, not products.
The tooling requirement is a crawler that returns evidence, not counts. SEO Rocket’s technical audits do an instant quick scan of about 25 pages and deep full-site crawls verified at 900+ pages, surfacing duplicate titles, thin pages, and crawl issues with the actual URLs, titles, and H1 text attached so you can trace them straight back to a template. Keyword research with country-specific indexes decides which categories and products deserve pages, content gap analysis across up to five competing retailers shows what they rank for that you don’t, and the AI writer produces category and product copy that isn’t manufacturer boilerplate. It does not manage product feeds, Merchant Center, or inventory — those stay in your ecommerce platform.
Set realistic timelines with stakeholders. Large-site changes need four to twelve weeks of recrawling before results are readable, sometimes longer, and index counts should fall during cleanup rather than rise. Daily rank movement of two or three positions is noise. Watch crawl distribution in logs and impressions in Search Console as the leading indicators; treat third-party volume and position data as the modeled estimates they are.