Shruti Parashar

Ecommerce

Your category pages are the most under-built asset you own

Ecommerce teams pour effort into product pages and paid ads, then leave the pages with the highest commercial search volume as bare grids. What belongs on them, in order.

Shruti Parashar 22 min read

Open the analytics for almost any ecommerce site and sort organic landing pages by revenue. Category pages will be at or near the top. Then open the category pages themselves. A heading, a grid of products, maybe a paragraph of text underneath that reads like it was written to hit a word count.

The pages doing the most commercial work receive the least attention. Product pages get photography, copywriting and A/B tests. Paid acquisition gets a budget and a specialist. Category pages get a template and a keyword.

This is backwards, and it is backwards for a structural reason: most commercial searches are for a type of thing, not a specific thing. People search for the category vastly more than they search for any individual item inside it. The category page is where the money is, and it is usually the least-built page on the site.

Why the grid loses

A grid answers one question: what do you sell? It does not answer the question the visitor actually arrived with, which is some version of which of these is right for me?

Someone searching for a product category is generally in one of three states:

Who has landedWhat they needWhat a bare grid gives them
Doesn’t know what to look forTo be told which differences matter, and whyThumbnails and prices they cannot interpret
Knows the criteria, not the answerA way to compare on those criteriaFilters named after the warehouse, not the decision
Knows exactly what they wantPrice, stock, deliveryEverything they need

A bare grid serves only the third. The first two leave — usually to a review site, a forum thread, or a competitor who did the work — and they take their purchase with them.

That is also why these pages under-perform in search. Google’s ranking systems are trying to satisfy an exploratory intent. A page that offers nothing but thumbnails and prices is a thin answer to an exploratory question, and something more complete will outrank it. It is the same point this site makes about search intent being a business question rather than a keyword attribute: the query names a decision, and the page either resolves it or does not.

What belongs on a category page

Figure 1
Category page
1
2
3
4
5
6
7
  1. 1 Breadcrumb and H1 The category, named the way people search for it — not the way the ERP names it.
  2. 2 Orienting paragraph Two or three sentences. What is in here, who it is for, what separates the options. The only copy that belongs above the grid.
  3. 3 Filters and sort The highest-leverage element on the page, and a merchandising decision rather than an SEO one. Filter by how customers choose, not by how you stock.
  4. 4 The product grid Dominant, immediately visible, carrying ratings, price and stock reality on every tile.
  5. 5 Buying guidance How to choose. What the specification differences mean in practice. What people get wrong and regret. Your sales team says this out loud every day.
  6. 6 Sub-category links If the category splits into genuinely different kinds of thing, explain the split and link it. Helps the shopper and builds the internal linking that makes those pages rank.
  7. 7 Questions, answered Sizing, compatibility, materials, care, returns, delivery. Every unanswered one is a reason to leave and find out elsewhere.
The grid stays dominant and stays at the top — nobody should scroll past an essay to reach the products. The substantial content sits below it, where it costs the shopper nothing and gives the page a reason to rank.

In rough priority order.

A short orienting paragraph above the grid. Two or three sentences. What is in this category, who it is for, and what distinguishes the options. This is the only content that belongs above the products — never push the grid below the fold for the sake of copy. Somebody who landed here from search needs to see products immediately to confirm they are in the right place.

Filters that match how people choose, not how you stock. This is the highest-leverage thing on the page and it is a merchandising decision rather than an SEO one. If customers choose by room size, filter by room size — not by the manufacturer’s product line, which means nothing to them. Watch how people use the filters you have; the ones nobody touches are telling you something.

Buying guidance below the grid. The genuinely useful part. How to choose between the options. What the specification differences actually mean in practice. What people commonly get wrong and regret. This is the content your sales or support team already produces verbally, every day, and almost never gets written down — and it is worth briefing properly rather than handing a writer a keyword, in the way a brief a writer can actually use sets out.

Comparison of the sub-types. If the category splits into meaningfully different kinds of thing, explain the split and link to the sub-categories. This does double duty: it helps the shopper and it builds the internal linking structure that makes those sub-categories rank.

Questions, answered plainly. Sizing, compatibility, materials, care, returns, delivery. Every one of these is a reason someone leaves the page to find out, and most of them never come back. Answering them where the decision is being made removes a step from the purchase.

