# Ecommerce Category Page: What It Is and What It Needs

> What a category page is, how it differs from a filter or internal search results, how Google reads it and how to check it.

URL: https://clione.ai/glossary/category-page/
Lang: en

In an online store, the category page is the one a shopper opens when they do not yet know which model they want: "Camera backpacks", "Teapots", "Trail running shoes". It is not a blog category or the "category" field you fill in on the store's admin panel, although it starts there; it is **the branch of the catalog published as a page**. It matters for two reasons. It is the page that can answer a generic search, where a single [product page](/glossary/product-page/) does not fit, and it is the route Google takes to reach each product. On Shopify it is called a collection; in the trade, a category page is the most common kind of [PLP (product listing page)](/glossary/plp/).

## How it works

**A node in the structure.** Google tries to understand a store by how its pages link to each other: the number of links it has to follow to reach a page and the number of links the page receives help it infer the page's relative importance. Its recommendation for an ecommerce site is a chain: **from the menu to the categories, from the categories to the subcategories and from the subcategories to every product page**. If a category does not link directly to all of its products, [Googlebot](/glossary/googlebot/), Google's [crawler](/glossary/web-crawler/), may not find them by crawling, because in general it does not type searches into the store's search box. The links have to be `<a href>`, not JavaScript events.[^google-site-structure]

On the platform, the category page goes by another name. On Shopify, a [collection](/glossary/shopify-collection/) groups products by category, by theme or by customer intent, it appears in the store as a page with a gallery of its products, each image leads to the matching [product page](/glossary/product-page/), and the store makes it visible by adding it to its menus.[^shopify-collections] Which categories exist and how they nest is decided by the store's [product taxonomy](/glossary/product-taxonomy/); the category page is that taxonomy made visible.

**What the page can declare.** [Breadcrumbs](/glossary/breadcrumbs/) show the page's position in the site hierarchy, and their BreadcrumbList markup helps Google place the page's information in results. According to its documentation, that result appears on desktop.[^google-breadcrumb] [Product](/glossary/product-schema/) markup, on the other hand, is not for the category: product [rich results](/glossary/rich-results/) only support pages focused on one product or its variants, "shoes from our store" is not a specific product, and Google recommends marking up product pages rather than pages that list products or a category.[^google-merchant-listing] What a category can carry is [ItemList](/glossary/itemlist/): Google offers a beta carousel, available only in the European Economic Area, that is triggered by that markup on a summary or category page that links to at least three entities on your site, and products are among the searches where it appears.[^google-carousels]

**When it empties.** A category with no products gives nothing to whoever lands on it. Google asks you not to link to it, or at least not to index it, with a [`noindex`](/glossary/noindex/) tag, and if the store removes it from its search and navigation, to consider returning a 404 error.[^google-url-structure]

## Three lists, three intents

A store generates many pages that look like categories. They are told apart by who arrives at them and why:

| List                    | Example URL                     | Who arrives and what they want                                | What to do with it                                                                                                      |
| ----------------------- | ------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Category                | `/camera-backpacks`             | Someone searching "camera backpacks" who wants to see options | Indexable and linked from the menu[^google-site-structure]                                                              |
| Filtered list           | `/camera-backpacks?capacity=25` | Someone already inside who is narrowing the list              | Usually out of the index; Google suggests blocking the crawl of filters you do not need in its results[^google-faceted] |
| Internal search results | `/search?q=backpack`            | Someone already inside who types what they are looking for    | Out of the index: in general, Googlebot does not run searches on your search box[^google-site-structure]                |

The line that separates the first row from the other two is drawn by Google in its spam policies: among the examples of doorway abuse is **creating near-[duplicate pages](/glossary/duplicate-content/) that look more like search results than a clear, navigable hierarchy**.[^google-spam] If a filter deserves to rank, such as "camera backpacks with laptop compartment", what you should do is turn it into a real subcategory, with its URL, its menu link and its text, not index every combination of filters. The details on filters are in the [faceted navigation](/glossary/faceted-navigation/) entry.

## In a store

A **made-up example**: a photography store with the branch Photography › Bags and backpacks › Camera backpacks. What its category page carries and what each part is for:

| Part of the page | What it carries                                                                    | What for                                                      |
| ---------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| Visible title    | "Camera backpacks"                                                                 | Matches the generic search the page wants to answer           |
| Intro text       | Two or three sentences on how to choose: capacity, side access, laptop compartment | Helps whoever does not yet know which model they want         |
| Subcategories    | Links to "Laptop backpacks" and "Hiking backpacks"                                 | Continues the chain of links toward the product pages         |
| Product list     | Each product linked to its product page with `<a href>`                            | So Googlebot finds every product page[^google-site-structure] |
| Breadcrumbs      | Visible on the page and marked up                                                  | Place the page in the hierarchy[^google-breadcrumb]           |

The breadcrumb markup for that page:

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Photography",
      "item": "https://store.example/photography"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Bags and backpacks",
      "item": "https://store.example/photography/bags-and-backpacks"
    },
    { "@type": "ListItem", "position": 3, "name": "Camera backpacks" }
  ]
}
```


Believing that the folders in the URL tell Google what the store's hierarchy is, so that putting `/photography/backpacks/` is enough for it to understand that one hangs from the other. Google says that **in general it does not look at URL structure to understand a site's structure**: it analyzes the links between pages, and the more [internal links](/glossary/internal-linking/) a page receives, the more relative importance it gives it.[^google-site-structure] A category that is not linked from the menu or from its parent category is, to Google, outside the structure, even if its URL says otherwise.


## How to check it

1. **Reach a product page from the home page using only the menu and the categories**, and count the clicks. If a product can only be reached with the internal search, Google may not find it.[^google-site-structure]
2. **Open the code of a category** and check that every product in the list links to its product page with `<a href>`.[^google-site-structure]
3. **Look for an empty category**, for example one from a past season: it should carry `noindex` or, if it no longer exists in the store, return a 404.[^google-url-structure]
4. **Run the category through the [Rich Results Test](/glossary/rich-results-test/).** It should detect the breadcrumbs and, if you opt in to the carousel, the ItemList; it should not find a Product block that treats the category as a product.[^google-breadcrumb][^google-merchant-listing]
5. **Check with the URL Inspection tool in [Search Console](/glossary/google-search-console/)** one URL from each row of the three-lists table, and confirm that Google treats each one as you decided.

## Related concept: PLP

A PLP is any page that lists products and links to their product pages: the category, the sale collection, the internal search results. **Every category page is a PLP, but not every PLP is a category page.** The difference is one of function: the category is a stable piece of the store's structure, with its place in the menu and a search to answer, while filtered lists and search results are generated on the fly for someone who is already inside. Pagination, filters and sort order affect all of them, and they are explained in the PLP entry.

To go further, the [catalog and entities reading path](/learn/catalog-and-entities/) orders the rest of the terms, and the guide on [what an AI crawler sees in your store](/guides/what-an-ai-crawler-sees/) explains how to check what each page delivers.
