
Most PrestaShop merchants pour their energy into product pages and treat category pages as a default they never touch. That is backwards. For a huge share of stores, the category page is the first page a visitor lands on — Google ranks category URLs for broad commercial terms ("running shoes", "garden hoses", "office chairs"), and a shopper who arrives there is comparing, not yet committed. The product page closes the customer you already convinced; the category page decides whether they ever reach a product page at all. This guide is about the on-page craft of that grid: layout, the product card, sort order, how many products to show, and how customers page through them — all in PrestaShop's actual back office and template structure, not generic e-commerce theory.
Two big topics that live on the category page have their own deep treatments, and this post deliberately hands them off rather than half-cover them: faceted filtering (the filter sidebar itself) is covered in helping customers find products in large catalogs, and the heading at the top of the page is its own conversion lever in why your category H1 should not be your category name. The category tree behind the URLs — depth, naming, SEO — is in PrestaShop category structure. Here we focus on the layout and listing mechanics.
Last reviewed June 2026 — settings paths verified against PrestaShop 1.7 through 9 (Classic and Hummingbird themes).
What PrestaShop's category page actually is

Before changing anything, it helps to know what you are editing. A category page in PrestaShop 1.7 through 9 is rendered by the CategoryController, which extends the listing logic in ProductListingFrontController. The visible grid comes from your theme's category.tpl, which includes product-list.tpl and renders each item through the product "miniature" template catalog/_partials/miniatures/product.tpl. Three pieces of state travel in the URL and the controller reads them on every request:
- ?order= — the sort, e.g. ?order=product.price.asc or ?order=product.name.desc.
- ?page= — pagination, e.g. ?page=2.
- The faceted filters — handled by the ps_facetedsearch module, which adds the filter state to the URL, usually through query parameters.
Knowing this matters because nearly every "best practice" below is a setting you change in the back office or a small template touch — not a rebuild. So what does that mean for you? You can fix most of what loses category-page sales without a developer invoice, and the changes survive theme updates because you are working with PrestaShop's own listing system rather than against it.
Layout: grid, list, and the column count that actually fits your products
PrestaShop's Classic theme (1.7 onward) ships a grid layout only — the old 1.6 grid/list toggle was dropped, so a true list view now comes from a theme that builds it in or a dedicated module, not a built-in URL switch. The grid is right for the large majority of catalogues because it lets a shopper scan many products in one eyeful. But the choice is not aesthetic — it follows from what sells the product:
- Grid, 3–4 columns: when the image does the selling — fashion, jewellery, decor, food. The photo is the hook, so give it room and keep the card text minimal underneath.
- List view: when the spec sells — electronics, parts, industrial supplies, B2B. A list row has space for the short description, key attributes and stock, so a buyer can compare without opening every product.
- Match the view to the catalogue: on the Classic theme that means committing to the grid and tuning the card for it; if your products genuinely need a list layout, that is a theme/module decision worth making deliberately. The mistake is a view that fights your catalogue — a server-parts shop showing image tiles with no specs, or a fashion shop crammed into dense rows, both bury the deciding information.
On column count, the practical PrestaShop reality is that the number of columns is governed by your theme's CSS grid (Bootstrap column classes in product-list.tpl), not a back-office dropdown — so "show 4 columns instead of 3" is a small theme/CSS change, ideally in your child theme so an update doesn't overwrite it. Resist going wider than four on desktop: past that, images shrink to the point where they stop selling.
The product card: every element earns its place or gets cut
The single tile (the "miniature") is where the category page does its persuading, and PrestaShop renders it from catalog/_partials/miniatures/product.tpl. A card that converts shows a tight, deliberate set of elements — and nothing that adds noise:
| Card element | Keep it because… | Watch out for… |
|---|---|---|
| Product image | It is the primary buy signal in a grid; a second image on hover (swap to a lifestyle/back shot) lifts engagement cheaply. | Inconsistent aspect ratios make the grid look broken — crop to one ratio. |
| Name | Must be readable and clickable; truncate long names to one or two lines so cards stay even height. | Names that wrap to three lines push prices out of alignment across the row. |
| Price (with the old price struck through) | The discount is the conversion driver on many tiles; PrestaShop shows the "regular price" crossed out automatically when a specific price/discount applies. | Showing only the final price hides the deal — make the saving visible. |
| Rating stars | Social proof at the scan stage; worth enabling if you collect reviews. | Empty/zero-star widgets on products with no reviews look worse than none. |
| "Add to cart" or "Quick view" | Lets a decided shopper act from the grid; quick view shows attributes without leaving the page. | A bare "Add to cart" on products that need a size/colour choice just sends people to an error. |
| Stock / availability flag | An honest "Last few" or "Out of stock" prevents the worst category-page moment: loving a product, clicking, finding it gone. | Surfacing stock you can't fulfil; tie it to real quantity. |
The discipline is subtraction. Badges for "new", "sale", "free shipping", flags, countdowns and labels each feel useful in isolation; stacked on one tile they turn the grid into visual static and slow the page. Pick the one or two that match your strongest sales argument and drop the rest.
Sorting: pick a smart default, then offer few options
The default sort is one of the highest-leverage settings on the whole page because most shoppers never change it — whatever order you ship is the order they judge you by. PrestaShop sets the catalogue-wide default under Shop Parameters → Product Settings ("Default order by" / "Default order method"), and the front-office sort dropdown writes the choice into the ?order= parameter. Your options, and when each should be the default:
[screenshot: the Product Settings panel where "Default order by", "Default order method" and "Products per page" all live on one screen]
- Relevance / position (your curated order): the right default for most categories — it lets you put bestsellers and high-margin products at the top, set per category by dragging products in Catalog → Categories. Your chosen sorting still applies after filters are selected.
- Price: low to high: the most-used manual sort after the default; price-sensitive shoppers reach for it first, so make sure it's present.
- Price: high to low: useful in premium categories where customers expect quality to cost more.
- Newest first (by date added): right as the default in fast-rotating categories — fashion drops, new tech.
- Best selling / sales: social proof made visible; strong in categories where "popular" is a real signal.
Cap the dropdown at roughly four to six choices. Every extra sort option is a decision you are asking the shopper to make instead of shopping, and the marginal ones ("name Z–A") almost never get used. A wrong default, though, can cost you sales silently: a "price low to high" default leads with your cheapest, lowest-margin items and trains visitors to see your store as the bargain bin.
Products per page, and how shoppers move through the rest
How many products you show before a break — and how the shopper gets to the next batch — is set under Shop Parameters → Product Settings as "Products per page" (the PS_PRODUCTS_PER_PAGE value); some themes or modules may also expose a per-page selector in the front office, but the native control is this back-office products-per-page setting. The three ways to handle "more products than fit":
| Approach | Pros | Cons | Best for |
|---|---|---|---|
| Pagination (numbered pages, the PrestaShop default) | Indexable ?page= URLs, cache-friendly, footer is reachable, shopper keeps a sense of "where am I" | Each click is a full page change | The safe default for almost every PrestaShop store |
| "Load more" button | Smooth like infinite scroll but the shopper stays in control and the footer is reachable | Needs a module or theme JS; deeper items aren't separate URLs unless handled carefully | Long visual catalogues where flow matters |
| Infinite scroll | Feels modern, zero clicks | Footer becomes unreachable, no bookmarkable position, and lazily-loaded products are harder for search engines and on-page caching to handle | Rarely the right call for a transactional store |
For PrestaShop specifically, pagination is the safe default precisely because it produces real, indexable URLs (/category?page=2) that play nicely with full-page caching and let Google reach your deeper inventory. If you want the smoother feel, a "load more" button is the better compromise than infinite scroll — keep the footer reachable and the position bookmarkable. On products-per-page, 24 to 48 suits most catalogues; very high counts (96+) bloat the page weight and hurt load time, which on a category page directly hurts the bounce rate.
The intro text: a short paragraph, not a wall, and not a filter
A category page should carry a unique block of text — but it is easy to overdo. The pattern that respects both shoppers and search engines: a short intro (two or three sentences) at the top above the grid, and, if you want more for SEO depth, a longer description below the products where it won't push the grid under the fold. PrestaShop gives you exactly two fields for this in Catalog → Categories → [edit]: the main Description field and, in current versions (8.1+), a separate Additional description field whose own help text says it is "usually displayed after the product list on category page" — use them for top and bottom respectively. Keep the top intro to roughly 100–200 words across both, written for a human first.
[screenshot: the category edit screen with both the main Description and the Additional description fields visible, so the top-vs-bottom split is obvious]
One firm boundary: the text block is not the place to substitute for navigation. If shoppers can't narrow a big category, the fix is the filter sidebar, not a paragraph of links — see the faceted filter guide. And the heading above that intro deserves its own thought; a category named "Shoes" can have an H1 that actually sells, as covered in custom category H1.
When the catalogue is large: filters and search do the heavy lifting
Layout and sorting carry a category of a few dozen products. Past roughly that point, the deciding factor is whether a shopper can narrow — and that is a topic big enough to live elsewhere rather than be crammed in here. Two siblings own it:
- Faceted filtering (size, colour, brand, price slider, in-stock, "showing 12 of 156", removable active filters) is the make-or-break feature for large categories, powered by ps_facetedsearch — the full strategy, including tailoring filters per category, is in Filter Revolution.
- Search for the shopper who'd rather type than browse — when PrestaShop's default search returns weak results, the fix is in smart search for PrestaShop.
The category page on a phone is a different page
More than half of category-page traffic is now mobile, and the desktop grid does not simply shrink to fit. The phone version needs its own decisions — filters collapsed behind a "Filter" button that opens a full-screen panel (never inline, where they'd eat the screen), a two-column grid (one wastes space, three shrinks products too far), a sticky filter/sort bar that stays reachable as the shopper scrolls, and a quick-view that shows the essentials without a full page load. This is enough of a discipline that it has its own guide — see mobile commerce — but the headline for category pages is: design the phone layout deliberately, don't inherit it.
Test the category page, because the numbers compound
Category pages combine high traffic with direct revenue impact, which makes them the best place in the store to test — a small win here multiplies across every product underneath it. Worthwhile experiments, all changeable from the settings above:
- Products per page — 24 vs 48 — watching both conversion and page-load time.
- Default sort — your curated "position" vs "best selling".
- Card content — with vs without rating stars; "Add to cart" vs "Quick view".
- Intro text placement — top vs bottom — and whether the grid above the fold matters more than the words.
Measure over enough volume to trust the result — at least a few weeks and a few hundred sessions per variant, not three days of noise — and look at the category-to-product click-through and the eventual conversion, not just clicks. The math is the reason to bother: lifting conversion even a couple of points on a category page that sees ten thousand visitors a month is hundreds of extra buyers, and that lift rides on top of every product in the category.
Frequently asked questions
Where do I set the default sort order for category pages in PrestaShop?
Under Shop Parameters → Product Settings, via "Default order by" and "Default order method". This sets the catalogue-wide default that most shoppers never change. To curate the order within a single category, drag products in Catalog → Categories and use "position" / relevance as the sort.
How many products should I show per category page?
24 to 48 suits most catalogues. It's set under Shop Parameters → Product Settings as "Products per page". Very high counts (96+) bloat page weight and slow load time, which directly raises bounce rate on a category page — so favour pagination over showing hundreds at once.
Can I add a list view to the PrestaShop Classic theme?
Not through a built-in URL toggle. The Classic theme (1.7 onward) dropped the old 1.6 grid/list switch and ships a grid only. A genuine list view now comes from a theme that builds it in or a dedicated module — so it's a deliberate theme decision, worth making only when the spec sells the product (electronics, parts, B2B) rather than the image.
Should I use pagination or infinite scroll on category pages?
Pagination is the safe PrestaShop default because it produces real, indexable ?page= URLs that work with full-page caching and let Google reach deeper inventory. If you want a smoother feel, a "Load more" button is the better compromise than infinite scroll, which makes the footer unreachable and gives no bookmarkable position.
What template renders a PrestaShop category page?
The CategoryController (extending ProductListingFrontController) drives it; the grid comes from your theme's category.tpl, which includes product-list.tpl, and each tile renders through catalog/_partials/miniatures/product.tpl. Most tuning is a back-office setting or a light touch in your child theme, not a controller rebuild.
Where this fits in your store
The category page is the bridge between how customers arrive — your mega-menu navigation and homepage — and the product page that closes the sale. Get the grid, the card, the default sort and the paging right, hand the heavy filtering and search to ps_facetedsearch and a proper search module, and design the mobile view on purpose. None of it requires forking your theme; nearly all of it lives in Shop Parameters → Product Settings, Catalog → Categories, and a light touch in your child theme. The principle underneath every setting is the same: a visitor on a category page has signalled intent but not yet chosen — your only job is to make choosing effortless, and then get out of the way.
Keep reading
- Filter Revolution: helping customers find products in large catalogs — the faceted sidebar that carries categories past a few dozen products.
- PrestaShop category structure: SEO-optimized navigation — the tree behind these URLs: depth, naming and slugs.
- PrestaShop mega menu: building navigation that converts — how shoppers land on the right category in the first place.
Comments
No comments yet. Be the first!
Be the first to ask a question or share useful feedback.
Leave a comment
Share a question, an installation detail, or feedback that could help another reader.