E-commerce SEO starts with a problem most business websites never face. A store with a few hundred products can have tens of thousands of URLs, because every filter, sort order and page number can create a new address. When search engines can’t tell which of them matter, your categories and products compete with thousands of thin copies of themselves.
So store SEO is mostly architecture: keywords and product copy pay off only once the structure tells Google which page answers which search. For how the same pages should work for shoppers, see e-commerce website design.
The short answer
E-commerce SEO is making sure every search worth winning has one obvious page in your store to rank, and that filters, sort orders and duplicates stay out of its way. In practice:
- Categories target broad searches, products target specific ones. A filter page is indexed only when people search for that combination.
- Sort orders, most filter combinations and internal search stay out of the index.
- Each product has one canonical URL, your own description and a plan for when it sells out.
- Product structured data and a Merchant Center feed describe price and availability accurately.
- Each language gets its own URLs, and every old URL gets a redirect when the store moves.
Decide which page answers which search
Map each search you want to win to one type of page: the broader the search, the higher up the store that page sits.
| Search type | Example | Page that should rank |
|---|---|---|
| Broad category | “hiking boots” | Category page |
| Category plus a qualifier | “waterproof hiking boots” | Subcategory or indexable filter page |
| Specific product | “[brand] [model] boot” | Product page |
| Product plus variant | “[model] wide fit” | Product page, variant selectable |
| Research | “how to choose hiking boots” | Buying guide linking to categories |
This is ordinary keyword research and search intent work, with a store-specific twist: name categories in the words shoppers search for, not the ones on supplier invoices.
Category pages carry the broad searches
Categories get the highest-demand searches and links from the navigation, so they’re usually a store’s strongest pages. Good category page SEO is unglamorous:
- A unique title and H1 in the shopper’s words (“Waterproof hiking boots”, not “Footwear › Outdoor › WP”)
- A short introduction above the grid, and useful buying advice below it
- Products listed as ordinary links in the HTML, not only loaded after a click or scroll
- Links to subcategories and buying guides, plus breadcrumbs with BreadcrumbList structured data
Product pages carry the specific ones
Product pages win searches that include a brand, model, part number or precise attribute. Product page SEO is about precision: a title with brand, model and defining attribute, your own description, specifications as text, and breadcrumbs back to the category. For the shopper-facing side, see e-commerce product page design.
Check it yourself. In Search Console’s Performance report, filter by a main category search and open the Pages tab. If a product, a filtered URL or two categories share the impressions, your pages are competing.
Faceted navigation SEO: filters, sorting and pagination
Filters are where store SEO usually breaks. Five filters with ten values each allow more than 160,000 combinations before sort orders and page numbers, each a slice of the same products. Crawlers waste time on them, and Google may rank a filtered URL instead of the category.
Decide which filter pages deserve indexing
Index a filter combination only when all three are true:
- People search for it. “Waterproof hiking boots” has demand; “grey hiking boots, size 43, under 150” doesn’t.
- It returns enough products to be useful, this season and next.
- It can stand as a page, with its own title, H1, copy, static URL and a link from the category.
That’s usually a single filter on a category: a type, a key feature, sometimes a brand. Sort orders and “in stock only” never qualify; price ranges rarely do.
| URL type | Example | Treatment |
|---|---|---|
| Category | /hiking-boots/ |
Indexable, self-canonical, in the XML sitemap |
| Filter with search demand | /hiking-boots/waterproof/ |
Treated as a subcategory |
| Other filters and sort orders | ?colour=grey&sort=price |
Kept out of the crawl, or canonicalised to the category |
| Pagination | ?page=2 |
Indexable, self-canonical |
| Internal search results | /search?q=boots |
Blocked in robots.txt |
Follow Google’s faceted navigation guidance
Google’s faceted navigation guidance, in three points:
- If filtered URLs don’t need to appear in search, stop them being crawled: disallow them in robots.txt, or hold filter state in a URL fragment (
#colour=grey), which Google Search generally doesn’t crawl or index. - If some do need crawling, separate parameters with the standard
&. If filters sit in the URL path, keep them in one fixed order with no duplicates, so each combination has one URL. Return a 404 for combinations with no results. - Canonical tags and nofollow are weaker tools. A canonical may reduce crawling of filter URLs over time, and nofollow only helps if every link to that URL carries it.
One trap: Google can’t fetch a URL blocked in robots.txt, so it never sees that page’s canonical or noindex tag. Pick one approach per URL type. The wider basics are in our technical SEO checklist.
Pagination and “Load more”
Google’s e-commerce pagination guidance is clear: give each page of results its own URL (?page=2), link pages with normal <a href> links, and give each page its own canonical rather than pointing them all at page one. Google no longer uses rel="next" and rel="prev".
“Load more” and infinite scroll are fine for shoppers, but Google’s crawlers don’t click buttons and generally don’t trigger other user actions that load more products, so build paginated URLs underneath. And think twice before noindexing page two onwards: products linked only from deeper pages can become harder for Google to find.
Product variants and duplicate descriptions
Variants: one URL or several?
Most stores should give each product one canonical URL, with size and colour chosen on the page, so signals stay together. Google’s variant guidance and Merchant Center both still want each variant preselectable by a URL parameter (/trail-boot?colour=green) showing its own price, image and availability, with the canonical left on the main product URL. A shopper clicking a green boot then lands on the green boot.
Give a variant its own self-canonical page only when it has its own search demand, such as a colourway people search for by name. Either way, product variant structured data (a ProductGroup with hasVariant and variesBy) shows Google which variants belong together. What doesn’t work: an indexable page for every size, with identical text.
Duplicate manufacturer descriptions
Duplicate content isn’t a penalty. But when hundreds of retailers publish the same manufacturer description, Google tends to show one or two and filter out the rest, and yours has no reason to be chosen. Rewriting a whole catalogue is rarely realistic, so prioritise:
Watch for duplicates you create yourself: if your platform makes a product URL for each category a product sits in, point links and canonicals at one clean URL.
Out-of-stock and discontinued products
For out-of-stock products, SEO comes down to one question: is the product coming back?
| Situation | What to do | Status code |
|---|---|---|
| Temporarily out of stock | Keep the page, say so, offer a restock alert and alternatives, set availability to OutOfStock (or BackOrder if people can still order) |
200 |
| Seasonal product or category | Keep one permanent URL, not a new page each season | 200 |
| Discontinued, with a successor | Redirect to the successor | 301 |
| Discontinued, but earns links or holds support information | Keep it as an archive page linking to alternatives; remove it from listings | 200 |
| Discontinued, nothing relevant | Remove it | 404 or 410 |
Don’t redirect every retired product to the homepage or a loosely related category: Google’s site move guidance warns that mass redirects to one irrelevant page may be treated as soft 404s. A sold-out page stripped down to “no longer available” risks the same, so keep the product details on it.
Product structured data and Google Merchant Center
Product structured data
Google’s Product structured data documentation separates two cases. Pages where customers can buy qualify for merchant listing experiences, which can show price, availability, shipping and returns. Pages that describe products without selling them, such as reviews or a product catalogue without a checkout, use product snippets.
Generate the markup from your product data: name, images, description, SKU, brand, GTIN where one exists, and an Offer with price, currency, availability and URL, plus shipping and returns details. Add ratings only when real reviews are visible.
The markup must match what shoppers see, down to the currency, and it makes products eligible for richer results without guaranteeing them. Schema markup for business websites covers the rules and testing; Search Console’s Merchant listings and Product snippets reports flag errors across the catalogue.
Free listings through Google Merchant Center
Google Merchant Center is how product data reaches Google’s shopping surfaces, including free listings on the Shopping tab in countries where they’re offered. Free listings need no ad spend:
- Create a Merchant Center account, then verify and claim your website.
- Add products through a feed, your platform’s integration or, where available, automatic collection from your site, which relies on accurate structured data.
- Add your shipping and returns information.
- Fix what Merchant Center flags, such as missing identifiers or prices that don’t match the landing page.
That last point is architectural: when page, structured data and feed all draw on one product database, they can’t drift apart.
Separate SEO for every language you sell in
In a multilingual store, each language needs its own URLs, translated slugs, titles and meta descriptions, category names researched in that language rather than translated literally, hreflang linking equivalent pages, and structured data showing the price and currency shoppers see. Merchant Center product data is also submitted per language and target country.
Don’t redirect visitors automatically by location or browser language. Google says most of its crawling originates from the US, so an automatic redirect can hide your other versions from it. Our multilingual SEO guide covers URL structures and hreflang; selling internationally online covers currencies, delivery and payments.
The redirect map that protects a redesign or replatform
Store migrations are riskier than most because thousands of URLs change at once. Moving between WooCommerce (/product/ and /product-category/ by default) and Shopify (fixed /products/ and /collections/ paths) changes almost every address. Our website migration SEO checklist covers the whole process; for a store, the redirect map decides the outcome:
- Collect every URL from a crawl, XML sitemaps, Search Console, analytics and a platform export, including filter URLs, images and PDFs that earn traffic or links.
- Match on stable IDs. Export SKUs with URLs from both platforms and mapping becomes a spreadsheet lookup.
- Redirect one to one with 301s: products to the same product, categories to the closest category, discontinued products by the rules above.
- Update everything that references URLs: internal links, canonicals, hreflang, sitemaps and the Merchant Center feed.
- Test before launch. Crawl the old URL list against the new site: each should reach a live page in a single hop.
- Watch after launch for new 404s in Search Console and landing page errors in Merchant Center. Keep redirects as long as you can: Google’s site move guidance says generally at least a year.
Where to start with e-commerce SEO
The usual problems are an index full of filter URLs, categories competing with each other, and products that vanish when they sell out. Fix those first: map searches to pages, contain the filters, and set rules for variants and sold-out stock. New copy, product data and extra languages all build on that.
For a second opinion, the Google visibility check in our free website audit looks at titles, indexing and page structure from the outside, with no logins needed.