Collections

What Is a Product Listing Page? A Shopify Collection Decision Guide

A product listing page (PLP) is a page that displays several products at once so a shopper can compare, filter, and choose one to open. On Shopify, the usual PLPs are collection pages and search results. A product page sells one product. A listing page decides which products a shopper even sees.

A product listing page displays several products; a PDP sells one

A product listing page is a discovery surface. Each product appears as a card, usually with an image, title, price, and a link to the product detail page (PDP). The listing does not complete the sale. It routes the shopper.

A PDP is the page for one product. It holds the gallery, variant picker, price, description, and add-to-cart button. The listing helps the shopper scan and narrow a set. The product page handles the decision to buy one item.

That split matters for diagnosis. A weak PDP can tank conversion even when the product is easy to find. A strong PDP can still underperform if a filter, sort, or grid position keeps in-stock buyers from reaching it. Fix the surface that actually failed.

Do not treat the listing as a second homepage. A homepage can feature a few products, but its job is store navigation and campaigns. A PLP's job is to make a set of products scannable and filterable. Visual rules for photos and grid consistency live in visual merchandising for ecommerce. This page covers what the listing is and how to tell if access, not imagery, is the problem.

Which Shopify surfaces are PLPs and which are not

Shopify does not label a page type "product listing page" in the admin. Merchants still need a practical map, because reports and themes treat these surfaces differently.

SurfaceIs it a PLP?What it shows
Collection pageYesProducts assigned to that collection, in the collection's sort order, with theme filters if enabled
Search resultsYesProducts (and sometimes pages or articles) matching the query, with search filters if the theme supports them
Homepage featured collectionNo, a teaserA limited slice of one collection, not the full browsable set
Product page recommendationsNoA small related set on a PDP, not a listing the shopper searched or filtered
Cart and checkoutNoItems already chosen

Shopify's theme architecture treats a collection template and a search template as separate listing templates. Both can render a product grid. Both can show filters when the store uses Shopify Search & Discovery or an equivalent filter app, and the theme supports filtering. Online Store 2.0 themes expose collection and search filtering through the theme editor when that app or the theme's filter source is connected.

A collection is not the same thing as a PLP. The collection is the product set and its default order in Shopify admin. The PLP is the page shoppers see: grid, filters, sort control, pagination or infinite scroll, and the product cards. You can have a well-built collection and a listing that still hides the products that should sell. How to choose which SKUs belong in the set is assortment planning. This guide assumes the set already exists and asks whether shoppers can reach the right products inside it.

Filters, sort, and position are different controls

Three controls change what a shopper sees on a Shopify PLP, and they fail in different ways.

  • Filter: removes products that do not match a value, such as size, color, price, availability, or a custom metafield. A missing or wrong filter value hides a product from everyone who uses that filter.
  • Sort: reorders the products that remain. Shopify collections support manual order and automatic sorts such as best selling, newest, price, and alphabetically, depending on the collection settings.
  • Position: where a product sits in the grid after sort and filter. Position 1 is the first card. A product on page 2 is still "in the collection" and still easy to miss.

Shopify's collection sort options are set per collection in the admin. Manual sort lets you pin products. Best-selling sort follows Shopify's sales-based ordering, which lags new or low-volume products that convert well among the people who do find them. Availability filtering, when enabled, can also remove sold-out items from the grid so they do not occupy early positions.

What shoppers need from product cards, filters, and sorting

Shoppers use a product listing page to answer three questions before they open a PDP: is this the kind of product I want, is it available in a way I can buy, and is it worth a click compared with the cards next to it?

