Zrychlení PrestaShopu, aneb jak zrychlit PrestaShop? Velký článek od A do Z!

2 komentáře

Úvod

Zde popíšeme veškeré možnosti, jak základní, tak pokročilé, jak PrestaShop optimalizovat pro co nejvyšší výkon. Mnoho z doporučení pomůže pouze o několik málo milisekund, ale ve výsledku, když provedete několik takových optimalizací, ve výsledku to může udělat zajímavější počet.

Důležité je podotknout, že načítání webu není vždy stejně rychlé, liší se dle aktuálního vytížení webu, proto je nutno testy opakovat vícekrát a hned nevěšet hlavu při každé úpravě. Nefunguje to tak, že provedete jedno naše doporučení a e-shop na běhne za jednu vteřinu. Pojďme na to, projdeme si cca 20 bodů, které pomohou Váš PS zrychlit. Nějaké zvládnete sami, na jiné budete potřebovat experta.

Kde měřit hodnoty?

Nejpopulárnější služby pro měření rychlosti načtení zdarma:

https://pagespeed.web.dev/

https://gtmetrix.com/

https://tools.pingdom.com/

1) Základ každého rychlého PrestaShopu je hosting

Hosting je úplně největší gró v celém procesu a udělá největší rozdíl v rychlosti načítání. Doporučujeme náš hosting Openservis PROFI, který je optimalizovaný právě na špičkový běh PrestaShopu. Investované peníze zajistí nejvyšší zrychlení ze všech bodů v celém článků, tento bod je naprosto nejdůležitější, od toho se odvíjí pak další ladění.
Výsledky našich zákazníků můžete nalézt v článku:
Velké vyhodnocení převodu zákazníků na variantu PROFI (zrychlení o desítky procent)

2) Verze PHP

Vždy nastavujte verzi PHP, jakou doporučuje PrestaShop, zde příkládáme obrázek.

Pokud jsou nějaké Vaše moduly nekompatibilní (zejména moduly třetích stran) – kontaktujte je s žádostí o opravu.

Pokud se Vám o e-shop stará nějaký PrestaShop expert (třeba OPENSERVIS) – verze PHP může být vyšší než doporučená.
Nedoporučujeme toto dělat koncovým zákazníkům bez znalosti případných následků. Pokud Vám e-shop nikdo nespravuje, držte se vždy doporučené verze dle uvedené tabulky.

3) Aktuální verze PrestaShopu a modulů

Vždy se snažte držet poslední verze PrestaShopu a všech modulů, v průběhu času vycházejí různé aktualizace a to opravy chyb, úpravy, vylepšení, často i optimalizační fixy, které zvýší rychlost. Zejména u našich PrestaShopu modulů klademe obrovský důraz na průběžné aktualizace. Naše produkty nejsou takové, že je uděláme a rok na ně nesáhneme. Právě naopak! Neustále se snažíme vymýšlet způsoby jak moduly vylepšovat, inovovat, rozšiřovat a zrychlovat.
Moderní doba si žádá rychlé weby, i Google na to slyší. Udržujte tedy moduly vždy plně aktuální.

4) Máte na webu moduly, které nepoužíváte? Pryč s nimi!

Projděte si moduly ve Vašem PrestaShopu, již po instalaci jich je tam mnoho, které jistě nebudete používat!
Důležité je provést odinstalaci, ne pouze vypnutí. (ideálně i smazání z FTP, protože i to bere výkon, PS šahá i na FTP a zbytečné složky ho brzdí!)
Odinstalace modulů ušetří pár milisekund, jenže takových modulů můžete na Vašem e-shopu najít klidně desítky a to obzvlášť, pokud PrestaShop máte již velmi dlouho. Znáte to, nainstalujete modul, nefunguje/nevyhovuje, vypnete ho a zapomene na něj.
U PrestaShopu 1.6 je v základu více nepotřebných modulů, než u PS 1.7

