Skip to main content

SBPO Consulting · Search

E-commerce SEO for catalogues that outgrew the template

A catalogue site fails at search in ways a brochure site cannot. Filters generate URLs faster than anyone can crawl them, two thousand products share one supplier paragraph, and the replatform is scheduled into peak trading. Most e-commerce SEO is the unglamorous work of deciding which URLs deserve to exist at all — and then defending that decision at the template level.

Where we come in

The e-commerce SEO problems this solves

  • Your product pages pick up long-tail traffic while the category pages that should earn the commercial terms rank for nothing.
  • Search Console lists far more URLs than you have products, and almost all of them are filter combinations nobody asked for.
  • Two thousand descriptions came straight from the supplier feed, and every competitor selling the same range has the identical paragraph.
  • A replatform has been signed off and nobody has raised search until now.
  • Organic sessions look healthy in analytics while organic revenue has been flat for a year, and no one can explain the gap.
  • Products go out of stock and their pages either disappear entirely or sit there ranking for something you cannot sell.
  • You are buying shopping ads against terms your own category pages ought to be earning for free.
  • Every fix your last agency proposed was a list of individual URLs, which is unusable when the catalogue turns over constantly.

Why e-commerce SEO is its own discipline

Most search advice quietly assumes a site where a person decided that each page should exist. A catalogue site is not that. Pages are generated — by the product feed, by the filter component, by the pagination rule, by whatever the platform does when a colourway gets its own address. The central question stops being how do we make this page rank and becomes which of these several hundred thousand URLs should exist at all, and are we prepared to defend that decision when the catalogue turns over next quarter.

The second difference is that value is not evenly distributed. On a content site, two pages earning the same traffic are worth roughly the same. On a store, one category page holding a head term can be worth more than several thousand product pages combined, while a beautifully ranking page for a discontinued line contributes nothing at all. Any programme reporting on sessions rather than revenue by landing page is measuring something that does not pay wages.

The third is that the platform has opinions. Shopify, WooCommerce and Adobe Commerce each generate URLs, canonicals and collection structures in their own way, and several of those defaults are actively unhelpful. A meaningful share of e-commerce SEO is knowing which platform behaviours can be changed, which can only be worked around, and which are not worth the fight.

Category architecture is where the demand actually sits

Buyers search for categories far more often than for products. “Waterproof walking boots” is a category query with sustained volume and clear commercial intent. A specific model name is a product query, and by the time someone types it they have usually already decided — frequently somewhere else.

So the map starts at the category layer: real demand grouped into the terms your buyers use, matched to the page type that can satisfy each one, and reconciled against what you actually stock. That last constraint is the one most keyword-led approaches skip, and it is why stores end up with empty category pages built for terms nobody can currently buy against.

When a facet deserves its own page

Some filter combinations are categories in disguise. If “waterproof” exists on your site only as a checkbox, but people search for waterproof boots consistently and you always carry them, that combination should be a permanent, indexable URL with its own copy, its own place in the navigation and its own internal links — not a filtered state a crawler may or may not stumble into.

The test we apply is deliberately awkward: could you write two honest paragraphs about this page that are not machine-generated, and will there still be stock behind it in six months? If the answer to either is no, it stays a filter. Promoting facets indiscriminately is how a store acquires forty thousand thin pages and then wonders why the good ones stopped being crawled.

Product pages are a template problem

Optimising product pages one at a time does not survive contact with a catalogue that changes weekly. Everything has to be expressed as template behaviour: a title pattern that stays useful past ten thousand SKUs rather than collapsing into brand plus product code, headings driven by structured fields, specification tables the merchandising team can populate, breadcrumbs, and internal links to the parent category and to genuinely related items rather than only to whatever the recommendation engine surfaces.

Supplier copy is the recurring problem. There is no duplicate content penalty in the sense people usually mean, but identical text across forty retailers gives a search engine no reason to prefer your listing. Since nobody is going to write ten thousand descriptions, the honest approach is to rank the catalogue by revenue and margin, commission real first-party writing for the small share that earns most of the money, and make everything else differentiate structurally — complete attributes, real photography with meaningful filenames, sizing and compatibility notes, delivery and returns detail, and first-party reviews.

Facets, filters and crawl waste

Google’s crawl budget documentation is refreshingly blunt: most sites do not need to think about it at all, and it names roughly a million pages updated weekly, or ten thousand pages updated daily, as the point at which it starts to matter. Faceted stores cross that line without anyone noticing, because the URL count is not the product count — it is every filter dimension multiplied together.

