How to speed up PrestaShop: 15 ways to score 90+ in PageSpeed

A slow store loses customers before they see the first product. If you are wondering how to speed up PrestaShop, the short answer is: turn off debug mode, enable the Smarty cache and CSS/JS combining, move to PHP 8 with OPcache, serve images as WebP and remove the modules you do not need. These steps usually add dozens of points to your PageSpeed score. Below you will find all 15 ways, the order to apply them in and the most common traps.

How do you measure PrestaShop speed?

Measure the starting point before you change anything. Otherwise you will not know which change helped and which one hurt.

  • PageSpeed Insights (pagespeed.web.dev) gives a 0–100 score for mobile and desktop and a list of specific issues. The mobile score matters most, because that is the version Google uses to evaluate your pages.
  • Core Web Vitals are three metrics from real visits: LCP (largest element loaded, target under 2.5 s), INP (response to a click, under 200 ms) and CLS (layout shifts, under 0.1). You will find them in PageSpeed Insights and Google Search Console.
  • TTFB is the server response time. If it is above 0.8 s, the problem is the server, PHP or the modules, not the images.

Test at least three page types: the home page, a category and a product page. Each loads different modules and puts a different load on the database.

Why is PrestaShop slow?

The causes we see most often in our clients' stores:

  • debug mode left on in production,
  • template cache off and no CSS/JS combining,
  • an old PHP version without OPcache,
  • heavy JPG and PNG images instead of WebP,
  • dozens of modules hooked to every page, some of them no longer used,
  • third-party scripts: live chats, ad pixels, review widgets,
  • statistics tables in the database that have grown for years,
  • cheap shared hosting with slow disks and CPU limits.

The good news: you can fix most of these in the back office, without writing code.

15 ways to make your PrestaShop store faster

Before you start: back up the files and the database, and test every change on a copy of the store first. Some settings (JavaScript combining in particular) can break modules written in an unusual way.

1. Turn off debug mode

Debug mode disables part of the cache and displays extra information. It must always be off in production: Advanced Parameters > Performance > Debug mode: No.

2. Enable the Smarty template cache

On the same page, set Template compilation: Never recompile template files and Cache: Yes. Clear the cache with the "Clear cache" button after every theme change.

3. Combine and compress CSS and JavaScript (CCC)

The CCC (Combine, Compress and Cache) section merges style sheets and scripts into a few larger files. The browser downloads fewer files and the page renders sooner. Test the cart, login and payment after enabling it.

4. Run a current PHP version with OPcache

PrestaShop 8 and 9 run on PHP 8.1 and later, which is noticeably faster than PHP 7. Make sure OPcache is enabled on the server with enough memory (256 MB is usually plenty). It is a single setting in your hosting panel and it can cut the server response time by up to half. If your store still runs PrestaShop 1.7, a newer PHP usually means upgrading PrestaShop first.

5. Enable server-side caching

PrestaShop can store query results in Memcached or APCu (Advanced Parameters > Performance > Caching). It pays off most with a large catalogue and many simultaneous visitors. Ask your host which extension is available.

6. Gzip or Brotli compression and HTTP/2

The server should compress text files (HTML, CSS, JS) and support HTTP/2 or HTTP/3. On Apache, the Apache optimization option on the Performance page helps; on nginx and LiteSpeed, your server administrator sets it up.

7. WebP or AVIF images and the right thumbnail sizes

Images are usually more than half of a page's weight. In PrestaShop 8 and 9, Design > Image Settings lets you add the WebP and AVIF formats, which are often 30–50% lighter than JPG. Also check that the thumbnail sizes match your theme and regenerate them after a change.

8. Lazy-load images, except the most important one

Images below the first screen should have the loading="lazy" attribute. The exception is the main image (slider, product photo): it drives LCP and should load immediately, ideally with fetchpriority="high".

9. Self-host your fonts

Fonts downloaded from third-party servers delay the text. Host them yourself in WOFF2, add font-display: swap and keep only the weights you actually use.

10. Review your modules and their hooks

Every active module adds code to the page. In Modules > Module Manager, disable and uninstall what you do not use, and in Design > Positions check that modules do not load on pages where they are not needed. One badly written module can slow down the whole store. It is also worth checking modules for known vulnerabilities; a store security audit helps when in doubt.

11. Limit third-party scripts

Live chats, ad pixels, heatmaps and social widgets each add hundreds of kilobytes of JavaScript and hurt INP badly. Keep only what you really use and load it only after cookie consent.

12. Clean up the database

Statistics tables (ps_connections, ps_connections_source, ps_guest), logs and old carts grow to millions of rows over the years. After a backup, delete the old records and consider turning off the built-in statistics if you use Google Analytics.

The faceted navigation module can be the heaviest part of a category page. Enable its cache, rebuild the indexes after importing products and refresh them with a CRON job instead of on every change.

14. Choose hosting built for PrestaShop

A fast NVMe disk, PHP-FPM, a tuned MySQL or MariaDB (an InnoDB buffer that fits the database) and a server close to your customers. If TTFB is still above one second after all the settings above, the hosting is the bottleneck.

15. Use a CDN for images and static files

When your customers are in many countries, a CDN serves images and files from the server closest to each visitor. PrestaShop lets you enter media server addresses on the Performance page.

Where should you start?

You do not have to do everything at once. Start with the changes that give the most for the least risk:

Step Speed impact Difficulty
Debug mode, Smarty cache, CCC high easy, back office
PHP 8 and OPcache high easy, hosting panel
WebP/AVIF images and thumbnails high medium
Modules and third-party scripts review medium to high medium
Database, filters, server cache medium needs experience
New hosting, CDN depends on the store needs a plan

Measure again after each step and write the score down, so you know what actually helped.

Common mistakes when speeding up PrestaShop

  • Optimising for the score only. A score of 100 on an empty test page means nothing; Core Web Vitals from real visits are what count.
  • Yet another "speed up" module. It often duplicates what PrestaShop already does and adds code of its own.
  • Changes without a backup. One wrong setting can break the cart; make a backup of the files and the database before any change. If you get a blank page after a change, see our guide to the PrestaShop error 500.
  • No test purchase. After each change, go through the whole process: add to cart, log in, pay.

Frequently asked questions

What is a good PageSpeed score for a PrestaShop store?

Google rates 90 and above as good and 50–89 as needing improvement. For a store with many photos, a realistic mobile target is 70–90, but passing Core Web Vitals matters more than the score itself: LCP under 2.5 s, INP under 200 ms and CLS under 0.1.

Why is the mobile score so much lower than the desktop one?

PageSpeed tests the mobile version on a simulated slower CPU and connection. Heavy JavaScript and large images hurt much more there, so a gap of 20–40 points is normal.

Can enabling CCC break my store?

It can, if a module has badly written JavaScript. After enabling it, check the cart, login and payment. If something stops working, turn off JavaScript combining, keep CSS combining and report the problem to the module's author.

How much does it cost to speed up a PrestaShop store?

You can apply the basic settings from this guide yourself for free. Deeper optimisation (modules, database, server) usually takes a developer from a few to a dozen or so hours, depending on the size of the store and the number of modules.

Have a question about your store? Contact us and we will tell you where to start.

Products in this article

Back to Blog

Loading...
Back to top