E-commerce

Category page SEO: what to index and what to close

A category earns indexing only with a stable name and content of its own. Filters, sort orders and empty pages stay out, with canonical and noindex rules.

Key points

  • Index only categories with a stable name and content of their own.
  • Filters, sort orders and parameters stay out via canonical or noindex.
  • Pagination stays indexable, but only as deep as the content reaches.
  • An empty category closes with a 410 or a redirect, not by sitting there.

A category page deserves indexing only when it answers a search with a stable name and holds content of its own: filters, sort orders and empty pages stay out of the index.

The URL rule

URL typeIndexableWhat to do
/category/yesCanonical to itself, intro text, links to products
/category/?colour=rednonoindex,follow: the combination has no stable search demand
/category/?order=pricenoCanonical to /category/, never a canonical that changes with the sort order
/category/?page=2yes, down to the depth with contentprev and next links, noindex beyond the useful depth
/category/emptyno410 when it is gone for good, 301 to the parent category when it returns

The test is simple: a URL earns the index when people search for it by name. "Men's running shoes" does, "men's running shoes red size 43 sorted by ascending price" does not. Filter combinations run into the thousands and eat the crawl budget the product pages need.

The text that earns its place

  • A short introduction saying what the category holds and how to choose, written for the person rather than the engine.
  • A block of links to subcategories or related guides: that is the part which keeps the page useful without the grid.
  • No text copied between categories: when two categories share the same description, one of them is not needed and they should be merged.

The code: count the indexable pages

# quante pagine categoria dichiara il negozio
curl -s https://ui.eneawork.it/sitemap-categories.xml | grep -c ""

# quali di quelle pagine sono varianti con parametri
curl -s https://ui.eneawork.it/sitemap-categories.xml \
  | grep -o "[^<]*" | grep -c "?"

If the second command returns anything above zero, the shop is declaring parameter variants: close them with canonical or noindex instead of leaving them in the sitemap. Recount after every change to the filters, because the rules get lost inside templates.

The limitation to name

No traffic data: the 804 pages measured are the ones the catalogue declares, not the ones receiving visits, and we have no Search Console access for a third-party shop. Indexable pagination depth also depends on your catalogue: with twelve products per page and two hundred products, the tenth page is nearly empty and does not deserve the index.

Where to continue

Two real categories to look at: category-01 and category-02, plus a catalogue category page such as /components/cat/table. For filter combinations read faceted search, for the product page product page SEO and for indexing in general indexing a site on Google.

Frequently asked questions

How many category pages can I create?

As many as have a name people search for and enough products to fill them. A category with three products and no monthly demand brings no traffic and weakens the categories that matter.

Should filters be indexed?

Only those with stable search demand, and few of them: a main colour or size on a dedicated URL, not as a parameter. Every other combination stays out with noindex,follow.

Does a category need text above the grid?

Yes, short and useful: what the category holds and how to choose. Long text repeated across dozens of categories reads as filler and pushes the products down the page.

How should pagination be handled?

With prev and next links and a canonical on each page pointing to itself, not to page one. Pages beyond the depth with real content get noindex: they are nearly empty and waste crawl budget.

Should an empty category be deleted?

It should be closed: 410 when it will not return, 301 to the parent category when it is seasonal. An indexed empty page shows searchers a result that holds nothing.