The available controls are not interchangeable, and treating them as though they were is the most common mistake we find. Disallowing in robots.txt stops crawling but does not remove URLs already in the index. Fragment-based filters are generally ignored by Google, which makes them neutral for crawl budget but also invisible if you wanted them indexed. A canonical tag is a strong hint that consolidates signals over time, not an instruction. A nofollow attribute on filter links only helps when every anchor pointing at that URL carries it, which is rarely true once a sitemap or a third-party template is involved. And empty filter combinations should return a 404 rather than a cheerful page with no products on it.

What we produce is a ruling per facet dimension, written down with its mechanism and its reason, so that the next person to open your robots.txt can tell whether a line is a deliberate decision or an artefact. Undocumented crawl rules routinely outlive everyone who understood them.

Duplicate content: variants, parameters and syndicated text

Three unrelated problems get filed under the same heading.

Variants. A size or colour with its own address. Google’s e-commerce URL guidance accepts either a path segment or a query parameter, and suggests that where a parameter is optional, the parameter-omitted version should be the canonical — which makes the relationship between variants explicit rather than leaving it to be inferred.

Parameters. Sort orders, view toggles, tracking tags and session identifiers. Use a consistent key-and-value format, never repeat the same key twice in one URL, keep session identifiers out of addresses entirely, and put self-referencing canonicals on every page you want indexed.

Syndicated text. Covered above, and the only one of the three that is a content problem rather than an architecture problem.

It is worth being precise about what happens when duplicates proliferate: not a penalty, but consolidation. Google picks one URL as canonical and the others stop earning independently. If it picks a different one from the one you intended, that is a signal problem, and the fix is redirects and internal linking rather than louder canonical tags. Our technical SEO work covers the same ground on non-retail sites; scale is what makes it hard here.

Pagination and listing pages

Each page in a paginated sequence should have its own URL and its own self-referencing canonical. Pointing every page back at page one is a widespread habit and it removes pages two onward from consideration entirely. Links between pages must be real anchors with href attributes, because Google crawls URLs found in href and does not press load-more buttons. Infinite scroll with no paginated fallback usually means a crawler sees the first screen of products and nothing else — which, on a category holding four hundred items, makes a substantial part of your catalogue invisible.

Structured data that earns something

The list of markup worth implementing on a store is shorter than the list of markup that exists. Product markup on product pages, ProductGroup where variants are modelled, BreadcrumbList across the site, Organization on the home page, and ItemList on category pages where the listing genuinely is the main entity. Beyond that, returns fall away quickly.

Two rules govern all of it. Markup must describe what a visitor can see on the page. And availability must be truthful: schema.org defines a full set of values including in stock, out of stock, back order, pre-order and discontinued, and wiring those to live inventory rather than a hardcoded string is the difference between markup that helps and markup that eventually causes a problem.

Merchant listing markup and product snippet markup are also different things with different eligibility. Where products can be bought on the page, the merchant listing properties — price, availability, shipping, returns — are what open the shopping surfaces. Getting product data into Merchant Center as well as onto the page is worth doing, because free listings put your catalogue in front of people who never reach a classic blue link, and the feed and the page are cross-checked against each other. Inconsistency between the two is a common and entirely avoidable cause of disapprovals.

On-site search tells you what the catalogue is missing

Site search logs are the cheapest and most honest keyword research available to a store: first-party, unsampled, and typed by people already on your site with money in hand.

Zero-result queries in particular sort into three buckets with three different owners. Either you do not stock the thing, which is a merchandising decision; or you stock it under a name nobody uses, which is a content and synonym problem and almost always an organic opportunity too; or your internal search engine is simply bad at matching, which is an engineering fix. Most stores read the report once, find it interesting, and never assign the actions. Reviewing it on a schedule with a named owner outperforms a great deal of more expensive work.

Out-of-stock, discontinued and seasonal

These get treated as one problem and they are three.

Temporarily out of stock. Keep the URL, keep it returning 200, mark availability accurately, and give the visitor something to do — a notify-me form, close alternatives, an honest restock note. Deleting a page because of a temporary condition throws away everything it has accumulated.

Seasonal. Keep the URL live year-round and let the content change. Deleting and recreating a seasonal category every year is one of the most reliably self-inflicted wounds in retail search: the page starts from nothing each time, precisely when you need it working.

Permanently discontinued. If a genuine successor exists, redirect to it. If nothing replaces it, redirecting to the parent category is defensible only where that category is a reasonable destination for the person who clicked. Otherwise let the URL return 404 or 410 and accept the loss — Google warns that redirecting many old URLs to loosely relevant destinations produces soft 404s, which is exactly what a blanket redirect to the homepage achieves.