Pár příkladů z praxe (PS 1.6):
modul „blocktags“ (Blok se štítky) – opravdu na Vašem PrestaShopu používáte štítky?
modul „blockcurrencies“ (Blok s výběrem měny) – opravdu na Vašem PrestaShopu používáte více měn?
modul „blocklanguages“ (Blok jazyků) – opravdu na Vašem PrestaShopu používáte více jazyků?
modul „blockmanufacturer“ (Blok výrobců) – opravdu na Vašem PrestaShopu používáte zobrazení výrobců?
modul „blocksupplier“ (Blok s dodavateli) – opravdu na Vašem PrestaShopu používáte zobrazení dodavatelů?
modul „blockwishlist“ (Seznam přání) – opravdu na Vašem PrestaShopu používáte Seznam přání (wishlist)?
modul „productcomments“ (Komentáře ke zboží) – opravdu na Vašem PrestaShopu používáte komentáře?
Pokud ne, pryč s tím!

Pár příkladů z praxe (PS 1.7):
modul „ps_currencyselector“ (Blok s výběrem měny) – opravdu na Vašem PrestaShopu používáte více měn?
modul „ps_languageselector“ (Blok jazyků) – opravdu na Vašem PrestaShopu používáte více jazyků?
modul „productcomments“ (Komentáře ke zboží) – opravdu na Vašem PrestaShopu používáte komentáře?
modul „ps_facetedsearch“ (Fasetová navigace) – opravdu na Vašem PrestaShopu používáte filtry?
Pokud ne, pryč s tím!

Atd…, toto je pouze pár příkladů, projděte důkladně Vaše moduly a zbavte se nepotřebných, může jich být klidně i desítky!

S tímto Vám může pomoci náš modul „Odhalení nepoužívaných modulů z důvodu bezpečnosti

5) Náhledy obrázků

Pokud nainstalujete zakoupenou šablonu do PrestaShopu, v mnoha případech vytvoří vlastní náhledy obrázků, které používá.

To znamená, že na FTP budete nyní mít obrázky prakticky 2x a to základní obrázky z původní šablony a z nově zakoupené.
Výsledek je ten, že pokud Vaše obrázky zabírají 10GB, nyní budou zabírat 2x10GB =20GB.
To, jestli nová šablona používá i obrázky z původní šablony není v možnostech blogu Vás „naučit“ – kontaktujte nějakého experta na PrestaShop, který to zvládne za 10 minut zjistit.
Náhledy obrázků si můžete zobrazit v sekci „Vzhled“ -> „Nastavení obrázků“ (pro PS 1.7) a „Konfigurace“ -> „Obrázky“ (pro PS 1.6).

Zajímá Vás sloupeček „Produkty“, pokud s PrestaShop expertem zjistíte, že máte na e-shopu náhledy, které nepoužíváte, řešením je nepoužívané náhledy smazat z administrace. Čímž se zajistí, že se nebudou tvořit nové, ale již nedojde ke smazání starých. Tento problém vyřeší náš modul:
Mazání starých (nepoužívaných) obrázků

6) Optimální nastavení cache

Info jsme psali již zde, takže jen dáváme odkaz, ať neděláme duplicity.

PrestaShop – Optimální nastavení výkonu (cache)

7) CDN Cloudflare

Info jsme psali již zde, takže jen dáváme odkaz, ať neděláme duplicity.

CDN Cloudlfare v PrestaShopu

8) Použijte novou generaci obrázků WebP

Info jsme psali již zde, takže jen dáváme odkaz, ať neděláme duplicity.

Zrychlení PrestaShopu? Pomocí obrázků WebP

 

9) Zapněte HTTPS (a tím i HTTP/2.0)

HTTPS zajišťuje šifrování obsahu a má vliv na SEO, ale má ještě jeden vliv, který je často neuváděn (pro nás z neznámých důvodů) a tou je rychlost. Ano, pokud máte HTTPS, je Váš e-shop schopen komunikovat na HTTP/2.0, čímž jsou požadavky na stahování řešeny paralelně. Problematika je zde značně zjednodušena, samozřejmě je to složitější.
Zde ukázka rozdíl HTTP/1.0 (bez https) vs HTTP/2.0 (s https):
https://www.httpvshttps.com/

Dneska by již KAŽDÝ, ano, opravdu každý e-shop, či web, měl běžet na https. Nedovedeme si to ani už představit jinak..

