Category Page SEO

Category pages (PLPs, collection pages) are usually the highest-leverage and most technically dangerous pages on an ecommerce store. This is how to rank them, handle pagination after rel=prev/next died, decide which faceted URLs to index, add content without keyword-stuffing, and route crawlers to every product.

First published: Jun 25, 2026 · Last updated: Jul 19, 2026 · Advanced
demand #1 in Categories & Merchandising#19 in Ecommerce SEO#324 on the site
1 evidence signal on this page

A category page (PLP, collection page) groups products under a classification and usually does two jobs: rank for broad commercial queries and route crawlers and link equity to the products beneath it. The technical traps are the same ones that make ecommerce hard — faceted navigation spawning near-infinite URLs, and pagination. The accuracy spine for 2026: rel=prev/next is dead (Google, 2019), so don't canonical paginated pages back to page 1 — let each page be indexed on its own or point to a 'view all'. Category pages that are only a product grid can be hard to rank, but Google's line (Mueller) is that extra text is helpful, not required — and a keyword-stuffed footer blob is the wrong way to add it. The GSC URL Parameters tool is gone (2022); control parameters with robots.txt and canonicals instead.

TL;DR — Category pages are the highest-leverage and most technically dangerous pages on a store: they rank for the broad commercial queries and they route crawl + PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. to your products. The accuracy spine for 2026: rel=prev/next is dead (Google, March 2019) — don’t canonical paginated pagesPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. back to page 1 (that hides everything on pages 2+); let each page self-canonical, or point them at a “view all” page if you have one. Faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. is the core threat — block the noise (robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.), indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. the signal (real demand). The GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool is gone (April 2022) — use robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. and canonicals. Thin product-only pages can be hard to rank, but Mueller’s line is that extra content is helpful, not required — and a keyword-stuffed footer blob is the wrong way to add it. BreadcrumbList is the structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. that matters; do not put Product rich-result markup on a multi-product listing.

Why category pages are the leverage point

A category page is both a ranking target and the on-ramp Google uses to reach every product beneath it. Source: /ecommerce-seo/categories-and-merchandising/category-page-seo/

A category-page wireframe highlights four SEO-relevant zones: concise introductory copy, controlled filter and sort URLs, crawlable product links, and pagination with unique URLs, self-canonicals, and real links to the next page.

© Patrick Stox LLC · CC BY 4.0 ·

On most stores, category pages are simultaneously the highest-value and the most fragile pages you own. They’re high-value because they match the broad commercial queries — “running shoes,” “laptops under $500” — which carry far more volume than any single product query. And they’re fragile because every category page is also a crawl-and-link-equity distribution node: Google reaches your product pages largely by following the links on your category pages. Google says this directly: “If category pages don’t include direct links to all products in a category, GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. might not find all of your products by crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. alone.” Evidence for this claim Google warns that products may not be found by crawling when category pages do not link directly to them. Scope: Use crawlable anchor links and pagination or load-more implementations Google can follow. Confidence: high · Verified: Google: Ecommerce site structure

So a category page is doing two jobs at once — ranking for its own query, and serving as the on-ramp to everything beneath it. Most of the SEO work below is about not breaking either one.

Faceted navigation — the thing most likely to hurt you

Block the noise, index the signal — the four-way decision for every faceted URL. Source: /ecommerce-seo/categories-and-merchandising/category-page-seo/

A faceted URL branches to four outcomes. Sort, tracking, and redundant filter combinations are blocked from crawling. Low-demand but navigable combinations canonicalize to the base category. Combinations backed by real search demand become optimized, self-canonical landing pages. Empty or nonsensical combinations return 404.

© Patrick Stox LLC · CC BY 4.0 ·

The filter and sort UI on top of a category page is faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals., and in its common URL-parameter form it’s the single biggest source of crawling problems on the web. Google’s framing is blunt: unbounded faceted URL spaces harm a site in two ways. Overcrawling, because “the crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. will typically access a very large number of faceted navigation URLs before the crawlers’ processes determine the URLs are in fact useless,” and slower discovery, because “if crawling is spent on useless URLs, the crawlers have less time to spend on new, useful URLs.” Evidence for this claim Google documents infinite faceted URL spaces as a source of overcrawling and wasted resources. Scope: Google recommends preventing crawl when faceted URLs do not need to be indexed. Confidence: high · Verified: Google: Managing faceted navigation Gary Illyes has put faceted navigation at roughly half of all overcrawl issues reported to Google, and described the accidental version vividly — “exploding your URL space from a balmy 1000 URLs to a scorching 1 million.”