Performance on image-heavy templates

Category pages are the worst-case template on most stores: dozens of product images, a filter component, a merchandising banner, a review widget and usually a personalisation script. The Largest Contentful Paint element is normally either the category headline or the first product image, and the fixes are unremarkable — correctly sized modern image formats, explicit dimensions on every image so the grid does not shift as it loads, lazy-loading below the fold but never on the LCP element, and genuine scrutiny of third-party scripts.

The part worth arguing about is the banner. A full-width promotional image above the product grid is a merchandising decision that costs load time on the template that converts, and it deserves to be defended on its numbers rather than assumed. Where the build itself is the constraint, that is store development work rather than an SEO recommendation, and we will tell you which of the two you are looking at.

Replatforming without giving the revenue away

This is where the largest single-day losses in e-commerce search happen, and they are almost always avoidable.

The redirect map is the visible half: every existing URL inventoried from a crawl, the sitemaps, Search Console, analytics and backlink data, then mapped to a single-hop, server-side permanent redirect. Backlink data earns its place because a page with negligible traffic can hold the external links propping up the section around it. Redirects should stay in place for at least a year on Google’s own advice, and chains should be kept short.

The invisible half is content parity, and it fails more often. Migrations routinely ship a new category template that dropped the three hundred words the old one carried, a product template without the specification table, breadcrumbs rendered only in JavaScript, or a faceted system with entirely new URL patterns and no rules attached to them. None of that appears on a redirect checklist. All of it costs traffic.

We rehearse the map against staging before launch rather than validating it in production, and we will argue — in writing, on the record — against a go-live date that lands inside peak trading.

Measuring against revenue rather than rankings

Position tracking is a diagnostic, not a report. What a store needs to know is which page types earn money, and whether the mix is shifting.

That means GA4 ecommerce events checked end to end rather than assumed. The shopping events are only useful if they actually fire with the right item parameters, and broken implementations are extremely common — a purchase event missing item-level data quietly removes your ability to attribute revenue to a category at all. It also means splitting organic performance by page type and by brand versus non-brand, because brand demand created by your paid channels will otherwise flatter the organic numbers. And it means joining Search Console and Merchant Center data to landing pages, so impressions on shopping surfaces sit alongside classic results. Where that reporting needs building properly, our analytics practice does that work.

How this fits with everything else

E-commerce SEO overlaps with more disciplines than most search work. The category and facet decisions are architecture, which makes them a conversation with whoever builds the store. The measurement is analytics engineering. The demand map produced for organic is the same map that should inform paid search and shopping bidding, and the two channels compete for the same terms often enough that running them without a shared view of the catalogue wastes money in both. It also sits inside the broader organic programme, which sets the topical and link strategy this page assumes.

If you are not sure whether your constraint is search, merchandising or the platform itself, tell us what you are seeing and we will give you our honest read — including, sometimes, that SEO is not the thing holding you back.

Scope

What our ecommerce seo services include

Every engagement is scoped in writing before it starts. These are the artefacts that leave our hands and become yours.

  1. Demand map at the category layer

    Search demand grouped into the categories, subcategories and attribute combinations your buyers actually use, matched to the page type that can satisfy each one. This is the document that decides which filter combinations become permanent landing pages and which stay filters, and it is built from the catalogue rather than from a keyword export.

  2. Faceted navigation ruling

    A written decision per facet dimension: indexable and internally linked, crawlable but not indexed, or blocked from crawling entirely — with the specific mechanism for each and the reason behind it. Without this document, robots.txt, noindex, canonical tags and nofollow get used interchangeably and none of them work properly.

  3. Product template specification

    The product page rebuilt as a template rather than as a page: title and heading patterns that scale past ten thousand SKUs without collapsing into brand-plus-code, the structured fields merchandisers fill in, breadcrumbs, internal links to parent and sibling products, and the rules for images and alt text.

  4. Canonical and variant plan

    How size, colour and configuration variants resolve to addresses; which query parameters are permitted and in what format; where self-referencing canonicals belong and where consolidation is wanted. Written against your platform behaviour, because Shopify, WooCommerce and Adobe Commerce each get this wrong differently.

  5. Structured data specification for the catalogue

    JSON-LD templates for product, product group, breadcrumb, organisation and listing pages, mapped to fields your platform genuinely holds and validated against the Rich Results Test. Availability, price and shipping values are wired to live data rather than hardcoded, because stale markup is worse than none.

  6. Replatform redirect map and runbook

    Every existing URL inventoried from crawl, sitemaps, Search Console, analytics and backlink data, then mapped to a single-hop destination, with a pre-launch rehearsal, a launch-day checklist, a rollback position and a monitoring plan for the period afterwards. Delivered before the migration, not as a post-mortem.

  7. Internal linking model

    Click depth analysis across the catalogue, an orphaned product report, and concrete changes to navigation, breadcrumbs, related-product modules and category cross-links — expressed as template changes so the improvement survives the next three thousand SKUs you upload.

  8. Revenue-side measurement

    GA4 ecommerce events checked end to end, Search Console and Merchant Center data joined to landing page and page type, and reporting that answers which categories earn revenue rather than which keywords moved position. Ranking screenshots are not a deliverable here.

