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
This is the default and recommended setting:
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
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.
Another useful method, is to use lazy loading.
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:
- Around line 42, find line
- Change "false" to "true".
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.
From my experience, hosting can have significant impact on e-shop performance. I can't recommend particular hosting outside my country, but difference can really be huge.
6. PHP version
For Prestashop 1.7 version, I recommend using latest php version. For 18.104.22.168 it's php 7.1 and 1.7.4 should be compatible with php 7.2. For database use mySQL 5.7 or mariaDB.