I won’t fully relitigate facets here — faceted navigation has its own deep dive — but the category-page decision is worth stating crisply: block the noise, index the signal.

  • Block (robots.txt): sort-order variants (?sort=price), session/tracking parameters, and filter combinations that just re-slice the same products. Google endorses this directly: “Oftentimes there’s no good reason to allow crawling of filtered items… instead, allow crawling of just the individual items’ pages along with a dedicated listing page that shows all products without filters applied.”
  • Canonical to the base category: low-search-demand filter combos you want navigable but not separately indexed. Note canonical is the slower-acting tool — Google says it “may, over time, decrease the crawl volume” — because each variant still has to be crawled before the signal lands.
  • Index + optimize: filter combinations with genuine search demand (e.g. a “red running shoes” facet that people actually search). Those deserve a real URL, a unique title and H1, a sentence of unique copy, and a self-referencing canonical. Do the keyword research first — don’t index facets on a hunch.
  • 404 the dead ends: return a 404 for empty or nonsensical filter combinations so they don’t accumulate as crawlable junk.
TIP Inventory the URL patterns before choosing controls

Paste a representative set of category URLs to separate filter, sort, pagination, tracking, and unknown parameters with my free Faceted Navigation Auditor Free

  1. Export or crawl a representative sample of parameterized category URLs.
  2. Classify the parameter names before writing robots, canonical, or noindex rules.
  3. Use search demand, server logs, and index coverage to make the final per-pattern decision; the tool does not crawl or observe Google.

A note on the deprecated control: the Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool is gone (sunset April 2022). Google handles parameters automatically now and said only about 1% of the tool’s configurations were doing anything useful. If you were relying on it to tame facets, that lever no longer exists — robots.txt and canonicals are the replacement.

Pagination in 2026 — what actually works

This is the section with the most outdated advice floating around, so here’s the accuracy spine:

rel=prev/next is dead. Google confirmed in March 2019 that it had silently stopped using the tags years earlier: “Google no longer uses these tags, although these links may still be used by other search engines.” Do not implement rel=prev/next as your paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. solution — it does nothing for Google. (It’s cheap to keep for Bing and others, but it’s not the strategy.)

Do NOT canonical paginated pages back to page 1. This is the mistake that quietly deletes half your catalog from the index. Google’s canonical-mistakes post is explicit: “Specifying a rel=canonical from page 2 (or any later page) to page 1 is not correct use of rel=canonical.” If you do this, the products that only appear on pages 2+ never get indexed. Each paginated page should self-canonical — Google: “Don’t use the first page of a paginated sequence as the canonical page.”