How it runs

How SBPO Consulting delivers e-commerce SEO

  1. Start from the catalogue, not the keyword tool

    We begin with the product data: how many SKUs, how they are categorised, how variants are modelled, what the feed contains, and how much of it is supplier-supplied. Keyword research done before that produces a list of terms with nowhere sensible to land, which is how stores end up with categories that exist only to hold a paragraph.

  2. Reconcile four datasets

    A rendered crawl, the XML sitemaps, the Search Console page indexing report and revenue by landing page, compared against each other. Almost every genuine finding on a store lives in the differences between those four: URLs that exist and are not indexed, URLs indexed but never linked, and pages earning money that nobody knew were there.

  3. Decide what deserves to be a page

    The central judgement in retail search. Each candidate page type is tested against three questions: is there consistent demand for it, is there inventory behind it, and is there something honest to say about it beyond a filtered grid. Anything failing all three stays a filter, and we say so in writing rather than quietly building it.

  4. Fix at the template, never at the URL

    Ten thousand duplicate titles are one templating decision. Every recommendation names the template, the expected behaviour and the acceptance test, so a single change corrects the whole class and keeps correcting it as the catalogue turns over. Page-by-page fix lists are unmaintainable on a store and we do not produce them.

  5. Sequence changes around trading

    Structural work goes in when a mistake is survivable, not while the peak season is running. That constraint is agreed at the start, along with what happens if something regresses: who is watching, what they are watching, and the rollback that gets called without needing a meeting.

  6. Measure at page-type level and report against revenue

    Performance is reviewed by page type — category, subcategory, product, brand, editorial — and against organic revenue and assisted conversions rather than aggregate sessions. When a change has not worked we would rather say so early than let it sit unmentioned in a quarterly deck.

Tooling

Tools and platforms we use for e-commerce SEO

We pick tools for the problem, not for the résumé. Where a platform is a poor fit we will say so before you have paid for it.

Platforms

  • Shopify
  • WooCommerce
  • Adobe Commerce
  • BigCommerce
  • Headless (Next.js, Astro)

Crawling and auditing

  • Screaming Frog SEO Spider
  • Sitebulb
  • Google Search Console
  • Bing Webmaster Tools

Demand research

  • Semrush
  • Ahrefs
  • Search Console query data
  • On-site search logs
  • Merchant Center query reports

Feeds and structured data

  • Google Merchant Center
  • Product feed rules
  • Rich Results Test
  • Schema Markup Validator

Measurement

  • GA4 ecommerce events
  • BigQuery
  • Looker Studio
  • Chrome UX Report

Non-negotiables

The standards SBPO Consulting works to

These are checkable. Ask us to demonstrate any of them on your own project before you sign anything.

  1. Markup matches the page

    Structured data describes what a visitor can actually see, and availability and price values come from live data rather than a hardcoded string. Markup that drifts from the page is a manual action risk, not an optimisation.

  2. No doorway categories

    We do not build near-duplicate location or attribute pages whose only purpose is to catch a query and funnel the visitor elsewhere. If a proposed page cannot carry two honest paragraphs that are not machine-generated, it should be a filter instead.

  3. Facet decisions are documented and reversible

    Every crawl and index rule is recorded with its mechanism and its rationale, so the next person can tell why a URL pattern is blocked and change it deliberately. Undocumented robots.txt lines outlive the people who wrote them.

  4. Migrations are rehearsed before they ship

    The redirect map is crawled against staging and signed off before launch day, with a rollback position agreed in advance. A redirect map first tested in production is a plan to discover the errors using real customers.

Questions

ecommerce seo services — questions we get asked

Should category pages or product pages be the priority?

Categories, in almost every case. Buyers search for the thing before they search for the specific item, so category and subcategory pages sit against far larger and more commercial demand, while product queries are usually typed by someone who has already decided — often on a competitor site or a marketplace. Product pages still matter, but they matter as a template problem rather than as individual optimisation projects. The exception is a catalogue of genuinely searched named items, such as branded spare parts or ISBNs, where the product page is the demand.