According to Baymard Institute's 2025 Product List UX benchmark, 58% of desktop ecommerce sites and 78% of mobile ecommerce sites have a "poor" to "mediocre" Product List UX. The same benchmark says product lists, and their filtering and sorting tools, decide how easy it is to browse the catalog. The practical bar for a Shopify collection is narrower than a full UX redesign.

  • The card shows enough to compare: image, title, price, and a clear sold-out or low-variant state if the theme supports it. Photo rules belong in the visual merchandising guide, not here.
  • Active filters are visible and removable. A shopper who filtered "In stock" and "Size M" should see both chips, not a silently shorter grid. Baymard's same benchmark says 20% of sites do not display applied filters in an overview, which makes it harder to confirm what is selected.
  • Sort labels match the order. If the control says "Best selling" and the first row is a manual pin, the label is lying.
  • In-stock products are not buried under out-of-stock cards unless you have a reason to show them. Confirm that on the live default grid.
  • Check your own filter-usage data before you assume the default grid is what most shoppers see. If few sessions apply a filter, a product that only appears after several filters is easy to miss on the default path. Treat that as a hypothesis until the store's filter events confirm it.

Placement across homepage, collection, search, and ads is a separate decision. Use ecommerce merchandising decisions when you are choosing which discovery slot a product should occupy. Stay on this page when the slot already exists and you need to know whether the listing itself is blocking the click.

Find a hidden high-converter using collection and SKU signals

A hidden high-converter is an in-stock product that converts well among people who reach its PDP, but looks hard to reach on the collection because of filter values, sort, or grid position. Collection revenue cannot prove that. Neither can a total product-session count: standard product sessions do not say which collection or grid position sent the visit, and other traffic sources can move that total. Confirm the hide on the live listing, then attribute discovery only with a collection click, referrer, or event.

Pull four signals, then stop

Work one collection at a time. Pick a collection shoppers can actually reach from navigation or campaigns, not a tiny seasonal page you rarely link.

  1. Live position and filter exclusion. Open the collection with no filters and note the product's page and row, then apply the one filter you suspect. This is the exposure record. Shopify's standard behavior reports do not provide a collection-URL conversion view, and they do not show which card was seen or clicked.
  2. Product conversion rate for each SKU in that collection. Calculate it as orders (or add-to-carts, if that is your leading signal) divided by sessions to that product. The formula and its limits are in the product conversion rate guide. Do not rebuild it here. Those sessions are not collection-attributed.
  3. Relative position or exposure: manual rank, page number on the default sort, and whether the product is excluded by the availability filter or a common filter such as size or product type. This is what you observe on the page, not what product sessions prove.
  4. Collection-attributed discovery, only if you already store it. Count visits to that collection URL, or clicks from that collection to the product, only from storefront analytics or a custom event. Shopify's page_viewed customer event can expose the page URL in event context, but it is not a native collection conversion report. Total product sessions are not a substitute. Stock cover still belongs in the read: available units versus recent daily sales. A sold-out SKU is not a hidden high-converter. It is a stock problem.

Shopify's native reports do not give you a single screen that joins collection position, filter usage, product conversion rate, and days of cover. The Sessions by landing page behavior report shows which page a session started on. Shopify's help page for that report does not describe a conversion rate for a collection URL, and a later visit to the collection is not the same thing as a landing page. Product reports can show sales by product. Filter interaction is usually missing unless you add an analytics event, a heatmap, or an app that records collection and product performance together. A total product-session figure is an unverified proxy for discovery from that collection. Treat a joined view as an estimate unless the same date range includes a collection click, referrer, or other event that ties the visit to that listing.

A practical join looks like this. Example numbers only, not a benchmark:

ProductDefault positionProduct conversion rateUnits availableRead
Trail Jacket11.1%40Visible on the default grid, converts below peers. Do not promote it further until the PDP is checked.
Rain Shell14 (page 2)4.6%22In stock and converts well, but sits late in the default grid. Candidate for a position or sort test. Do not read total product sessions as proof of low collection exposure.
ParkaHidden when "In stock" is on3.9%0Not a listing bug. It is unavailable. Fix stock or remove it from the default grid.
FleeceOnly under Product type = Layer5.1%18High converter, but only inside that filtered view. Check whether shoppers use that filter before treating the default path as a hide.

The Rain Shell and the Fleece are the two patterns this page is for. The jacket at position 1 is a conversion problem on the PDP or the offer, which is a different workflow. The parka is a stockout, defined as zero available units, not a filter mystery.

How to tell a filter hide from a position hide

