Ask most store owners which pages bring in search traffic and they will say product pages. Look at the queries that actually convert and it is usually the category pages, and on most stores those are the pages nobody has touched since launch.
Somebody searching for a specific product number is already deciding between sellers. Somebody searching for a category is deciding what to buy, which is the more valuable moment and the one a category page is supposed to own.
When those pages do not rank it is almost never mysterious. In our experience it is one of four things, sometimes two of them at once, and the diagnosis is usually a twenty minute job rather than an audit.
This covers all four, how to tell which you have, and the order to fix them in. There is a practical section near the end on actually editing a WooCommerce category page, because that is where most people get stuck between knowing what to write and having somewhere to put it.
Why category pages carry more than product pages
Worth establishing before the fixes, because it changes where you spend effort. It is also the shortest answer to why SEO is important for ecommerce at all: these pages meet demand that already exists, rather than paying to create it.
They match the query people actually type
Almost nobody searches for a specific SKU unless they already know it. They search for a category with a qualifier: a material, a use, a price band, a city. A category page is the natural answer to that shape of question and a product page is not.
They survive your catalogue changing
Product pages come and go with stock. A category page persists for years, accumulating links and history, and every ranking it earns compounds instead of disappearing when a line is discontinued.
They distribute authority downward
A category page that ranks passes signal to every product it links to. Fixing one category page can move a hundred product pages that nobody has to touch individually.
They are where the buying decision narrows
The visitor is choosing between options rather than confirming one, which is the moment your copy, your filters and your range can actually influence the outcome.
If you have limited time, spend it on your top ten category pages rather than spreading it across four hundred product pages. The arithmetic is not close, and it is the single most common misallocation of effort we see on Indian stores.
Reason one: there is nothing on the page
The most common and the easiest to fix. A default category page is a heading, a grid of products and pagination. Strip out the product titles, which appear on their own pages anyway, and there is close to no unique content on it at all.
A search engine is being asked to rank that page for a competitive commercial term against pages that explain, compare and advise. It has nothing to work with, and no amount of ecommerce SEO elsewhere compensates for an empty page.
What to actually write
Not four hundred words of keyword-stuffed filler above the grid, which is the standard advice and which nobody reads. Write the thing a knowledgeable shop assistant would say to somebody standing in front of that shelf.
The two or three variables that actually differ across the range, and who each suits. This is the most useful paragraph you can write and almost no store has it.
Price band, sizes, materials, what you deliberately do not stock and why. Specificity here answers the question that would otherwise become a phone call.
Whatever your support inbox receives about this category, answered on the page. You already have this content, written by customers, in your own inbox.
A short introduction above the grid, and the longer detail below it. Pushing the products down the page to make room for copy is a trade that usually loses more than it gains.
Do not generate this. Category copy written by a machine at scale reads exactly like category copy written by a machine at scale, and it is the specific thing Google spam policy on scaled content abuse describes. A hundred words that only your business could have written beats four hundred that anyone could.
Reason two: filter URLs are eating your crawl budget
The technical problem that does the most damage on larger catalogues, and the one most owners have never heard of.
Every filter on your category page probably generates a URL. Colour, size, brand, price. Combine four filters with five options each and you have generated hundreds of URLs from one category, most of them showing near-identical products, all of them crawlable. On a large store this runs into tens of thousands of pages.
The consequence is not a penalty. It is that a crawler spends its time on combinations nobody searches for instead of on the pages you care about, and your genuinely important pages get visited less often. Google's own guidance on faceted navigation is direct about this: most filter URLs should be blocked in robots.txt rather than given a noindex tag, because a noindexed page still has to be crawled before the tag is seen.
The four categories every filter falls into
| Type | Example | What to do | Why |
|---|---|---|---|
| Index-worthy | A filter people search for by name, like a brand within a category | Give it a real URL and real copy | It is a category in its own right and has demand |
| Canonicalisable | Sort order, or a view that changes presentation only | Canonical back to the unfiltered category | Same products, different arrangement |
| Blockable | Multi-select combinations nobody searches for | Disallow the parameter in robots.txt | Blocking stops the crawl before it costs anything |
| Fragment only | Anything you can apply without a page load | Keep the state after a # and out of the path | Zero crawl impact, no downside |
| Do this once | For every filter you have | Write it down | It is a policy, not a task |
The last row is the strongest pattern for a new build and the one worth arguing for while there is still time. Filter state held in a URL fragment never reaches the server as a distinct page, so no crawler ever sees it, and the customer still gets a shareable link.
Which of these you can implement depends on how much of the platform you control. Self-hosted stores can do all four; hosted platforms vary considerably in what they will let you touch, which is one of the few places platform choice genuinely affects search rather than just being said to. The Shopify and WooCommerce comparison covers where those boundaries sit.
Reason three: pagination handled badly
Two failure modes here, and they are opposites. How much you can do about either depends on the platform shape you are on.
Infinite scroll with no paginated fallback
Googlebot loads the first screen and stops. Everything below that point does not exist as far as search is concerned, which on a category with two hundred products means most of your catalogue is invisible. Infinite scroll is fine as an enhancement and fatal as the only route.
Every page canonicalised to page one
A common instinct that quietly removes pages two onward from the index, taking the products only listed there with them. Each paginated page should carry a self-referencing canonical, not a canonical pointing back to the first.
On the markup question: Google deprecated rel prev and rel next in 2019 and now treats a paginated series as ordinary linked pages. Leaving those tags in place harms nothing and helps nothing, so it is not worth a project either way. What matters is that every page in the series is reachable through a normal crawlable link, has a unique title, and is rendered server-side rather than assembled after the fact.
On very deep sequences there is a legitimate argument for noindexing beyond a certain page, since page fourteen of a listing is rarely a useful search result. Do that deliberately rather than by default, and only once the earlier problems are solved, because it reduces what is indexed rather than improving it.
Reason four: your categories are competing with each other
The one that is hardest to see from inside the business, because every category made sense to whoever created it.
Stores accumulate categories. Somebody adds one for a campaign, somebody else adds a near-synonym, and a product ends up in three places. Now three pages target roughly the same query with roughly the same products, and none of them is clearly the best answer. Search engines pick one, often not the one you would have chosen, and the signal that should have gone to a single page is split across three.
How to find it
- Export your category list and read it. Genuine duplicates are usually obvious once they are in one column.
- Search your own site for a category term and see how many of your pages come back.
- In Search Console, look for one query where the landing page keeps changing between your own URLs.
- Look for categories with fewer than about five products, which are usually a tag pretending to be a category.
- Check whether any category exists only because a campaign needed a landing page two years ago.
The fix is consolidation, not deletion. Pick the page that should win, merge the products into it, and redirect the others to it permanently. Deleting them instead throws away whatever links and history they had accumulated, which is the part that was worth something. At scale this is a migration-shaped job rather than an afternoon.
A useful rule while you are in there: a category should exist because customers shop that way, not because your product data has a field for it. Material, colour and size are usually filters. Use case and product type are usually categories. Getting that distinction right prevents most of this from recurring.
Category structure and subcategories
Related, and worth its own section because subcategories are where the previous problem usually starts.
A subcategory earns its existence when it has enough products to be worth browsing separately and somebody searches for it as a thing. Below that, it is a filter, and creating it as a subcategory produces a thin page that competes with its parent.
| Situation | Make it a | Reason |
|---|---|---|
| Fifteen products, people search the term | Subcategory | Real demand and enough range to browse |
| Three products, nobody searches it | Filter | A page that thin will never outrank its parent |
| Describes an attribute, not a product type | Filter | Colour and size are how you narrow, not what you sell |
| Seasonal or campaign grouping | Filter or a landing page | It should not permanently fragment the structure |
| The test | Would somebody browse it | Rather than narrow with it |
Two structural points that matter more than depth. Every category should be reachable from the navigation in a couple of clicks, because a page nobody links to is a page nobody crawls often. And the hierarchy should be stable, since restructuring categories means changing URLs, and changing URLs means redirects and some loss.
Which is why this is worth getting right at build time rather than fixing later. It is one of the decisions in an ecommerce website build that is genuinely expensive to reverse, alongside URL structure and how products are modelled.
The quiet one: nothing links to them
Not one of the four, but it sits underneath all of them and it is free to fix.
On a lot of stores, category pages are linked from the main navigation and nowhere else. No blog post mentions them, no product page points back to its own category in the body copy, and no related-category links exist. The pages that are supposed to be the strongest on the site have the thinnest internal support.
Not just a breadcrumb, though have one of those. A sentence in the description that links to the category the product belongs to, with the category name as the link text.
Where two categories are genuinely adjacent, link them. It helps customers browsing and it distributes signal without any new content.
Anything you publish should link to the category it is about, in the body copy rather than in a list at the end. This is the single easiest internal linking win, and it is most of why a guides section is worth having at all.
The homepage usually has the most authority on the site. Linking your ten most important categories from it, rather than all forty, concentrates that where it does most good.
Actually editing a WooCommerce category page
The practical gap between knowing what to write and having somewhere to put it, which is where a lot of people give up.
Where the copy goes
Products, then Categories, then edit the category. The description field there is what renders on the category archive. That is where the introduction belongs, and by default it appears above the product grid.
Getting longer copy below the grid
The default position is above the products, which is fine for a short paragraph and bad for four. Most well-built themes offer a second field or a setting for content below the grid. If yours does not, it is a small template change rather than a plugin.
Adding subcategories
The same screen, setting a parent on the child category. Read the table above before you create one, because most subcategories people add should have been filters.
Changing the layout itself
The archive template. Editing it in a child theme, or through your theme's own category settings, survives updates. Editing the parent theme directly does not, and it is the most common reason category customisations vanish.
Showing subcategories on the shop page
A WooCommerce setting under Appearance, Customise, WooCommerce, Product Catalog. It controls whether the shop and category pages show products, subcategories, or both, and it is a setting rather than a code change.
Whatever you change, change it in a child theme or a site-specific plugin. Keeping that discipline is what a maintenance plan is for. Category template edits made directly in a parent theme disappear on the next update, and they disappear silently, which means you find out when somebody notices the copy is gone weeks later.
The same applies to any snippet you add for this. Keeping template and functional changes somewhere that survives updates is the difference between a store that is maintainable and one that quietly reverts, which is most of what separates a WooCommerce build that ages well from one that does not.
Working out which problem you have
Twenty minutes in Search Console and your own site tells you nearly everything. Match the symptom to the likely cause rather than fixing all four at once.
| What you see | Most likely cause | What to check next |
|---|---|---|
| Category pages get impressions but almost no clicks | Thin content, or a title that does not match intent | What the page says above the grid, and its title tag |
| Product pages rank but categories do not | Thin categories, or nothing linking to them | Internal links pointing at the category |
| Search Console reports far more pages than you have | Filter URLs being crawled | The Pages report, filtered to crawled and not indexed |
| The ranking URL for one query keeps changing | Two categories competing | Your category list, read as one column |
| Only the first page of a category is indexed | Infinite scroll, or canonicals pointing to page one | Whether page two is reachable with JavaScript off |
| Everything looks right and nothing ranks | Genuinely competitive term, or the site is too new | Whether anything at all ranks yet, before changing more |
| Do this first | Before writing anything | Diagnosis beats effort |
That last row deserves saying plainly. A store three months old with no links is not failing to rank because of a technical fault, and rewriting forty category descriptions will not change it. Sometimes the honest answer is that it is early, and the effort belongs somewhere with a faster return, such as selling products online through channels that already have demand, or getting the catalogue into Google's free product listings, which do not wait on authority the way a category ranking does.
The order to fix them in
Sequence matters, because two of these change what the others are measuring.
- Consolidate competing categories first, so you are not about to write copy for a page you will merge away.
- Fix crawl waste next, because it changes how often everything else gets looked at.
- Fix pagination and confirm page two onward is reachable without JavaScript.
- Then write copy, starting with your ten most valuable categories rather than all of them.
- Add internal links to those ten from products, guides and the homepage.
- Wait. Category pages move over months, not weeks, and changing more while waiting makes the result unreadable.
Change one thing at a time and give it a month, for the same reason you would with anything else you are measuring. Doing all six in a week means that if rankings move you will not know which change did it, and if they fall you will not know what to undo.
Most of this is work an in-house team can do, and there is no reason to pay someone for the parts you can write yourself. The parts that genuinely need a specialist are the crawl analysis on a large catalogue and the consolidation plan, because both are easy to get wrong in ways that cost traffic. That is what an ecommerce SEO engagement spends most of its first months on.
Send us your store URL and the category pages you expected to rank. We will tell you what is actually wrong, in enough detail that you can fix it yourself if you want to.
Questions we get asked about this
How much content should a category page have?
Enough to answer how somebody chooses between the products on it, which is usually a short paragraph above the grid and a longer section below. Length is the wrong target. A hundred words that only your business could have written outperform four hundred generic ones, and generated category copy at scale is the specific thing Google spam policy on scaled content abuse describes.
Should I block filter URLs in robots.txt or noindex them?
Google's faceted navigation guidance points to blocking in robots.txt for most filter combinations, because a noindexed URL still has to be crawled before the tag is seen, so it consumes crawl budget anyway. Reserve noindex for URLs you want visited but not listed, and canonical for filters that show the same products in a different arrangement.
Does rel next and rel prev still matter for pagination?
No. Google deprecated it in 2019 and now treats a paginated series as ordinary linked pages. Leaving the tags in place does no harm and no good. What matters is that every page in the series is reachable through a crawlable link, carries a self-referencing canonical rather than one pointing at page one, and has a unique title.
Is infinite scroll bad for SEO?
It is bad when it is the only way to reach products. Googlebot loads the first screen and stops, so anything below that does not exist for search unless a paginated fallback exists alongside it. As an enhancement over real pagination it is fine, and plenty of stores run both.
Should this be a subcategory or a filter?
A subcategory if it has enough products to browse and people search for the term itself. A filter if it describes an attribute like colour or size, or if it would hold three products. Creating thin subcategories is how stores end up with categories competing against each other, which is one of the four reasons this guide is about.
How long before category page changes show in rankings?
Months rather than weeks, and longer on a newer site. That is why changing one thing at a time matters more here than almost anywhere else: if you rewrite copy, consolidate categories and change your filter handling in the same week, you will not be able to tell which of them worked.