Proof. Review counts and ratings on the tiles, bestseller and “most returned” signals if you are brave enough, stock and delivery reality. People are trying to reduce risk. Give them something to reduce it with — the same conversion logic that governs any commercial page, applied to a listing.

None of this needs to be long. It needs to be useful. A category page with 250 words that genuinely help someone choose will outperform one with 800 words of keyword-padded prose, and it will not annoy the customer who is trying to shop.

What the principle above looks like as an actual page

Everything in the section above is a description of what belongs where. Here is what it looks like once someone actually writes it, for a specific category a mid-size outdoor retailer might sell: waterproof hiking boots. Swap the category and every sentence below needs rewriting, which is deliberate. A worked example that could be lifted unchanged onto a different category would be exactly the templated, low-value content this piece is arguing against.

Breadcrumb and H1. Home / Footwear / Hiking boots / Waterproof hiking boots. The H1 matches the phrase a buyer would actually type, not an internal product-line name.

Orienting paragraph, above the grid.

Waterproof hiking boots use a membrane or treated leather to keep water out while letting sweat escape — worth the trade-off on wet British hillwalks, less necessary on dry trails abroad. Filter below by waterproof rating, ankle height and the terrain you’ll cover: a day walk, a multi-day route with a loaded pack, and winter conditions each call for a different boot.

Two sentences, doing three jobs: confirming the visitor is in the right place, naming the two dimensions that actually separate the options, and handing off to the filters immediately below. It does not repeat what the buying guidance further down covers in more depth. Repeating it would waste the one paragraph allowed above the fold.

Filters, chosen by decision rather than by stock.

What customers actually filter byWhat the warehouse organises by instead
Waterproof rating: fully waterproof or water-resistantManufacturer product line
Ankle height: low, mid, highInternal SKU category
Terrain: day hike, backpacking, winter and mountaineeringColourway
Width fit: standard or wideSeason code

A retailer that filters by “AW26 range” instead of “waterproof rating” is asking a customer to already know the manufacturer’s internal naming before they can use the filter meant to help them.

The grid. Products, price, rating, stock status. Nothing to write here. Its only job is to be visible the instant someone lands.

Buying guidance, below the grid.

Waterproof boots work through a membrane, Gore-Tex or a manufacturer’s own equivalent, sealed between the outer material and the lining. It genuinely keeps water out rather than just resisting it, but it also traps more heat, which is why a fully waterproof boot runs warmer than an unlined one. On a hot, dry summer trail that trade-off works against you: a breathable, non-membrane boot will keep your feet more comfortable over a full day.

Ankle height is a support decision, not a style one. Low-cut boots suit maintained paths and single-day walks. Mid and high-cut boots add ankle support for uneven ground and the extra weight of a loaded pack, worth carrying on a multi-day route and unnecessary for a flat afternoon walk.

New boots need breaking in before a long walk, not on one. Wear them on short walks for two to three weeks first. A boot that feels fine for ten minutes in a shop can still raise a blister eight miles into a route it was never tested on.

This is the paragraph a shop-floor staff member already gives out loud a dozen times a week. Writing it down once is the entire exercise. It answers which of these is right for me, which the grid alone cannot.

Sub-category split, linked.

Day hiking boots are lighter and more flexible, with less breaking-in needed: the right choice for maintained trails and single-day walks. Backpacking boots add a stiffer sole and higher ankle support for multi-day routes carrying a loaded pack. Winter and mountaineering boots add insulation and crampon compatibility for snow and ice, too warm and too stiff for anything else on this list.

Each name links to its own page. A visitor who landed on the general category but actually needs backpacking boots is one click from the page that converts them, rather than scrolling a mixed grid trying to work it out from thumbnails and guessing at product names.

Questions, answered plainly. Whether waterproof boots run too hot for summer walking, restated briefly from the buying guidance above, because a question needs its own self-contained answer even when the fact already appeared elsewhere on the page. How to re-waterproof them once the treatment wears off. Sizing against a normal shoe size. The returns policy for a pair worn once outdoors to test them, which is the specific, honest question a first-time buyer of this category actually has.