10) InnoDB

Pokud jste stále na databázovém uložišti MyISAM, konvertujte na InnoDB. Toto je pro zkušené programátory, je nutno provést zásah v databázi. Pro koncové uživatele není tato operace vhodná. Zkušený programátor bude vědět, jak to provést.

InnoDB je výrazně rychlejší než MyISAM a to zejména kvůli „row level lock“. MyISAM používá „table level lock“.
Rozdíl je v tom, že pokud s nějakým řádkem v databázové tabulce pracujete (respektive Váš e-shop), tak v případě InnoDB se nic neděje a vše běží dále, ale v případě MyISAM čekají veškeré ostatní databázové požadavky na dokončení toho, co již běží.

11) Čištění nepotřebných záznamů v databázi

Jednou za čas je vhodné použít modul „pscleaner“ (Čistič PrestaShopu [PrestaShop Cleaner]) a to konkrétně volbu „Omezení funkční integrity“ a „Čištění databáze“ – pozor ať si nesmažete objednávky nebo produkty!!! (to je volba první a druhá v tomto modulu)
A také modul:
Mazání starých statistik / dat a optimalizace databáze
Oba uvedené moduly mají jinou funkcionalitu/typ čištění. Doporučujeme používat oba.
Není třeba nijak pravidelně. 1x-2x za rok je dostatečné.

Ulevíte Vaší databázi i Vašemu e-shopu.

12) Optimalizace Vašeho vlastního serveru/VPS

Toto se týká pouze těch, kteří mají vlastní server/VPS. Nejedná se o zákazníky, kteří mají kvalitní hosting (např. OPENSERVIS):
https://devdocs.prestashop.com/1.7/scale/optimizations/
Každopádně, naše doporučení je nepoužívat vlastní řešení (VPS,managed, dedicated, atd), investice do údržby systému se Vám nikdy nevrátí a nikdy nedosáhnete takové rychlosti jako na našem hostingu. Není to rentabilní. Lepší máte náš hosting, kde nemusíte nic řešit -> např. u nás.

13) Zbavte se neexistujících obrázků, které načítáte

Pokud máte na e-shopu odkazy k neexistujícímu obrázku, tzn. lokace kde se hledá obrázek neexistuje (typicky je místo toho zobrazený otazník), neberte to na lehkou váhu a neignorujte to. Takovýto neexistující obrázek se totiž načítá až 10x déle, než existující!
Je to poměrně složitá problematika, takže detaily tento článek neobsáhne, každopádně, pokud máte na e-shopu odkazy mířící na neexistující obrázky, opravte je, nebo je úplně zrušte. Dle našich testů jeden neexistující obrázek se může načítat klidně sekundu, dle různých situací, což výrazně může prodloužit načítání Vašeho webu!
Toto se netýká jen Vašich vlastních obrázků, ale i obrázků co například používáte od dodavatele, či z jiného webu.
Údržujte Váš web vždy aktuální a obrázky funkční.

 

14) Odkazy zaměřujte vždy na HTTPS varianty

Odkazujete na nějaký obrázek z jiného webu? Použijte vždy HTTPS variantu.
(Počítá se s tím, že i Váš web je na HTTPS – což je dnes již nutnost, viz bod 9)

15) Hledejte chyby – DEBUG mód

DEBUG mód je defaultně vypnutý, ale můžete si ho zapnout v souboru /config/defines.inc.php – volba _PS_MODE_DEV_ nastavit na true.
Určeno pouze pro vývojáře, ne koncové klienty. Nezapomeňte poté tuto volbu vypnout. V provozu by neměla být nikdy zapnuta.

16) Profilujte PrestaShop – PROFILING

Díky profilingu zjistíte, co nejvíce Váš web zpomaluje (jaký modul apod).
Profiling je defaultně vypnutý, ale můžete si ho zapnout v souboru /config/defines.inc.php – volba _PS_DEBUG_PROFILING_ – nastavit na true.
Určeno pouze pro vývojáře, ne koncové klienty. Nezapomeňte poté tuto volbu vypnout. V provozu by neměla být nikdy zapnuta.
Poznámka: Pokud hostujete na pomalém a nevhodném hostingu, neztrácejte s profilingem čas, může Vám pokaždé ukázat něco jiného (např. že zpomaluje modul XYZ, ale po dalším spuštění zase uvidíte jiný modul apod). Profiling se vyplatí dělat pouze na výkonném hostingu, kde budou výsledky vždy směrodatnější.

 