How do we handle thousands of near-identical product pages?

Accept that you will not write them all, then be deliberate about which ones you do. Supplier-supplied descriptions are not penalised, but identical text gives a search engine no reason to prefer your listing over the forty other retailers carrying it. The practical approach is to rank the catalogue by revenue and margin, commission genuine first-party content for the small share that earns most of the money, and make the rest differentiate structurally: complete specification fields, real photography with meaningful filenames, sizing and compatibility notes, delivery and returns detail, and first-party reviews. For very large catalogues we would rather consolidate thin variants into one strong page than defend ten thousand weak ones.

What should happen to pages for discontinued products?

It depends on whether a genuine successor exists. If it does, a single-hop permanent redirect to that product is right. If the product is simply gone and nothing replaces it, redirecting to the parent category is defensible only when that category is genuinely a reasonable destination for the person who clicked; otherwise let the URL return 404 or 410 and move on. What you should not do is redirect everything to the homepage — Google explicitly warns that redirecting many old URLs to irrelevant destinations produces soft 404s, which achieves nothing and hides the problem. Temporarily out-of-stock items are a different question entirely: keep the URL, keep it returning 200, mark availability accurately, and give the visitor a way to be told when it returns.

How do filters and facets hurt SEO, and how do we fix them?

A faceted catalogue creates an effectively infinite URL space, because the number of addresses is the product of every filter dimension rather than the number of products. Crawlers will explore it, which delays discovery of the pages that matter and spreads signals across near-duplicates. Google documents several controls and they are not interchangeable: robots.txt stops crawling but does not remove already-indexed URLs, fragment-based filters are generally ignored and so are neutral for crawl budget, a canonical tag is a strong hint that consolidates over time rather than a directive, and nofollow on filter links only helps if every anchor pointing at that URL carries it. The fix is a written ruling per facet dimension rather than one blanket setting, plus promoting the handful of combinations with real demand into permanent, internally linked landing pages.

Is Shopify or WooCommerce better for SEO?

Neither is better in a way that should decide the choice. Both can rank well and both impose irritations: Shopify generates duplicate collection and product paths that need canonical handling and gives you limited control over robots.txt and URL structure, while WooCommerce gives you full control and the corresponding ability to make a mess of it, with performance depending heavily on hosting and plugin discipline. Adobe Commerce offers the most control and demands the most expertise to run. Choose on merchandising needs, integrations, catalogue complexity and who has to operate it daily, then budget for the specific search work that platform makes necessary. Anyone telling you a platform is inherently good or bad for search is usually selling a migration.

How do you protect revenue during a replatform?

By treating the migration as a search project with a launch date rather than a launch with a search checklist attached. Every existing URL is inventoried from a crawl, the sitemaps, Search Console, analytics and backlink data — that last source matters because a forgotten page with almost no traffic may hold the external links supporting the section around it — then mapped to a single-hop, server-side permanent redirect. Google recommends keeping those redirects for at least a year. The redirect map is the smaller half of the job, though: the larger half is content parity, because migrations lose category copy, specification tables and breadcrumbs far more often than they lose URLs. We rehearse the map against staging before launch, and we will argue against a go-live date that lands inside your peak trading period.

Do product reviews on our site help SEO?

Genuine first-party reviews on product pages are useful for two reasons: they add real, unique content to a page that otherwise carries supplier copy, and they help people decide, which is what the page is for. On the structured data side there is a distinction worth knowing. Product is an eligible type for review markup, so honest reviews on product pages can support rich results. Reviews about your own business, marked up on an Organization or LocalBusiness page, are a different matter — Google states that where the reviewed entity controls the reviews about itself, those pages are ineligible for the star feature. We follow that rule on our own site, which is why you will not find a star rating anywhere on it.

Adjacent work

E-commerce

Online store builds on Shopify, WooCommerce, Adobe Commerce or a headless stack — with the catalogue structure, checkout and migration planning that decide whether it earns.

Technical SEO

Crawl and indexation audits, rendering and performance work, structured data and migration planning — the layer that decides whether your content is eligible to compete at all.

PPC management

Google Ads, Microsoft Advertising, Shopping and paid social managed against your unit economics — with the conversion tracking rebuilt and verified before any budget is spent.

Part of our SEO practice.

Search

Let's talk about your e-commerce SEO work.

Send us the problem, the constraint and the deadline. You will get a considered reply from someone who would actually do the work — not a templated proposal.