The current model is one of two patterns:

  1. Each paginated page is indexed on its own merits. Give each page a unique URL (?page=2, not a # fragment — “Google ignores fragment identifiers”), a self-referencing canonical, and a sequential <a href> link to the next page so GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. can crawl the chain: “Include links from each page to the following page using <a href> tags.”
  2. A “view all” page as the canonical, if you have one and it loads acceptably. When a single view-all page exists, point the paginated component pages at it. This only works when view-all is genuinely usable — don’t force a 10,000-product page to load for the sake of it.

Infinite scrollInfinite scroll is a loading pattern where content appears automatically as a user scrolls, instead of via numbered pages. Because Googlebot doesn't scroll or click, indexable infinite scroll needs real per-chunk URLs (paginated loading) that update via the History API — otherwise deep content may never be crawled, or worse, get merged into the wrong page. / load-more needs proper JavaScript SEOMaking sure search engines can crawl, render, and index content that depends on JavaScript.: a real paginated URL behind each “page” of results, plus sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. or a Merchant Center feed as a discovery backstop so products aren’t trapped behind a scroll event. And return a 404 for empty paginated results rather than serving a blank indexable shell.

URL structure

Two patterns, pick one and commit:

  • Top-level/laptops/. Maximum proximity to the homepage (a hair more link equity), but it competes with everything else at the root and gets unwieldy at scale.
  • Parent + child/electronics/laptops/. More descriptive, reinforces hierarchy, scales cleanly. This is what most large catalogs use, and it’s the pattern this site uses for clusters generally.

Restructuring later means redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., so the commitment matters more than the choice. Beyond the path: use ?key=value parameters (“Use ?key=value URL parameters rather than ?value, where possible”), never put the same parameter twice (“Googlebot may ignore one of the values otherwise”), and keep session/tracking parameters off your internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. (“Avoid internally linking to temporary parameters, such as session-IDs, tracking codes, user-relative values”). Keep the URL identical across your internal links, sitemap, and canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content..

One more URL-level rule worth baking in: an empty category should noindex or 404 — Google: “If a category has no items, use a noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen.. If your site detects that a category has become empty… consider returning a 404.”

The “thin category” problem — content without stuffing

Here’s where the advice gets nuanced, and where a lot of stores overcorrect into keyword stuffing. The accurate position:

A category page that is only a product grid with no context can be hard for Google to rank. Mueller, March 2019: “When the ecommerce category pages don’t have any other content at all, other than links to the products, then it’s really hard for us to rank those pages.”

But extra content is helpful, not required. Mueller again, on whether the product names alone can carry it: “If the names of the products are clear enough to us to understand… then it’s clear that this is a list of running shoes. You don’t need to put in extra text there.” And on word counts: “We don’t have any limits. There’s no limit… you have to have some information on a page so that we understand what the topic is. But that’s generally very little information.”

The failure mode is the keyword-stuffed footer blob. Mueller calls it what it is: “From our point of view that’s essentially keyword stuffing. So that’s something which I would try to avoid.” His guidance on the right way: “I’d try to stick to really informative content and put that in places where you think that users will be able to see it.”

So the practical rule:

  • Add content only where it earns its place — a short, genuinely useful intro (a couple of sentences answering a purchase-decision question), a buying guide for head-term categories with real informational demand, or an FAQ shoppers actually ask.
  • Put it where users see it (top of the page, integrated), not a hidden wall at the bottom.
  • A small amount of duplicated boilerplate across subcategories is fine — Mueller: “If you’re talking about a very small amount of text then having that duplicated is absolutely no problem.”

I’ll note the honest tension: plenty of SEOs keep adding footer text because it keeps working in their tests — the community’s standing retort is “I’ll stop doing it when it stops working.” My take: that’s a fragile bet against a documented spam signal. If you’re going to add content, make it the kind a shopper would actually read.

Internal linking — the on-ramp job

Category pages are PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. distribution nodes, so treat the links as load-bearing:

  • Link to all products in the category (or paginate so they’re all reachable via <a href>). If you genuinely can’t, a sitemap or Merchant Center feed is the fallback — but on-page links are the primary mechanism.
  • Use real <a href> links, not JS click handlers: “Use <a href> tags when creating links to other content. Don’t use JavaScript events on other HTML DOM elements for navigation.”
  • Link count signals importance. Google: “The more links a page has to it within a site, the higher the relative importance.” Link your best categories from the homepage and from relevant content; link best-sellers up from higher in the hierarchy.
  • BreadcrumbsBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results. in both the UI and as BreadcrumbList schema reinforce hierarchy and give Google clean anchor-text context.

Title tags, meta descriptions, H1

  • Title: include the category name (your primary keyword). Templates like [Category] — [Brand] or [Category]: [N] Products — [Brand] work. For paginated pages you can leave titles as-is (Google tries to recognize sequences) or append — Page N.
  • Meta descriptionsThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through.: programmatic generation is fine and encouraged at scale — lean on purchase-decision language (price range, number of products, brands).
  • H1: parallel the title; one clean H1 is semantically tidiest, though multiple H1s won’t tank you per Mueller.

Structured data

  • BreadcrumbList — yes. This is the structured data that matters for category pages: it helps Google “understand the hierarchy of pages on your site” and drives breadcrumb display in the SERP. Google’s guidance is to mark up “a typical user path to a page, instead of mirroring the URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly..”
  • Product rich-result markup — no. Don’t put Product rich-results markup on a multi-product listing page; Google’s product rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. support single-product pages, not listings.
  • CollectionPage / ItemList — optional. No native Google rich result today, but they can aid machine-readability of the list. FAQPage can be worth it if you have genuinely useful, naturally integrated Q&A.

Monitoring

  • GSC Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. — watch for a ballooning count of parameter/facet URLs in the excluded buckets; that’s your facet strategy leaking.
  • Crawl Stats — if Googlebot is spending disproportionate time on parameter URLs, tighten robots.txt or canonicals.
  • Rich Results Test / URL Inspection — validate BreadcrumbList and confirm how a category page actually renders and indexes.
  • Site Auditcrawl depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops., orphaned products, internal-link count per page.

Where this sits

Category page SEOCategory page SEO is the practice of optimizing an ecommerce listing page (also called a PLP or collection page) — the page that groups products under a classification like /shoes/running/ — so it ranks for broad commercial queries and routes crawlers and link equity to the products beneath it. is one piece of ecommerce site structure. The facet decisions above are covered in full in faceted navigation; for the page type on the other end of the link — the individual product page — see product page SEOProduct page SEO is the practice of optimizing an individual product detail page (PDP) so it ranks in organic search and earns rich results. It blends unique product copy, structured data, variant canonicalization, image SEO, and customer reviews — but the structured data earns rich results and eligibility for free product listings, it doesn't make the page rank.; and for how the whole hierarchy fits together, ecommerce site architectureEcommerce site architecture is how an online store's pages — categories, subcategories, and products — are organized and linked. Google reads the link structure (not the URL path) to work out hierarchy and relative importance, so a logical pyramid plus good internal links matters more than how deep the URLs look..

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.