Why a PrestaShop store is slow

A slow PrestaShop store is rarely slow for one reason. It is work repeated for every visitor: building the page, answering every filter, searching at every pause while typing. With few visits you don’t notice; with traffic, each of those requests queues behind the others, and the database becomes the bottleneck.

We measured it on a 20,000-product store with 50 visitors at once on a 4-core, 8 GB server: without optimising, the database used 3 of the 4 cores and one search suggestion in ten took over 2 seconds. The full story, with every chart, is in Filters and search that never wait for the server.

The three things visitors do most

To really speed up PrestaShop, speed up what customers use most:

  • The page. A well-built page cache serves the page ready-made to visitors arriving from Google, ads or the newsletter. Why it is delicate and how to do it right: PrestaShop caching.
  • The filters. Moving the filters to the browser removes a query per click and makes filtering instant.
  • The search. Same as the filters: the search box answers at every key without touching the database.

And once the customer has chosen, don’t let the checkout push them away: 7 ways to speed up PrestaShop’s checkout.

Where to start

  1. Switch on the options in Advanced Parameters › Performance (Smarty cache, CCC) if they are off.
  2. If most of your traffic arrives without a session (Google, ads, newsletter), start with the page cache.
  3. If you have many products or many filters, move the filters to the browser.
  4. If your customers search a lot, do the same with the search box.
requests to the server while searching and filtering, with Instant Search and Instant Filters
0
database work with 50 visitors at once, on a 20,000-product store
−89%
per search suggestion, from the server to the browser
0.45 s → 6 ms

What slows PrestaShop down, and how to take it out of the way

  1. 1

    The page is built on every visit

    PrestaShop starts, runs the hooks of every module, queries the catalogue and renders the templates for each visitor. A safe page cache gives new visitors the page ready-made, with no risk to carts or prices.

  2. 2

    Every filter click is a query

    The faceted search asks the server on every click, and those answers cannot be cached. With the filters in the browser, filtering, counting and sorting take milliseconds and cost the server nothing.

  3. 3

    The search box asks at every pause

    The stock search suggestions run a database search every time the customer pauses while typing. In the browser they answer at every key, typos included.

  4. 4

    The checkout loses carts

    Extra steps, long forms and slow shipping calculations make customers leave at the last moment. There are quick fixes that do not require a new checkout.

  5. 5

    Measured, not promised

    We measure every improvement on a real 20,000-product store with 50 visitors at once, before and after, and publish the numbers and how we got them.

  6. 6

    No theme or server changes

    The three modules run on PrestaShop 8.2 and 9.0, with any theme, without overrides or PHP extensions, and keep themselves up to date through PrestaShop's hooks.

Frequently asked questions

Why is my PrestaShop store slow?

Almost always because of repeated work: PrestaShop builds every page from scratch, the faceted search queries the database on every click and the search box does so every time the customer pauses while typing. With traffic, those queries compete with each other. Bigger hosting helps, but removing the repeated work helps more.

How do I speed up PrestaShop's search?

By taking search off the server. Instant Search writes the catalogue to static files and the browser searches them: each search takes milliseconds, forgives typos and makes no database query.

Do PrestaShop's filters slow the store down?

With big catalogues and traffic, yes: every filter click is a heavy query that cannot be cached. Instant Filters filters, counts and sorts in the browser, with no requests to the server.

Is a page cache safe with carts and prices?

It depends on how it is built. Page Cache only stores pages of visitors with no cart or session, keeps one entry per currency, country and device, and renews a product's pages as soon as its price or stock changes.

Does it work on shared hosting?

Yes. None of the three modules needs server access, Varnish or PHP extensions: they install from the back office like any module.

Find the addon your store needs

Browse addons