17) Zakupujte moduly od ověřených vývojářů

K tomuto bodu netřeba moc dodávat, nenakupujte moduly od:
– „no name“ prodejců
– prodejců na Facebooku
– po telefonu
– přeprodejců

Zjistěte si, kdo jsou největší vývojáři PrestaShop modulů v CZ/SK a využijte jejich modulů. Ušetříte si spoustu zbytečného trápení.

My i naši klienti máme se zahraničními vývojáři (Poznámka: do zahraničí nepočítáme SK) velmi špatné zkušenosti, často se komunikace táhne měsíce a většinou neustále to samé dokola bez nějakého řešení, či posunu k lepšímu. Není ani výjimkou, že „fix“ ze strany vývojářů způsobí více potíží než užitku a pak je týdny naháníme o opravu. Většinou to končí tak, že majitel shopu ztratí trpělivost a prostě to vyšumí do ztracena.
Doporučujeme zakupovat moduly pouze u CZ/SK vývojářů (samozřejmě víme, že se zde nedá sehnat vše, ale 99% modulů ano).
Poznámka: zahraniční vývojáři jsou velmi často z Asie. Kdo v tomto světadíle někdy byl delší dobu na dovolené, tak ví, jak to tam (ne)funguje a pokud se jim zrovna ten den nebo týden nebo měsíc do práce nechce jít, tak prostě nejdou. Samozřejmě to tak neplatí u všech, soudíme jen dle našeho vzorku se kterým jsme aktuálně za ty roky měli tu „příležitost“ jednat a řešit s nimi problémy našich klientů, kteří zakoupili modul a nepodařilo se jim rozběhnout nebo nefungoval správně apod.

18) Pořiďte si cache modul

PrestaShop v základu má cache, ale zahraniční vývojáři nabízí další rozšíření. Tento bod zde uvádíme pro kompletnost, ale spíše ho nedoporučujeme. Pokud máte kvalitní hosting a vše nastaveno dle tohoto návodu, neměli byste cache modul vůbec potřebovat. Samozřejmě, ony by tyto moduly dávaly smysl v každé situaci, ale bohužel jsou s nimi hodně potíže (z našich zkušeností) – takže toto doporučujeme využít pouze v případě nejvyšší krajní nouze.

19) Vypněte volitelné funkce

V „Nástroje“ -> „Výkon“ v sekci „Volitelné funkce“ jsou 3 volitelné funkce a to „Kombinace“, „Vlastnosti“ a „Skupiny zákazníků“. Pokud je nepoužíváte, vypněte je.
A) Kombinace – pokud kombinace nepoužíváte a ani žádné existující nemáte, tuto funkci půjde vypnout.
B) Vlastnosti – pokud vlastnosti u produktů nepoužíváte, můžete tuto funkci vypnout.
C) Skupiny zákazníků – funkci můžete vypnout za předpokladu, že nepoužíváte práci se skupinami zákazníků (např. VO skupiny a slevy pro ně nebo omezení přístupu nepřihlášených zákazníků do určitých kategorií apod).

Kdykoliv můžete tyto volby zapnout opět zpět.

2 komentáře. Nechte nové

  • Martin Č.
    9. 8. 2022 10:28

    S tímto jsme se také dost natrápili, než eshop běžel podle našich představ

  • Taktéž, jsme zrychlení řešili… bohužel, nám přišla nabídka od ,,odborníka na zrychlení,, který to zrychlil tak moc až nám web přestal fungovat. Naštěstí, mám openservis, kde to poté dali vše dohromady. Nyní, jsem už poučena a veškeré zásahy budu nechávat dělat jen zde.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Prosím, vyplňte toto pole.
Prosím, vyplňte toto pole.
Zadejte prosím platnou e-mailovou adresu.
Chcete-li pokračovat, musíte souhlasit s podmínkami