A shoe shop splits each product into more sellable pieces than many retailers do. One trainer can come in six colourways, each in a full run of sizes, some with half sizes and a wide fitting. Every one of those is its own stock unit. After a busy launch, some sizes can be gone within hours while others sit on the shelf for months.

Search engines see the side effects: competing colourway pages, size filters whose results change with the stock count, and size guides locked inside images. This guide takes each problem in turn, using Google’s published documentation. I flag the places where the advice is mine and not Google’s.

Colourways deserve pages, sizes usually do not

Many shoppers search for a colourway, not just a model. Someone after a particular trainer will often type the model name with the colour, or the nickname the colourway was released under. Size is a different kind of choice. A buyer picks it after landing on the page, and it is less often part of the search.

Google’s ecommerce URL guidance says each variant should be identifiable by a separate URL. A path such as /trainers/runner-90/sail-green and a parameter such as ?colour=sail-green are both acceptable. A fragment is not: Google ignores everything after # for indexing, so two colourways that differ only after the # count as one page.

Google’s product variant documentation describes two set-ups:

  • Single page. One canonical URL covers the whole group. Each variant must be preselectable through its own URL, show the right image, price and availability, and be addable to the bag.
  • Multiple pages. Each variant page has its own canonical, and the full group of variants is repeated in the markup on every page.

For most footwear, my recommendation sits between the two. Give each colourway its own indexable page. Let size be an optional parameter on that page, such as ?size=uk-9, with the canonical pointing to the colourway URL without it. Google’s URL guidance supports that last step: when a variant parameter is optional, the URL without the parameter is the canonical.

The exception is a plain range where colour carries no search interest of its own, such as a school shoe in black and brown. One page with a colour choice is the cleaner option there.

What to do when sizes sell out

A colourway with half its sizes gone still sells. The Google pages this guide draws on give no rule for out-of-stock products. Its URL guidance does say empty categories can be marked noindex, or return a 404 if the category is removed. That advice is about category pages. Applied to a shoe page with a few sizes left, it would remove a page that is still taking orders.

My advice is to keep the page live and indexable while any size is available or a restock is likely. Mark each size’s availability in its own Offer. Availability is a recommended property in Google’s merchant listing documentation, and it takes a single value per offer. A colourway that is gone for good but still has links pointing at it is better redirected to the nearest current colourway than left to return an error. That is my view, not a Google rule.

Size filters on category pages

A size filter on a category page reflects today’s stock. The page for women’s boots in size 4 might list forty products this week and three next week. Google’s faceted navigation guide warns that crawling filter combinations uses server resources and slows the discovery of new URLs. Its own robots.txt example blocks size= and color= parameters while keeping one unfiltered listing crawlable.

For most shoe shops, blocking size filters is the sensible choice. Some size groups do have their own demand, such as large sizes or wide fittings. Build those as proper category pages with their own copy and links, rather than relying on a filter URL.

If size filter URLs stay crawlable, Google asks for:

  • & between different parameters;
  • one key per filter, with several sizes combined in that key rather than the key repeated (from Google’s URL guidance: ?type=candy,sweet);
  • a 404 at the URL itself for any combination with no results, not a redirect to a general error page.

Size systems, widths and variant markup

Google marks up variants with ProductGroup, a hasVariant list and a variesBy property. The allowed variesBy values are schema.org URLs for colour, size, material, pattern, suggested age and suggested gender. For footwear, https://schema.org/size and https://schema.org/color cover most ranges. Suggested age helps for children’s shoes, and suggested gender helps where a model is cut differently for men and women.

There is no value for width. If wide fittings have their own stock units, I suggest folding the fitting into the size value, for example “UK 9 Wide”. Do it the same way across the whole catalogue. Google’s merchant listing page notes that size takes one value, so pick the system your buyers use for the markup and show the EU and US conversions on the page.

Each variant needs a unique identifier, either sku or gtin, and the group needs its own ID. Many brands issue a separate barcode for every size of every colourway, so a GTIN is often already in the product data. Keeping that data tidy across a large size run is mostly a platform job, covered in WooCommerce variable products at scale.

Unisex models raise a separate problem. A trainer listed under both men’s and women’s categories can end up with two product URLs. Keep one, link to it from both categories, and use that same URL in internal links, sitemaps and canonicals, as Google’s URL guidance asks.

Model names, style codes and release dates

Many trainer buyers know the manufacturer’s style code printed on the box, and some search for it directly. Show the code as text on the product page, near the model and colourway names. A style code usually covers a colourway rather than one size, so it suits the group ID better than a per-size sku. If it forms part of a SKU, remove any space in the markup, because Google’s merchant listing rules say sku must not contain whitespace.

Release pages need some planning. Merchant listings are only for pages where the shopper can buy the product, and the price must be above zero. A “coming soon” page or a draw entry page will not qualify until the product is on sale. My advice is to use the same URL from teaser to launch, so any links the teaser earns stay with the live product.

Many shoe shops discount the last few sizes. If you mark up priceValidUntil, keep it current: Google notes that a listing may not show once that date has passed.

Size guides, 360 spins and photography

Many size guides are a single image of a conversion chart. Text inside an image is not page text, and Google’s image SEO guidance advises against text-heavy images as a page’s preferred image. Put the chart in an HTML table. Write fit notes, such as “comes up half a size small”, as text next to the size selector rather than leaving them to reviews.

A 360 spin is often drawn on a canvas or swapped through CSS backgrounds. Google says it does not index CSS images, so a spin on its own adds little to image search. Keep a normal gallery of <img> stills as well: side profile, sole, heel, top-down and on foot. Give each a file name and alt text that state the model, the colourway and the angle.

Merchant listing images must be crawlable. Google recommends high-resolution versions of at least 50,000 pixels, in 16:9, 4:3 and 1:1. A side profile of a shoe is wide and short, so the square version needs padding rather than a tight crop. For a product video, Google’s ecommerce structured data overview recommends VideoObject markup.

Footwear SEO audit steps

  1. Pick one popular model and list every URL it produces: colourways, size parameters, filters and tracking links.
  2. Compare that list with the pages Search Console shows as indexed for the model.
  3. Check the canonical on a colourway page, with and without a size selected.
  4. Find a colourway with most sizes sold out. Confirm it is still indexable and that each size’s availability is right in the markup.
  5. Request a size filter that has no results in a category, and check it returns a 404 or is blocked in robots.txt.
  6. Test the markup in Google’s Rich Results Test: an Offer per size, a price above zero, and a unique SKU or GTIN for each.
  7. Open the size guide and check that a screen reader, or a search engine, could read it.
  8. Check what the URL of a discontinued, well-linked colourway now returns.

Lighthouse also ran its SEO checks on those five shoe pages in October 2026. Four scored 92 and one 85, and every failure concerned links or images. Two pages had links Lighthouse could not crawl, two had link text it judged not descriptive, and two had images with no alt text. On a footwear page, colourway swatches and gallery shots are the first places I would look. None of the size, colourway or markup questions above is tested, because Lighthouse’s SEO audit covers only a few basics.

Speed matters too on footwear pages, which carry spins, sliders and size pickers; that is covered in footwear website performance. For how shoes sell online more widely, see selling footwear online, and for made-to-order builds, the footwear configurator page. If you would like a review of your own catalogue, see my ecommerce SEO audit or, for Shopify stores, the Shopify SEO audit.

Sources

Google documentation used for this footwear guide, checked October 2026:

My own tests: PageSpeed Insights, 5 UK product pages per industry, 23 October 2026 (the Lighthouse SEO results for footwear pages above).