# PLP in ecommerce: what a product listing page is

> What a PLP is, which pages count as one, how Google crawls them, and how to handle pagination, filters and sorting without losing product pages.

URL: https://clione.ai/glossary/plp/
Lang: en

PLP is the ecommerce acronym for any page that lists products: the "Trail running shoes" category, the sale collection, your store's search results. Its counterpart is the [PDP](/glossary/pdp/) ([product detail page](/glossary/product-page/)), the [product page](/glossary/product-page/). The PLP does not sell anything by itself, but it decides two things that do matter: **how a shopper gets to each product page and how Google does**. A badly paginated category, or one with uncontrolled filters, can leave product pages undiscovered and fill the crawl with URLs that add nothing.

## How it works

**Which pages are PLPs.** All the ones that show a list of products linking to their product pages. In a Shopify theme, the collection template is the one that renders the page listing all the products in a collection, and it supports filters, sorting through a URL parameter (`sort_by`) and pagination.[^shopify-collection-template] In Google Analytics 4, viewing one of these lists is measured with the `view_item_list` event, and picking a product from it, with `select_item`.[^ga4-ecommerce] A [category page](/glossary/category-page/) is the most common case, but not the only one.

**How Google uses them.** For Google, a store's structure runs from the menu to the categories, from the categories to the subcategories and from there to every product page. The more [internal links](/glossary/internal-linking/) a page receives, the more relative importance it has within the site, and **if categories do not link directly to all their products, [Googlebot](/glossary/googlebot/) may not find them all by crawling alone**. That is why it asks for real links, with `<a href>`, and not navigation that depends on JavaScript. If you cannot link everything, it offers an alternative: an [XML sitemap](/glossary/xml-sitemap/) or a [feed](/glossary/product-feed/) from [Google Merchant Center](/glossary/google-merchant-center/).[^google-site-structure]

**Pagination.** A big category does not fit on one page: Shopify, for example, caps a collection at 50 products per page and requires pagination so all of them stay reachable.[^shopify-collection-template] Google describes three ways to split up a long list (pagination, a "load more" button and infinite scroll) and warns that **its crawlers do not click buttons** and generally do not trigger JavaScript functions that need a user action. What it recommends: a URL of its own for each page, for example with `?page=2`, no `#` fragments, and links from each page to the next.[^google-pagination] It no longer uses the `rel="next"` and `rel="prev"` tags.[^google-pagination]

**Filters and sorting.** [Faceted navigation](/glossary/faceted-navigation/) lets the visitor change how a page's products are shown: by size, by color, by price. Each combination can generate a new URL, and since the [crawler](/glossary/web-crawler/) does not know whether a URL is useful until it visits it, it **ends up visiting a huge number of filter URLs before discarding them**, with less time for the new pages that do matter.[^google-faceted] To keep variations of the same list out of the index, Google suggests marking them [noindex](/glossary/noindex/) or discouraging their crawling with [robots.txt](/glossary/robots-txt/).[^google-pagination] For filters it adds more: keep a fixed order of parameters and return a 404 error when a combination has no results, instead of redirecting.[^google-faceted]

**Markup.** [Product](/glossary/product-schema/) markup for [merchant listings](/glossary/merchant-listings/) is for the product page, not the PLP: Google's product results accept only pages centered on one product or its variants.[^google-merchant-listing] What a PLP can carry is [ItemList](/glossary/itemlist/). Google offers in beta, only in countries of the European Economic Area, a carousel for several verticals, products among them, which is enabled with ItemList on a summary or category page that links to at least three product pages on the same domain.[^google-carousels]

## In a store

A **fictional example** of how the URLs of a single category multiply. A sporting goods store has a "Trail running shoes" category with 120 models, 50 per page, a size filter with 9 values, a color filter with 6 and 4 ways to sort.

| URL                                             | What it is                     | What to do with it                                                                                  |
| ----------------------------------------------- | ------------------------------ | --------------------------------------------------------------------------------------------------- |
| `/trail-running-shoes`                          | The PLP                        | Indexable, with a [canonical](/glossary/canonical-url/) pointing to itself                          |
| `/trail-running-shoes?page=2` and `?page=3`     | Pages 2 and 3 of the same list | Indexable, each with its own canonical, linked in order[^google-pagination]                         |
| `/trail-running-shoes?size=10`                  | The list filtered by size      | `noindex` or a `robots.txt` block, unless you decide that list deserves to rank[^google-pagination] |
| `/trail-running-shoes?size=10&color=red`        | Two filters combined           | Same, and with the parameters always in the same order[^google-faceted]                             |
| `/trail-running-shoes?sort_by=price-descending` | The same list, sorted by price | `noindex` or a `robots.txt` block[^google-pagination]                                               |

The math is simple: 9 sizes times 6 colors times 4 sort orders gives **216 combinations of a single category**, not counting each one's pages, and all of them show products that are already in the main list. The decision that matters is which of those lists deserve to be an entry page from Google and which are only a convenience for someone already inside.


That page 2 and later pages of a category should point their canonical to the first to avoid [duplicate content](/glossary/duplicate-content/). Google says the opposite: **do not use the first page of a paginated sequence as the canonical**, give each page its own [canonical URL](/glossary/canonical-url/).[^google-pagination] If page 2 points to page 1, the product pages that appear only on page 2 lose their path of links. What you do not want indexed are the filter or sort variations, not the pages of the list.


## How to check it

1. **Open your biggest category and go to the second page.** If the URL changes (for example, `?page=2`) and a normal link leads to it, Google can follow it; if there is only a button that loads more products without changing the URL, its crawlers will not click it.[^google-pagination]
2. **Look at page 2's canonical** in the source code: it has to point to page 2, not page 1.[^google-pagination]
3. **Apply a filter and a sort and look at the resulting URL.** Check whether it carries `noindex` or whether its pattern is blocked in `robots.txt`, and whether the parameters always come out in the same order.[^google-pagination][^google-faceted]
4. **Check that each product in the list links to its product page with `<a href>`**, and that no product page is left without a path of links from some category.[^google-site-structure]
5. **Review what markup the PLP carries.** If it carries a [Product](/glossary/product-schema/) block as if the page were a product, it is surplus; the markup for Google's beta carousel (European Economic Area only) is ItemList.[^google-merchant-listing][^google-carousels]

## Related concept: category page

**Every category page is a PLP, but not every PLP is a category page.** The category is a stable PLP, part of the store's structure, which Google expects to find linked from the menu.[^google-site-structure] Internal search results and filtered lists are PLPs too, but they are variations generated on the fly that you normally do not want indexed.[^google-pagination] They share problems (pagination, links to the product pages), and it is the category that is worth working on with its own copy and its own [meta description](/glossary/meta-description/).

To keep going, the [catalog and entities reading path](/learn/catalog-and-entities/) lays out the rest of the terms, and the guide to [what an AI crawler sees in your store](/guides/what-an-ai-crawler-sees/) explains how to check what gets through from each page.
