headerbanner

Urychlení Joomly 2

Autor: Petr Liška

V prvním článku jsme se věnovali souboru .htaccess. Ve druhé etapě urychlování Joomly (a tedy kromě jiného i zvýšení "přívětivosti" pro Google) nejprve povypínejte (zneveřejněte) všechny nepoužívané moduly a pluginy. Eliminujete tím spoustu SQL dotazů, které zhoršují odezvu serveru.

Další potřebnou volbou je zapnutí cachování v Globálním nastavení. Zejména u časově stabilního obsahu, když třeba nevyužíváte diskusi u článků, může Joomla nabízet obsah již jednou sestavené a uložené stránky mnohem rychleji, než když stránku sestavuje pokaždé znovu. Pokud ale zatím laborujete s obsahem a ověřujete jednotlivá nastavení, cache zatím nezapínejte, aby se nastavení mohla ihned projevit.  

Další postup vyžaduje instalaci "urychlovače" (optimalizátoru), doporučuji plugin JCH Optimize. (Vyzkoušel jsem i Jbetolo, ale to není dobrá volba - Joomla pak generuje přesměrování adres "sama na sebe" a nepomůže ani odinstalace pluginu.)

JCH Optimize umí to, co mělo dávno být nativní vlastností Joomly - totiž seskupení všech CSS souborů do jednoho a totéž umí s JS soubory. Například šablona BEEZ používá spoustu CSS i javascriptových souborů a každý z nich znamená výrazné zpomalení. Ne snad kvůli velikosti, ale kvůli režii HTTP dotazu, prohlížeč si musí vyžádat každý soubor od serveru zvlášť. Původní BEEZ šablona měla přes 20 linků (na obrázky a JS a SCC soubory), po aplikaci "urychlovače" stačí prohlížeči jen 8 HTTP dotazů.

jch

K nastavení urychlovače se dostanete přes Správce pluginů. V základním nastavení povolte seskupení CSS, které je v podstatě bezpečné a nemělo by způsobit žádný problém. Pokud některý ze souborů používá @import, můžete tyto importy zahrnout do seskupování, ale pokud jde jen o jediný soubor, můžete to tolerovat - zahrnutí importovaných souborů totiž vyžaduje dost času, takže se zpomalí odezva Joomly. Jeden HTTP dotaz, který ušetříte, za takové zpomalení nestojí.

Problematičtější je seskupení JS souborů do jednoho. Teoreticky může způsobit nefunkčnost webu, takže je třeba kontrolovat stránky, zda jim daná volba "urychlovače" nezpůsobila problém.

Není třeba povolovat "minify", tedy odstranění prázdného místa z CSS a JS a další zmenšovací úpravy. JS frameworky bývají už takto upravené, jejich rozšíření a také CSS soubory sice ne, ale to dobře nahradí GZIP komprese. Minify zabírá dost času a prodlužuje odezvu, takže je lepší volbu nezapínat. Naopak GZIP povolte jak pro CSS, tak pro JS. (Protože oba typy souborů nyní generuje Joomla a nestahují se tedy přímo z disku, nefunguje pro ně nastavení GZIP v .htaccess z prvního dílu.)

JCH optimize umí také spojit obrázky (volba Sprite). Drobné obrázky například pro menu je vhodné spojit do jednoho již při návrhu šablony a jejich zobrazení řídit pozicováním v CSS. JCH tohle udělá za vás, ale není to ale dobrá volba, protože zpracování obrázků je velmi pomalé a odezva Joomly se tak nepřijatelně prodlouží. Proto sprite nepovolujte.

Výsledek optimalizace, můžete vidět na následujícím obrázku. První graf je původní varianta jen se zapnutou GZIP komprezí, druhý mírně lepší graf je důsledek "očesání" šablony o nepoužívané prvky. Na třetím grafu se zapnutým pluginem JCH Optimize je patrné výrazné snížení počtu HTTP dotazů z prohlížeče na server - zejména v důsledku spojení CSS a JS souborů. Poslední obrázek se od předposledního liší jen volbou progresivní cache v Joomle.

souhrnmaly