Proof. Review count and rating on every tile. Stock and expected delivery date visible without a click. Nothing invented, nothing aggregated from somewhere the retailer does not control: the same discipline that applies to schema, covered below, applies to the words on the page.

Before any of that: get the crawl under control

There is no point improving a page that search engines cannot reach efficiently.

Faceted navigation is the standard failure. Colour, size, brand, price band, sort order and pagination combine multiplicatively, and a catalogue of 20,000 products becomes millions of crawlable URLs. Googlebot spends its budget on ?colour=blue&sort=price_desc&page=7 while your new lines wait weeks to be indexed.

Decide, per parameter, which of four things happens:

TreatmentUse it when
Not linked crawlablyThe combination has no search demand. The best option: the URL never enters the crawl.
Blocked in robots.txtA whole pattern is worthless. Cheap and immediate — but a blocked URL can’t be seen, so never use it on something you also need de-indexed.
Canonicalised to the parentThe variant must exist and occasionally gets linked to externally.
Indexed as a real pageThere is genuine search demand for this combination.

That last row matters. A handful of filter combinations are real categories in disguise — the colour, size or material people actually search for. Those deserve their own copy, their own title, their own internal links, and treatment as first-class pages rather than as a filter state. Everything else is noise, and the noise is expensive.

Robots.txt, canonical and noindex do different jobs, and Google is specific about which

The section above names the four treatments. Here is what Google’s own current documentation says each one actually does, because these three technical options get used interchangeably in most advice on this subject, and they are not interchangeable.

Google’s guidance on managing faceted navigation (last updated December 2025) names the core problem directly: faceted URLs look novel to a crawler, which cannot tell they are useless without crawling them first, so it spends budget finding out. “The crawlers have less time to spend on new, useful URLs” as a direct result.

