Guides · Industry playbooks
Published · 12 min
The ecommerce SEO guide
A store ranks or fails on structure before it ranks or fails on words. This guide works through the order that matters for an online shop: the category tree, product templates, filters and duplicate URLs, internal links, structured data and feeds, speed, and the content that earns the research searches before the purchase. Written for London retailers who also have a shop, a showroom or a delivery radius.
On this page
- What makes ecommerce SEO different
- Category structure: the decision that sets the ceiling
- Product pages: fix the template, not the page
- Faceted navigation and duplicate URLs
- Pagination, variants and out-of-stock products
- Internal links and breadcrumbs
- Structured data and the Merchant Center feed
- Speed, content and reviews
- The ecommerce SEO checklist
Ecommerce SEO is the work of making thousands of pages rank for thousands of specific searches at once. A service business needs a dozen pages to rank for a dozen phrases. A store with 800 products in 40 categories needs every one of those pages to be findable, distinct and fast, and it needs the structure between them to tell Google which pages matter most. That is why most of this guide is about structure and templates rather than about writing.
The stakes are not small. In August 2026, 27.3 percent of UK retail sales were made online, according to the ONS Retail Sales Index (series J4MC, released 18 September 2026). For a London retailer that figure describes the share of the market that never walks past the shop. Every fix below is something you can check on your own store today; where a decision needs a developer, the guide says so.
What makes ecommerce SEO different
Three things. First, scale: you cannot write every page by hand, so quality has to live in the template and the data. Second, duplication: filters, sort orders, colour variants and pagination create many URLs for the same products, and Google has to be told which one counts. Third, intent: a shopper searching "velvet corner sofa" wants a category page listing them, not a blog post about velvet and not a single product. Matching page type to search type is most of the job.
Google is explicit that it reads your structure from links, not from URLs: "Google generally doesn’t look at the structure of URLs to work out the structure of a site. Instead, it analyzes the linkages between pages". Its advice for stores is to link from menus to category pages, from categories to sub-categories, and from there to products. Everything in the next three sections follows from that sentence.
London adds a fourth difference. Most London stores also have a physical presence: a showroom off Tottenham Court Road, a shop on Columbia Road, a warehouse in Park Royal with a trade counter. The "sofa showroom London" and "near me" searches are local searches, answered by a Google Business Profile and a location page, not by the catalogue. Our local SEO guide covers that side; this guide stays with the store.
Category structure: the decision that sets the ceiling
A category tree decides what your store can rank for before a single description is written. Shoppers search for things ("oak extendable dining table", "women’s waterproof running jacket", "M8 stainless bolts"), so categories named after things rank, and categories named after rooms, moods or seasons ("Living", "New In", "The Autumn Edit") rank for nothing but the brand name.
The method is simple and slow: list the searches people make for your range, group them, and give every group with real demand its own category or sub-category page. The page needs a name in the shopper’s words, a short introduction (two or three sentences is enough), the products that match, and links to its neighbours. The table shows the difference on a hypothetical furniture store near Tottenham Court Road.
| How the store is organised today | What shoppers type | What should exist |
|---|---|---|
| Living (120 products) | corner sofa, velvet sofa, two seater sofa, sofa bed | Sofas, with sub-categories for each type and a filter for fabric |
| Dining (60 products) | extendable dining table, oak dining table, round dining table | Dining tables with sub-categories by shape and material; chairs as a sibling category |
| New In (changes weekly) | nobody searches this | Keep as a merchandising page, noindex it, and stop linking it from every page |
| Sale | sofa sale london | Keep, but make it a filter on each category as well as a page, so the discount shows where the demand is |
Depth matters too. Google infers importance partly from "the number of links it needs to follow to reach a page and the number of links to a page". A category three clicks from the home page with one link into it is being told it does not matter. Put the categories that make money in the main menu and link to them from the home page in text, not only in an image carousel.
Product pages: fix the template, not the page
With hundreds or thousands of products, the product page has to be right by default. That means the template carries everything Google needs and the product data fills it in. Write unique copy only for the products with both search demand and margin; for the rest, structured data, specifications and real images do more than a rewritten paragraph.
| Template element | What it should contain | Why it matters |
|---|---|---|
| Title tag | Product name, key attribute, brand; no "Home" or category chain | The title is the search result headline; a chain of breadcrumbs truncates before the product name |
| H1 and description | The product name once, then copy written for a buyer, not the manufacturer’s paragraph | Supplier text is identical on every stockist; yours competes with all of them |
| Specifications | A real HTML table: dimensions, materials, weight, compatibility | Google can parse a table; it cannot parse a JPEG of one |
| Images | Several sizes, descriptive file names and alt text, lazy-loaded below the fold | Image search and speed |
| Price, stock and reviews | Visible on the page and in Product structured data | Eligibility for rich results and the Merchant Center check |
| Internal links | Breadcrumb to the category, links to the parent category and related products | Carries authority back up the tree and down to siblings |
For structured data, Google’s requirement for a Product snippet is short: the name is required, plus at least one of review, aggregateRating or offers. If you sell the product, Google suggests merchant listing markup, which adds price, availability and shipping detail. Keep the markup in step with the visible page: a price in the code that differs from the price on the page is the fastest way to lose rich results and feed approval.
One honesty point. Product review markup belongs on products. Google’s review snippet guidelines restrict LocalBusiness and Organization review markup to "sites that capture reviews about other local businesses", so marking up your own store’s rating as an Organization rating is a self-serving review and against the rules. Mark up what customers say about products, not what they say about you.
Faceted navigation and duplicate URLs
Filters are good for shoppers and dangerous for crawling. If colour, size, price and material each add a parameter to the URL, a 40-category store can generate hundreds of thousands of URLs that show the same products in different orders. Google’s own guidance says what to do: "Oftentimes there’s no good reason to allow crawling of filtered items", and it recommends two methods for keeping crawlers out of them.
| Method | What Google says | When to use it |
|---|---|---|
| robots.txt disallow on the filter parameters | Recommended: allow the unfiltered listing and the product pages, disallow the filter combinations | Filters nobody searches for (price bands, sort orders, "in stock only") |
| URL fragments (#colour=grey) instead of parameters | Recommended: Google "generally doesn’t support URL fragments in crawling and indexing", so fragments have no effect either way | New builds, or a replatform where the filter mechanism can be chosen |
| rel="canonical" to the unfiltered page | "Generally less effective in the long term" than the two methods above, but may reduce crawl of non-canonical versions over time | Existing stores where robots.txt changes are not possible yet; as a backstop, not the main control |
| noindex on filter pages | Google’s robots documentation: to keep a page out of Google, "block indexing with noindex" | Filter pages that must remain crawlable for shoppers but should never appear in results |
The judgement call is which facet combinations deserve to be pages. "Grey velvet sofa" has search demand and a clear intent, so it should be a crawlable, indexable page with its own title and introduction, whether that is a sub-category or a curated filter URL. "Sofas under £800 sorted by newest" does not. Decide facet by facet, write the rules down, and have them implemented on your platform; Shopify, WooCommerce and Magento each do this differently, and the Shopify guide covers that platform’s version.
Remember what robots.txt does and does not do. It controls crawling, and Google states plainly that it "is not a mechanism for keeping a web page out of Google". A disallowed URL can still be indexed from links. If a filter page must not appear in results, it needs noindex, and noindex only works if the page can be crawled to see it.
Pagination, variants and out-of-stock products
Three more sources of duplicate or missing pages, each with a settled answer.
Pagination
Category pages with more products than fit on one page need page two, three and so on. Google asks that "each page in paginated results has a unique URL" and notes it sees "the most URL mistakes in pagination URL structures". Do not canonicalise page two to page one (that hides the products only listed on page two), and do not rely on rel="next" and rel="prev": Google says it "no longer uses these tags". If you use "load more" or infinite scroll, make sure each batch of products also exists at a plain, linkable URL.
Variants
A jumper in six colours is one product with six variants, not six pages with the same description. Keep one canonical product page, let variant selection change the image and price without changing the indexed URL, and only split a variant into its own page when people search for it specifically (a named colourway, a size range with its own demand). Where variants do have separate URLs, use rel="canonical" to the main version; Google treats a canonical annotation as "a strong signal that the specified URL should become canonical".
Out of stock
Keep the page live if the product is coming back, with a clear stock message, the structured data set to out of stock, and links to alternatives. Redirect to the closest category only when the line is discontinued for good. Deleting the page or sending it to the home page throws the ranking away twice: once when it sells out, and again when it returns and has to start from nothing.
Internal links and breadcrumbs
Internal links are how a store tells Google which pages matter, and they are the cheapest fix in this guide. Breadcrumbs on every category and product page (visible, and marked up with BreadcrumbList structured data) give every page a route back to the top. Category introductions should link to sub-categories in text. Product pages should link to their parent category and to related products chosen for relevance, not only "customers also bought".
Then look for orphans: products or categories with no inbound link except the sitemap. Google’s guidance is that pages should be "reachable by following links through your site’s navigation". A crawl of your own store, compared with the product export, finds them in an afternoon.
A word on crawl budget, because stores worry about it more than they need to. Google says its crawl budget guidance is intended primarily for large sites of a million or more unique pages, or sites of 10,000 or more pages whose content changes daily. Most London stores are well under that, so the issue is not that Google cannot crawl everything; it is that uncontrolled facets make it crawl the wrong things.
Structured data and the Merchant Center feed
Two routes carry your product data to Google and they should agree with each other. Google’s own summary for stores is to include structured data on product pages and upload a feed to Google Merchant Center, noting that structured data "can also help the accuracy of Google Merchant Center verification of product feeds against your site". In practice that means: Product markup on every product page with the live price and availability, a feed in Merchant Center built from the same product data, and a weekly check that the two match.
Where stores go wrong is drift. The feed says £349 and in stock; the page says £379 and two weeks’ lead time; the free product listings stop. The fix is to generate both from the same source, which every major platform can do, and to treat feed disapprovals as a search problem rather than an advertising one.
Speed, content and reviews
Speed on a phone
Store themes accumulate apps, trackers and sliders until they crawl. The targets are public: Google’s Core Web Vitals ask for a Largest Contentful Paint within 2.5 seconds, an Interaction to Next Paint of 200 milliseconds or less and a Cumulative Layout Shift of 0.1 or less, measured at the 75th percentile of page loads. Measure with field data (the Core Web Vitals report in Search Console, or PageSpeed Insights) on your category and product templates, not the home page. The Core Web Vitals guide explains each metric and the usual store-specific causes: oversized hero images, review and chat widgets that load first, and fonts that shift the layout.
Buying content
Before "buy velvet sofa" comes "velvet vs linen sofa", "how to measure for a corner sofa" and "best sofa for a small London flat". Those searches want guides, comparisons and short category introductions, each linked to the categories and products it describes. Content that sits in a blog folder with no link to a product helps nobody. Content that answers the research question and then points to the right category earns the click and passes authority where it is needed.
Reviews
Product reviews on the page add unique words to every product and feed the aggregateRating that qualifies for rich results. Collect them with a system that asks after delivery, show them unfiltered, and mark them up on the product only. Your store’s own Google reviews belong on the Google Business Profile for the shop or showroom, where the "near me" searches are decided.
The ecommerce SEO checklist
In the order we would do it on a London store.
- List the searches for your range and map each group to a category or sub-category page that exists, or create it.
- Rename categories in shoppers’ words; keep merchandising pages ("New In", "Edit") but noindex them and take them out of the main menu.
- Decide, facet by facet, which filter combinations are pages and which are closed to crawling; implement with robots.txt rules or fragments, with canonicals as the backstop.
- Give every paginated page a unique URL and leave page two indexable.
- Consolidate colour and size variants to one canonical product page unless a variant has its own search demand.
- Fix the product template: title, H1, buyer copy, specification table, image names and alt text, Product structured data with live price and availability.
- Add breadcrumbs with BreadcrumbList markup to every category and product page; link sub-categories in text from category introductions.
- Crawl the store against the product export and link every orphan.
- Build the Merchant Center feed from the same data as the page and check the two match weekly.
- Measure Core Web Vitals on category and product templates with field data; remove apps and scripts that do not earn their load time.
- Write buying guides for the research searches and link them to categories and products.
- Set an out-of-stock rule: keep and mark, or redirect to the nearest category if discontinued; never delete or send to the home page.
- Report organic revenue by page type (category, product, content) every month, not rankings for a keyword list. Our reporting guide shows what that looks like.
If you would rather have someone check this against your store, the free SEO audit looks at where you appear for the five searches that matter to your range, the technical blockers found by hand, and the three fixes that matter most. If you want the work done, the ecommerce SEO service page explains what is included and how it is measured, and the pricing page sets out what drives the cost; any price you see there is indicative until confirmed in a written proposal.
On proof: we have built and optimised stores on Shopify, including a Shopify store with Furnex product imagery and retail SEO for Ideal Furniture World in Leeds and Shopify, AI point of sale and social for Jaquar Midlands. No sales uplift figure is published for either, and we have not yet published a London ecommerce client case. We would rather say so than imply otherwise.
Get your free SEO auditA person reviews your store within two working days: category structure, duplicate URLs, product markup and speed, with the three fixes that matter most.
Sources
13 sources · accessed 9 Oct 2026
Questions
6 questions