Say your shop carries four thousand products. You open Search Console and Google knows about more than sixty thousand URLs: every combination of colour, size, price band and sort order has become its own address. Meanwhile, new products take weeks to get indexed, and your product pages sit below your own Amazon listings.
E-commerce SEO is a series of architectural decisions, each playing out across thousands of URLs at once. This guide takes them in order: category structure, faceted navigation, product copy, variant markup, out-of-stock and discontinued items, Merchant Center, and the balance between your site and the marketplaces.
Build the category tree around search demand
On most shops, category pages, not product pages, answer the bulk of commercial searches. Someone searching for “men's leather boots” or “compact folding pushchair” wants options, not a single item. Your category tree is, in effect, your keyword map, and it should follow how customers search rather than how the warehouse is organised.
Start with demand data: Google Ads Keyword Planner, the queries in Search Console, your own site-search logs and the filter structure on marketplaces. Looking at which filters Amazon or a large competitor puts first in a category shows quickly which dimensions customers think in.
- Name categories with the words customers use: “Running shoes”, not “Active Life Collection”.
- Give every category one URL. If the same product list can be reached by two paths, one is the main page and the other links to it.
- Keep product URLs independent of the category path (for example /product/leather-boot-brown). Moving a product to a new category then doesn't change its URL, and a product in two categories doesn't create two addresses.
- Don't publish empty or two-product categories; Google recommends not linking to pages without useful content, or at least keeping them out of the index.
- Pick one URL format and stick to it. If your server treats upper and lower case the same, Google suggests converting everything to one case.
There's no magic number for depth, but every important product should be a few clicks from the home page.
Faceted navigation: which combinations deserve to be indexed?
Filters are good for shoppers and hard on crawlers. One category with five colours, ten sizes, four price bands and three sort options produces hundreds of URLs once combined. Google's Search Central documentation on faceted navigation says plainly that crawling these URLs consumes server resources and can slow the discovery of new pages.
Google's guidance is clear. If you don't need filtered URLs in search results, the first option is to block them from crawling with robots.txt, leaving product pages and the unfiltered listing open. Moving filters into a URL fragment (#) has no effect on crawling either way. Canonical tags and nofollow on filter links are, in Google's words, generally less effective in the long term; canonicals may reduce crawl volume over time, but there's no guarantee.
Some filter combinations do have real demand, though. If people search for “black women's ankle boots”, that deserves to be a category page in its own right, not a filter result: a fixed URL, its own title and short introduction, a self-referencing canonical and a link from the parent category. Every other combination stays blocked.
| Page type | Example | Search demand | Recommended decision |
|---|---|---|---|
| Main attribute or brand | /womens-boots/black | Often | Fixed, indexable landing page with its own title and copy |
| Multi-filter combination | ?colour=black&size=5&heel=low | Very rare | Blocked from crawling in robots.txt |
| Sort order and view | ?sort=price-asc, ?view=list | None | Blocked in robots.txt; links point to the main listing |
| Price band, offer or stock filter | ?price=band&instock=yes | None | Blocked in robots.txt |
| Combination with no results | ?colour=purple&size=13 | None | Return a 404; don't redirect to a generic page |
| Pagination | ?page=2 | Indirect | Crawlable, each page with its own canonical |
For filters you do keep indexable, Google has technical advice too: separate parameters with the standard &, keep filters in a consistent order if they live in the path, prevent the same filter being added twice, and return a genuine 404 for combinations with no results.
Category pages: landing pages, not just lists
The category page title and H1 should match the search phrase, and products should be visible at the top of the page. Two or three sentences above the grid are enough; a longer buying guide belongs below it. A thousand-word “SEO text” that pushes products off the screen tells neither shoppers nor Google anything useful.
Good category copy answers real questions: road versus trail soles for running shoes, one-hand folding for pushchairs, full-grain versus synthetic leather for boots. Linking from those answers to sub-categories is internal linking at its most natural.
Pagination
Google's pagination rules are short. Give each page its own URL (such as ?page=2), let each page be its own canonical, don't make page one the canonical for the whole series, and connect pages with ordinary <a href> links. Google no longer uses rel=next and rel=prev. Don't put page numbers in a URL fragment; Google ignores it.
If you use infinite scroll or a “load more” button, remember that Google's crawler doesn't click buttons. Crawlable paginated links need to exist behind the scenes, and an XML sitemap plus a Merchant Center product feed help Google find every product.
Product copy: stop pasting the manufacturer's description
If the manufacturer's description appears word for word on your site, twenty other shops and your Amazon listing, Google picks one copy to show. It isn't a penalty; it's simply that the copy picked usually isn't yours but the strongest domain's, often the marketplace.
Product copy should come from the questions customers ask before buying: dimensions, materials, fit (true to size or roomy), who and what it's for, care, what's in the box, warranty and servicing, a summary of delivery and returns. For a coffee machine, skip “outstanding performance” and say how large the water tank is, how long it takes to heat up, which capsules it takes and how often it needs descaling. Your returns reasons are the most honest source for this list.
You can't hand-write copy for four thousand products, and you don't need to. Hand-written copy for your best sellers and most-searched items, and readable templates fed by product attributes for the long tail, will do. If you draft with AI, keep a human editor in the loop: Google's scaled content abuse policy targets large numbers of pages that offer little value to users, however they were produced.
Use a consistent product title pattern: brand, model, key attribute and variant. Not “Coffee Machine Amazing Deal” but “Brand X Model 12 Capsule Coffee Machine, 1.2 Litre, Black”. Customer reviews are the most valuable original content on the page, so publish only genuine ones; in the UK, the DMCC Act has banned fake and concealed incentivised reviews since April 2025.
Variants and structured data
Every product page should carry Product and Offer structured data. Google describes two experiences: product snippets and merchant listings. Only pages where a shopper can buy the product are eligible for merchant listings; they require the product name, image and an offer with price and currency, and the price must be greater than zero. Availability isn't required but is recommended, as a single value such as InStock, OutOfStock, PreOrder or BackOrder.
Variants cause the most confusion. Under Google's variant documentation, colour and size options of the same product sit under a ProductGroup: variesBy states which attributes change (colour, size), productGroupID holds the parent SKU, and hasVariant lists the individual variants. Each variant needs its own sku or gtin, and each must be reachable at a distinct URL (for example ?colour=green&size=m) that preselects the right image, price and availability.
On canonicals, Google's e-commerce URL guidance says that where variants are separated by query parameters, the canonical is the product URL without the parameter. If all variants are selected on one page, the product group has a single canonical URL; if each variant has its own page, each page carries complete markup for what's on it.
- Use the most specific GTIN available: usually the 13-digit EAN in Europe, the 12-digit UPC in North America. Digits only, never a URL.
- Define shipping and returns once at Organization level, as Google recommends, and use product-level markup only for exceptions.
- Shipping and returns settings in Merchant Center or Search Console take precedence over markup, so don't leave the two contradicting each other.
- Price and availability in the markup must match what the page shows. A stale cached price is the most common error.
Out-of-stock and discontinued products
A product that's temporarily sold out and one that's gone for good are different situations and need different handling. The usual mistake is treating them the same: deleting everything, or redirecting everything to the home page.
| Situation | What happens to the page | Structured data | Next step |
|---|---|---|---|
| Temporarily sold out | Stays live, returns 200 | OutOfStock | Show alternatives and a back-in-stock alert |
| Pre-order or awaiting stock | Stays live | PreOrder or BackOrder | State an expected delivery date |
| Discontinued, with a successor model | 301 to the new model | Current on the new page | Remove the old URL from the sitemap |
| Discontinued, no equivalent | 404 or 410 | Removed | Clean up internal links |
| Seasonal product that returns every year | Same URL kept | OutOfStock off-season | Reopen the same page next season rather than creating a new one |
According to Google's documentation, there's no practical difference between 404 and 410; both say the content doesn't exist, and the URL drops out of the index over time. A 301 or 308 is a strong signal. Redirecting hundreds of discontinued products to the home page or a broad category confuses shoppers and frequently shows up in Search Console as a soft 404. Redirect only where a genuine equivalent exists.
Merchant Center, images and speed
Merchant Center free listings
Shops that send a product feed to Google Merchant Center can show their products on the Shopping tab, Google Search, Images, YouTube and Lens without spending on ads; Google calls these free listings, and they're available in the UK, the US and most of Europe. Appearing isn't guaranteed. Matching depends on the data you send, which is why titles, images, descriptions, attributes such as size and gender, and a product type with at least three levels all matter.
Rather than managing the feed by hand, use your platform's integration (most platforms, Shopify and WooCommerce included, offer one) so price and stock changes flow through automatically. A mismatch between feed price and page price is one of the most common reasons products get disapproved.
Product images
Google indexes images from the src attribute of <img> elements; images loaded as CSS backgrounds aren't indexed. Supported formats are BMP, GIF, JPEG, PNG, WebP, SVG and AVIF. Write descriptive alt text without stuffing it: not “product” but “brown lace-up men's leather boot, side view”. File names give a light clue too, so brown-leather-boot-side.jpg rather than IMG_0042.jpg. If you use srcset, always include a fallback src.
Speed
Our Core Web Vitals article covers speed in detail; on shops the culprits are nearly always oversized images, third-party scripts for chat, reviews and tracking, and heavy filter JavaScript. Lazy-loading images below the fold is right, but lazy-loading the main product image directly delays Largest Contentful Paint.
Internal linking and the marketplace balance
Internal links are the cheapest way to tell Google which pages matter. Breadcrumbs (with BreadcrumbList markup), links between categories and sub-categories, complementary products and links from guides to categories are the basics. Keep links to robots-blocked filter URLs to a minimum.
If you also sell on Amazon, eBay or Etsy, expect your marketplace listing to outrank your own site for brand and model searches on your own products. That isn't bad in itself; the sale is still yours. The real question is why your own site exists: the customer relationship, margin and brand.
- Make your own product copy different from, and richer than, your marketplace listing; identical text in both places hands the choice to the marketplace.
- Offer bundles, colours or services (installation, personalisation, extended returns) that exist only on your own site.
- Make sure your own site ranks first for your brand name; Organization markup and consistent brand details help.
- Collect email and SMS consent on your own site in line with UK GDPR and PECR, or GDPR and ePrivacy rules in the EU; a marketplace customer is not on your list.
Where to start
- In Search Console's page indexing report, compare indexed and known URLs with your actual product and category count.
- List every filter and sort parameter and give each one of the decisions in the table above.
- Create fixed landing pages for filter combinations with real search demand.
- Review the category tree against demand data and merge empty or duplicate categories.
- Replace manufacturer copy with your own, starting with best sellers.
- Add Product, Offer and ProductGroup markup and watch the product and merchant listing reports in Search Console.
- Write down a rule for out-of-stock and discontinued products and share it with the team.
- Set up Merchant Center, turn on free listings and connect the feed through your platform's integration.
- Put product image alt text and file names on a template.
- Separate your marketplace listings' copy from your own product pages.
At AYTE Digital, e-commerce SEO work starts with crawl data and shop architecture, and we implement filter and variant decisions together with the development side. The balance between marketplaces and your own site we set with you, based on your sales data.