TreatmentWhat it actually doesThe catch
Robots.txt disallowStops the URL pattern being crawled at all, such as disallow: /*?*colour= blocking every URL containing that parameterA URL already indexed before the block can’t be evaluated or removed this way. Blocking is not the same as deindexing
NoindexGoogle still requests the page, reads the tag, then drops it from the indexIt costs a crawl request to find out. Google’s own crawl budget guidance is explicit: don’t use noindex to protect crawl budget, because Google will still request the page and only then drop it, “wasting crawling time”
rel="canonical"Points a duplicate to its preferred version, and “may, over time, decrease the crawl volume of non-canonical versions”A hint, not an instruction. Google’s own canonicalisation documentation confirms it can select a different canonical than the one specified
URL fragments (#colour=blue instead of ?colour=blue)No crawl impact at all, positive or negative, because fragments are largely invisible to crawlingOnly works where the filter state genuinely never needs its own indexed URL

Google’s canonicalisation documentation names this exact situation, worth quoting directly because it settles an argument that otherwise runs in circles internally: it lists “the results of sorting and filtering functions of a category page” as one of its own standard examples of duplicate content requiring a canonicalisation decision. This is not a workaround SEOs invented. It is a case Google’s own documentation anticipates by name.

Two things are worth correcting before they cause damage.

The crawl-budget conversation only applies at real scale. Google’s own crawl budget guidance scopes it to sites with more than a million unique pages whose content changes about weekly, or more than ten thousand pages changing very rapidly. A catalogue of a few hundred products with a handful of filters is unlikely to be crawl-budget-constrained at all, whatever a technical audit template implies — which is the general point behind the technical checks that actually matter.

Pagination is a related but separate decision. Google’s pagination guidance recommends each paginated page carry its own canonical URL rather than collapsing every page to page one. Alternate sort orders of the same results are the case for noindex or blocking rather than canonicalisation, because they are the same products rather than a different page of them.

None of this replaces the decision from the section above: which filter combinations have genuine search demand and deserve to be indexed as real pages. It is the mechanism for enforcing that decision once it is made, and the mechanism matters. The wrong tool applied to the right decision still leaves the crawl problem in place.

Then fix the lifecycle

Category pages persist. The products inside them do not, and that mismatch is where quiet damage accumulates.

SituationThe common mistakeWhat to do instead
Product discontinuedLeave it 404ing, or bulk-redirect everything to the homepageRedirect to the nearest replacement; failing that, the parent category
Temporarily out of stockRemove the pageKeep it, say when it is expected, offer alternatives
Seasonal category404 it out of seasonKeep it live year-round — otherwise it restarts from zero every year
Category emptiedLeave a page with no productsMerge it, fill it, or retire it with a redirect
Product renamed or re-categorisedPublish the new URL, forget the old oneRedirect, and update the internal links pointing at it

Discontinued products. Never leave a dead product 404ing inside a live category, and never blanket-redirect the whole lot to the homepage — Google treats that as a soft 404 and discards the page’s accumulated signals. Redirect to the nearest replacement product, or failing that to the parent category, and keep the page live with a clear message if the item is coming back.

Out of stock. Keep the page and the internal links, say when it is expected, and offer alternatives. Removing it throws away rankings you will have to earn again.

Seasonal categories. A Christmas category that 404s in February loses its accumulated authority every year and starts from zero every autumn. Keep it live year-round with appropriate content. It costs nothing and it compounds.

Empty categories. A category with no products is a bad experience and a thin page. Either merge it, or fill it, or remove it properly with a redirect.

The schema that’s actually documented for a category page, and the kind that isn’t

Most advice on category-page schema recommends ItemList for a rich carousel without checking whether that is still true. It is worth checking, because the answer changes what schema work here is actually worth doing.

BreadcrumbList is genuinely useful, and nothing about it has changed. It reflects the hierarchy the page already has: home, footwear, hiking boots, waterproof hiking boots. Google’s own breadcrumb documentation describes it as an actively supported, stable rich result. Low effort, because it should mirror navigation that already exists, and there is no honest way to get it wrong beyond the markup not matching the page.

ItemList will not earn a carousel rich result on a category page, and Google’s documentation says so. Google’s carousel structured data guidance restricts the feature to four content types: course lists, movies, recipes and restaurants, and requires every item in a list to be the same one of those types, stated plainly as “all items in the list must be of the same type.” There is no documented carousel result for a general product or category listing.

ItemList schema on a category page is still legitimate as a plain, accurate description of what the page contains, following the same discipline as any other schema: describing only what a visitor can genuinely see. It should not be added on the promise of a rich result that does not exist for this content type.

Product schema belongs on the product page each tile links to, not wrapped around the grid. Google’s own Product structured data documentation is written for a single product per page. It does not address marking up multiple products inside a listing page, and no equivalent guidance for that pattern was identified in the sources reviewed.

The safer, documented pattern is to keep full Product, Offer and review markup on the individual product pages, and let the category page’s ItemList, if used at all, describe the list itself rather than duplicating each product’s full offer data.

Star ratings on the tiles carry the same restriction covered in the schema guide for local businesses. If the rating shown on a product tile comes from reviews the retailer curates and controls, rather than an independent, unedited third-party feed, it is not eligible for the star rich result regardless of how accurately the markup is coded.

The category-page version of the mistake is the same as the local-business version: marking up a number the business itself chose to display as though it were independently verified.

FAQPage, if used, is for extraction now, not a rich result. The FAQ rich result was deprecated across Google Search from 7 May 2026, covered in detail on the schema guide linked above. FAQPage markup on a category page’s question section is worth adding for the same reason it is worth adding anywhere now: a clean, machine-readable structure for an answer engine to extract from, not a SERP feature.

The discipline underneath all four is identical, and it is the same discipline this site’s local-business schema guide argues for a completely different vertical: schema describes what a visitor can already see. Marking up a carousel that cannot appear, a rating the business controls, or product data that lives on a different page does not make the category page rank better. It makes the markup wrong.

Report brand and non-brand separately

One reporting point, because it decides whether any of this work gets funded again.

Total organic traffic to category pages is a misleading number. It is dominated by people searching for your brand plus a category — they already knew about you, and search was a navigation step rather than a discovery one. That traffic will look healthy whatever you do.

The number that tells you whether this work is paying is non-brand organic revenue by landing page. Split it out, watch it per category, and you will be able to see which categories are genuinely acquiring customers and which are just serving people who already knew where to go. The brand/non-brand split is the same discipline the measurement guide applies to local reporting, for the same reason: an aggregate number hides the thing you are trying to change.

Three numbers past “did traffic go up”

Non-brand organic revenue by landing page, from the section above, is the headline metric. It answers whether the page is winning customers who did not already know the business. It is not the only number worth watching, and the other two catch what that one alone misses.

Category-to-product click-through. Better filters and genuinely useful buying guidance should move more visitors from the category page into a product page, not just hold their attention longer. In GA4, this is visible through an item_list_click or equivalent event on the grid, segmented by landing page. Watch it before and after a rebuild, on the same non-brand traffic segment, rather than comparing across categories with different products and price points.

A category page that keeps people reading but does not increase the rate at which they open a product has improved the content rather than the commercial outcome the content was built to produce.

Category-page-assisted conversions. A category page frequently is not the last page someone visits before buying. It is where they narrowed the options, went to compare a shortlist of product pages, then bought one of them, sometimes days later. Last-click reporting credits none of that to the category page.

GA4’s conversion path reporting, or a data-driven attribution view where the platform supports one, can show whether the category page appears earlier in converting paths even when it was never the final touch: the number most likely to be missing entirely from a report that only looks at landing-page revenue.

Whether anyone reads the buying guidance at all. Scroll depth to the buying-guidance section, or a click event on a genuinely used affordance within it such as a comparison table or an FAQ accordion, tells you whether the content earns its place or was built to a spec nobody asked for.

If engagement with that section is close to zero after a reasonable sample, that is a real finding, not a reason to write more of it. It means the content is not answering the question it was meant to.

Run all three for a comparable period before and after a category-page rebuild, on the same set of categories, rather than spread thin across the whole catalogue at once. Three properly measured categories tell you whether the approach works before you commit the budget to the rest of the catalogue.

Category pages sit in the middle of the site’s structure, and most internal-linking effort skips past them. Inbound links go to the homepage or a handful of blog posts, outbound links go from the category into products, and the category page itself gets treated as a destination rather than a link source in its own right.

Guide and blog content should link into the category, by name, in context. An article on choosing the right hiking boot for a route should link to the waterproof hiking boots category, and to the actual sub-category it is discussing where the guide is specific enough, with anchor text that names what the reader will find rather than “shop now” or “click here”.

It is the same decision-proximity logic that should decide which content gets built first: the reader who finishes a genuinely useful buying guide is closer to choosing than the reader who searched the head term, and the link should land them exactly where that choice happens.

The category page should link back out, to its best products and to the guide that supports it. Best-performing, not arbitrarily featured: genuinely top-converting or most-reviewed, which is both the honest merchandising decision and the one that passes the most relevant internal signal to the products that deserve it.

Where a deeper standalone guide exists beyond what fits in the buying-guidance section, link out to it from there, and make sure that guide links back. A one-way link from guide to category, with nothing returning, wastes half the relationship.

Build the hierarchy, not a flat set of links wherever seems convenient. Category, then sub-category, then product, mirrored in the URL structure and the on-page links: the same structural argument this site makes for multi-location pages built around region, city and branch instead of a flat list.

Baymard Institute’s homepage and category navigation benchmark, which scores 344 top-grossing US and European ecommerce sites against its own usability testing, finds 76% performing at “mediocre” or worse overall, with category taxonomy among the weakest areas.

That is a UX benchmark rather than a ranking study, and it is a judgement against Baymard’s own guidelines rather than a measurement of lost revenue — but it points at the same failure this section argues against, from a different angle: sub-categories that are hard to find do not get linked to, and do not get chosen.

Category pages accumulating internal links only from the main navigation are underlinked. The navigation gets them found once. Contextual links from content that has already earned trust are what get them ranked, and get the right visitor to the right level of the hierarchy.

Where to start

If you do one thing: take the three categories with the highest margin, and treat each as a page rather than as a listing.

Write the buying guidance. Fix the filters so they match how people choose. Answer the five questions your support team is tired of answering. Add ItemList and BreadcrumbList schema that describes what is actually on the page. Link to them properly from the homepage and from related products.

Three properly built category pages will teach you more about what your customers need than a year of optimising product page templates — and unlike the paid budget, they keep working after you stop paying.

The underlying question — what the person searching is actually trying to decide — is the subject of search intent as a business question. What this looks like applied across a real catalogue is written up in rebuilding a category architecture.

Questions

How much content should an ecommerce category page have?
Enough to answer the questions a buyer has before they can choose, and no more. That is usually a short orienting paragraph above the grid and a longer, genuinely useful section below it. Word count is the wrong target — a 600-word block of keyword-stuffed filler helps nobody, while 250 words that explain how to choose between the options can be the difference between a browse and a purchase.
Should category page content go above or below the products?
Both, in different amounts. A short paragraph above the grid orients someone who has just landed and confirms they are in the right place. The substantial content — buying guidance, comparisons, FAQs — goes below the products, where it does not push the grid off the screen. Never make a shopper scroll past an essay to reach the thing they came for.
Should I index filtered category pages?
Only the filter combinations with real search demand behind them, and those should be treated as proper pages with their own copy, title and internal links. Everything else should be blocked from crawling or canonicalised to the parent category. Left unmanaged, faceted navigation turns a 20,000-product catalogue into millions of crawlable URLs and consumes the crawl budget your new products need.
What schema should an ecommerce category page use?
ItemList describing the products shown, plus BreadcrumbList for the hierarchy. If you have added genuine FAQ content, FAQPage as well. The schema should describe what is actually on the page — marking up products that are not visible, or reviews that do not exist, is a manual action waiting to happen.
Why do category pages rank better than product pages?
Because they match the query. Most commercial searches are for a type of thing rather than a specific item — people search for the category far more than for any individual product in it. Category pages also tend to accumulate more internal links and sit closer to the homepage, and they survive the product lifecycle: individual items go out of stock, but the category persists.
Does ItemList schema get a category page a carousel rich result in Google Search?
No. Google's own carousel structured data documentation restricts the feature to four content types: course lists, movies, recipes and restaurants, and requires every item in a list to be the same one of those types. There is no documented carousel rich result for a general ecommerce category or product-listing page. ItemList schema still has a legitimate use on a category page, describing what is genuinely there for anything parsing it, but it should not be added expecting a carousel that this content type does not qualify for.
Should I use robots.txt, noindex or canonical to control faceted navigation?
They do different jobs, and Google's documentation is specific about it. Robots.txt disallow stops a URL pattern being crawled at all, though a URL already indexed before the block can't be evaluated or removed this way. Noindex still costs a crawl, because Google requests the page, sees the tag, then drops it: it protects the index, not the crawl budget. rel=canonical is a hint that reduces how often the non-canonical version gets crawled over time, but Google can still choose differently. Use disallow for filter combinations with no search demand at all, canonical for variants that need to exist but shouldn't compete with the parent, and reserve indexing for combinations with genuine demand behind them.
How do I know whether a category-page content investment actually worked?
Non-brand organic sessions and revenue to the page, watched separately from brand traffic, is the headline number. Underneath it, track the category-to-product click-through rate, to check whether the improved filters and buying guidance are actually moving people into products rather than just holding their attention, and, where your attribution setup supports it, category-page-assisted conversions: purchases where the category page appeared earlier in the path even when it wasn't the last click. A category page can look flat on last-click revenue and still be doing real work upstream of the sale.
Should blog or guide content link to category pages, or only to specific products?
Both, for different reasons. Guide and blog content should link to the category page, and the right sub-category where one exists, with descriptive anchor text, because that's usually where someone convinced by the guide is ready to choose between options rather than commit to one product. The category page, in turn, should link out to its best-performing products and to any deeper guide content that supports the decision. Treat it as a hierarchy of guide, category, sub-category and product, rather than a flat set of pages linking wherever seems convenient.
Can I put Product schema on a category page that lists multiple products?
Google's own Product structured data documentation is written for a single product per page and doesn't address marking up multiple products inside a listing page. The documented, safer pattern is to keep Product, Offer and review data on the individual product page each tile links to, and use ItemList, describing the list itself rather than each product's full offer data, on the category page if you use it at all. The star ratings shown on tiles are also subject to the same self-serving-review restriction as anywhere else: a rating your own site curates and controls isn't eligible for the star rich result regardless of where the markup sits.
Start here

Build the pages that already carry the commercial search

If your category pages are still templates with a keyword in the H1, that is where the work is. We start with the buying guidance, the filters and the crawl control, in that order, on the categories that carry margin.

Replies usually go out within one working day.