Open the collection in a private browser with no filters applied. Note the product's page and row. Then apply the one filter you suspect, such as availability or a size that represents a large share of variants.

  • If the product is on page 2 or later with no filters, position or default sort is the constraint you can see. Filter-usage data is optional until you claim shoppers never apply a filter.
  • If the product disappears when a popular filter is applied, check its tags, product type, options, and metafields against the filter source in Search & Discovery. A blank size option or a tag typo removes it from that filter's result set.
  • If the product only appears after a filter, the unfiltered path does not show it. That is an access problem on the default view, even if the filtered view converts well. Confirm how often that filter is used before you treat it as the path most shoppers take.
  • If product sessions are already high and product conversion rate is low, the PDP or the offer is the next place to look. Those sessions still do not prove which collection or slot produced them.

Product conversion rate is sessions to the product that become orders, not collection sessions that become orders. Mixing those two rates will make a buried product look like a poor converter. Read the definition in product conversion rate before you rank SKUs. As ecommerce merchandising decisions notes, product sessions do not prove slot exposure.

Skymetrics can sit in this step if you already use it: compare collection traffic with SKU conversion, position or exposure, and stock cover, then pick one filter, sort, or card hypothesis. It does not replace the storefront check. You still open the collection and confirm the product is actually missing from the default view or the filtered view.

Test one discovery change without confusing exposure with conversion

Change one thing. A filter fix, a sort change, and a card redesign at the same time will move clicks and conversion together, and you will not know which did the work.

Good single hypotheses for this diagnosis:

  • Move one in-stock high-converter from page 2 into the first eight positions on the default sort, and leave filters alone.
  • Fix one broken filter value so the product appears when shoppers select a real option, such as Size M, and leave sort alone.
  • Turn on or correct an availability filter so sold-out cards stop occupying the first screen, and do not also reorder the in-stock grid in the same week.
  • Add the one spec shoppers filter on to the product card only if you have already confirmed they cannot tell products apart. That is a card change, so do not combine it with a sort test.

Write the hypothesis as observed position first, attributed discovery second. Example: "If Rain Shell moves from position 14 to position 3, clicks or visits attributed to this collection should rise. Total product sessions may also rise, but that total is only an unverified proxy, because ads, search, and other collections can change it. Product conversion rate should stay near 4.6% unless the newly attributed visitors are a worse fit." A drop in product conversion rate after a position boost is often a mix shift, not proof the product got worse. A flat total product-session count is not proof the listing change failed.

What to record before and after

  1. Date range, collection handle, and the exact control you changed.
  2. The product's position with no filters, and with the one filter you care about, before and after. Screenshot the grid. That is your exposure record.
  3. Any collection click, referrer, or custom event that attributes a product visit to this collection, if you already store that event. Do not fill this row from a native online-store conversion report. Record total product sessions only as an unverified proxy. If that proxy does not rise, you cannot conclude the listing change failed to increase discovery. If it does rise, you still cannot conclude this collection caused it.
  4. Product conversion rate before and after, with the minimum session count you are willing to trust. A few dozen sessions is not a verdict. Do not read that rate as evidence of slot exposure.
  5. Stock available on the start date. If the SKU sells out mid-test, stop. You measured availability, not the listing.

Shopify does not attribute collection-grid position inside the standard sales reports. If you need position-level proof, note it manually, use a theme section that you can screenshot, or run a proper experiment in a testing tool and keep the result log outside the merchandising spreadsheet. Without a collection click, referrer, or event-level attribution, do not treat a change in total product sessions as proof the listing change affected discovery. Do not treat a one-week sales bump during a promotion as evidence the sort worked.

Treat search results as a second PLP, not a leftover. If the same SKU is easy to find in a collection and missing from search because of a title or tag, fix search separately. Do not solve it by pinning the product on every collection.

When not to touch the listing

Leave the PLP alone if the product converts poorly once people open it, if it is out of stock, or if it is absent from the collection on purpose. A listing test will not repair a weak offer, a missing variant, or a bad assortment. Send those to the PDP, to replenishment, or to assortment planning.

If the collection's default order is the real argument, decide exposure in the merchandising workflow, then come back here only to confirm the page shoppers see matches the order you set. The listing page is the surface. It is not the strategy.