How to optimize Prestashop for performance

How to optimize Prestashop for performance

The overall speed of Prestashop site depends on many factors. The important part is performance and optimization of server, but you can also speed up the site by using certain settings and techniques. Here are some of them:

1. Performance settings in Prestashop administration

Go to Advanced Parameters > Performance

Smarty cache

This is the default and recommended setting:
smarty-cache

During the development it’s better to always force the compilation and disable cache, but make sure you never use this on production site.

Combine, Compress and Cache

Prestashop is a modular system and therefore all css and javascript files of modules are separated. In a clean installation, there are already quite a lot of css and javascript files and this number grows with using extra modules or an advanced theme, where developers overwrite many css files of default modules. Every CSS or JS file which loads separately, means one http request. Too many requests will slow down the page significantly. If we use CCC which is implemented in Prestashop, it will merge all css files into one file and all javascript files as well. This reduces the number of http requests and improve performance. Your CSS and javascript files must be valid, otherwise you may have issues.
ccc

3. Images

Big, unoptimized images can be big problem for performance of your site. For icons, use font icons instead of images or if you need to use images, use it as image sprites. An image sprite is a collection of images put into a single image. Loading one image instead of single cropped images is better for performance.

Try to optimize images like slides and banners. You can find the problematic images using webpagetest.org. Try different formats (always use JPEG for big photos) and use tools like jpegtran, optipng or pngquant.

4. Modules

Are you sure you need all your modules? Many eshops use too many modules and some of them are not really important. Speed is an important factor for sales too, so make sure you don’t use too many modules that has no real benefit for the client. It may be useful to enable debug profiling in Prestashop to find out which modules are most demanding from performance point of view. To do so:

  • edit /config/defines.inc.php file, .
  • Around line 42, find line define('_PS_DEBUG_PROFILING_', false);
  • Change “false” to “true”.

debug-profiling

Prestashop will then display many useful details for each page, such as:

  • Load time.
  • Processed hooks.
  • Memory usage.
  • Number of database queries and their overall duration.
  • Database stopwatches per query.
  • Duplicate queries.
  • Database table stress.
  • ObjectModel instances.
  • Included files.