Jump to content

Tipy pro zrychlení načítání stránek


vanad

Recommended Posts

Snažím se zrychlit načítání obchodu a narazil jsem na pěkný článek:

 

http://kb.hexageek.com/cs/hgkb-343-optimalizace-prestashopu

 

Zajímá by mě konkrétně toto:

 

 

 

5) Vytvořte subdomény pro Javascript soubory and CSS soubory
Vytvořte subdoménu js1.mystore.com a přesměrujte ji na /js/
Vytvořte subdoménu js2.mystore.com a přesměrujte ji na /theme/mytheme/js/
Vytvořte subdoménu css1.mystore.com a přesměrujte ji na /css/
Vytvořte subdoménu css2.mystore.com a přesměrujte ji na /theme/mytheme/css/

Tyto 4 subdomény umožní uživatelům načítat více souborů paralelně. Webový prohlížeč umožňuje jen 8 paralelních downloadů na jednu doménu. Každá subdoména přidává 8 nových, tak je možné mít ve výsledku 40 downloadů

Máte s tím někdo zkušenosti?

Link to comment
Share on other sites

V záložce Nástroje->Výkon jsem nastavil:

 

Smarty

- Překompilovat šablony, pokud byly soubory zaktualizovány - povolit

- Dočasná paměť (Cache) - povolit

 

Volitelné funkce

- Kombinace - zakázat

- Vlastnosti - zakázat

 

CCC (kombinace, komprese a cache)

- Smart cache pro CSS - použít CCC pro CSS - povolit

- Smart cache pro JavaScript - Použít CC pro JavaScript - povolit

- Minify HTML - Minify HTML po "smart kompilaci". - povolit

- Komprese vloženého JavaScriptu v HTML - Komprese vloženého JavaScriptu v HTML po "kompilaci smarty" - povolit

- Optimalizace Apache - povolit

 

Šifrování

- Algoritmus - Použít Rijndeal s knihovnou mcrypt

 

Caching

- Použít cache - zakázat (protože povolit nejde)

 

A v záložce Konfigurace -> Obrázky

Jsem dal regenerovat miniatury

 

 

Je to správně?

Co byste mi krom toho prosím ještě doporučili?

Link to comment
Share on other sites

.htaccess

# BEGIN Compress text files
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE \
 text/html \
 text/xml \
 text/css \
 text/plain \
 image/svg+xml \
 application/xhtml+xml \
 application/xml \
 application/rdf+xml \
 application/rss+xml \
 application/atom+xml \
 text/javascript \
 text/ecmascript \
 application/javascript \
 application/x-javascript \
 application/ecmascript \
 application/json \
 application/x-font-ttf \
 application/x-font-otf \
 font/truetype \
 font/opentype \
 application/x-pointplus
</ifModule>
# END Compress text files

# BEGIN Expire headers
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 2592000 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/jpg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
ExpiresByType text/html "access plus 604800 seconds"
ExpiresByType application/xhtml+xml "access plus 604800 seconds"
</ifModule>
# END Expire headers

# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch "\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(css)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(js)$">
Header set Cache-Control "private"
</filesMatch>
<filesMatch "\.(x?html?|php)$">
Header set Cache-Control "private, max-age=360, must-revalidate"
</filesMatch>
</ifModule>
# END Cache-Control Headers
  • Like 3
Link to comment
Share on other sites

Díky moc za užitečné rady. Zjistil jsem, že používám zbytečné moduly a tak jsem si pohrál i s tím. Zde jsou výsledky:

 

Původně:

http://www.webpagetest.org/result/140410_08_B59/

 

Po zakázání zbytečných, nepoužívaných modulů a úpravě, kterou jsem uvedl ve 4 příspěvku:

http://www.webpagetest.org/result/140411_G7_RQ9/

 

A po úpravě .htaccess:

http://www.webpagetest.org/result/140411_Q8_S2F/

 

:)  :)  :)

Link to comment
Share on other sites

  • 7 months later...

Ahoj Rabitte,

 

je ten kod do .htaccess i pro PS 1.6.0.9 na Wedosu?

 

Yop, yop, na verzi ani hostingu nezáleží, pokud tam běží zmíněné moduly, které to upravují.

 

Možná by bylo lepší se poohlédnout po nějakém lepším hostingu.

 

Co je pro tebe lepší hosting? A bavíme se o webhostingu, nebo VPS nebo dedikovaným?

 

Tohle umí říct každý... ale proč ? Přesunů na jiný hosting jsem už viděl celkem dost ale většinou to ke zrychlení moc nevedlo .

 

Já už těch přesunů viděl taky kotel, ale ten přesouvající o tom musí i něco vědět a neřešit jen, že to bude o 20kč levnější a budou tam mít o 1gb prostoru víc na maily...

 

Pokud hosting nemá úpravené konfigy na práci s innodb, tak je bezpředmětný přesun kamkoliv, za sebe můžu říct, že mi v tom lítá více jak 5 let testování a úprav, abych se dostal tam kam sem chtěl s optimalizací Prestashopu a pochybuju, že nějakej IT u jakýhokoliv hostingu tomu věnoval tolik pozornosti.

  • Like 1
Link to comment
Share on other sites

First view nebo first byte?

First view - Optimalizačníma technikama co jsem psal, rozdíl mezi secondem je, že už se něco uložilo do mezipaměti a proto to zrychlilo další načtení oproti úplně prvnímu.

First byte - Záleží většinou na rychlosti serveru předávat informace + odstranit všechny přesměrování. To znamená třeba bez www na www dělat přes doménu, nikoliv .htaccess apod, což bude asi tvůj případ. Jinak standard je fungování domény s www, ne naopak. Ale není to žádný vážný problém, pokud je vše správně přesměrováno a nevytváří se duplicity.
 

- Request 1: http://www.sperkyornatis.com/
URL: http://www.sperkyornatis.com/
Host: www.sperkyornatis.com
IP: 46.28.105.92
Location: Czech Republic
Error/Status Code: 302
Client Port: 62344
Start Offset: 0.166 s
Initial Connection: 53 ms
Time to First Byte: 89 ms
Bytes In (downloaded): 0.4 KB
Bytes Out (uploaded): 0.3 KB
Request Headers:

GET / HTTP/1.1
Host: www.sperkyornatis.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0 PTST/192
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Response Headers:

HTTP/1.1 302 Moved Temporarily
Date: Thu, 27 Nov 2014 16:22:43 GMT
Server: Apache
location: http://sperkyornatis.com/
Cache-Control: max-age=0
Expires: Thu, 27 Nov 2014 16:22:43 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 20
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
- Request 2: http://sperkyornatis.com/
URL: http://sperkyornatis.com/
Host: sperkyornatis.com
IP: 46.28.105.92
Location: Czech Republic
Error/Status Code: 200
Client Port: 62345
Start Offset: 0.390 s
DNS Lookup: 56 ms
Initial Connection: 50 ms
Time to First Byte: 518 ms
Content Download: 69 ms
Bytes In (downloaded): 7.8 KB
Bytes Out (uploaded): 0.3 KB
Request Headers:

GET / HTTP/1.1
Host: sperkyornatis.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0 PTST/192
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Response Headers:

HTTP/1.1 200 OK
Date: Thu, 27 Nov 2014 16:22:43 GMT
Server: Apache
P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"
Set-Cookie: 5a2c67b4928ffe5745bb882ad7942d17=23jmYqf1XpZQU6sRWIj%2B%2FYk0zYHu0PYr4%2BQXsmr0%2B11zRoRI9OltThootgmnTHqbLSYjDrbSJ7RekdK3f%2FaNPzASGRbC255BG9cZtC%2BfmwJKD7zzWC9iBpmoXFGUt%2BnnCNcUXtKYTE%2FSmTIqQo7I15GhaLQkgGrNgQfugx0Slq4%3D000115; expires=Wed, 17-Dec-2014 16:22:43 GMT; path=/; domain=sperkyornatis.com; httponly
Vary: Host,Accept-Encoding
Cache-Control: max-age=0
Expires: Thu, 27 Nov 2014 16:22:43 GMT
Content-Encoding: gzip
Content-Length: 7313
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8

Ale ty 4 sekundy jsou fakt v pohodě na české poměry u prestashopu. Samozřejmě existují další vychytávky, jako je třeba cloudflare, kde můžeš uložit celej shop do mezipaměti na cloudflare a i když ti hosting třeba na hodinu spadne, přes cloudflare bude pořád fungovat :) Ale to bych opravdu neřešil... 

Mrkni se na alzu :)http://www.webpagetest.org/result/141127_H5_WTM/

Za mě teda se stačí držet jednoduchejch pravidel:

1) vypnout moduly, které jsou k hovnu a nevyužíváš je ani ty, ani zákazník
2) vypnutí píčovinek, který využívají načítání nebo ověřování třetí strany url
3) vypnutí supercoolhightech slideshow a podobnejch kundovin
4) držel bych se flatovýho konceptu alzy, která je v tomhle leader, má xy studií jak má eshop vypadat a fungovat a nevymejšlel bych nic novýho, zákazníci jsou pořád stejný

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Zdravím,

 

mám problém s načítáním Prestashopu po přesunu na nový hosting. Po přesunu mi trvá načítání i 20s. Cachování jsem nastavil dle návodu hostingu na souborový systém s hloubkou 2 a od té doby to zlobí. Když Cache vypnu, tak stránky běží normálně. Smarty cache mám zaplou stále.

 

Při zapnutí cache jsem udělal test: http://webpagetest.wedos.com/result/150211_Y5_2/1/details/

 

Psal jsem i na hosting a zatím neví. Neporadíte někdo??

 

Děkuji

 

Jary

Link to comment
Share on other sites

Ta úpravy .htaccess taky dost pomohla, až na to, že se mi ten přidaný kód po čase vždy smaže. Vložil jsem to před # Images, ale to by asi mělo být jedno. Jak tomu zabránit?

 

Ahoj,

 

to se smaže ve chvíli, kdy dojde k rekompilaci souborů — pokud máš zapnutou kompilaci a něco na webu upravíš, tak se ti znovu vygeneruje .htaccess bez tvojí úpravy.

Link to comment
Share on other sites

  • 2 months later...
  • 11 months later...
  • 1 month later...
  • 2 years later...

Zdravím Vás, neporadili by jste mi kde by mohl být problém při Time to first byte? Dělal jsem si test na http://www.webpagetest.org/result/180606_5D_42b46426bcbd856c0230d5aba9c9687c/ a mám cca 2.6s než odpoví server. Htaccess mám upraven, kompilacišablony i CCC smart cache pro CSS a JS i Apache také. Ale neustále bojuji s Time to First Byte: 2281 ms což mi přijde docela dost.. Snažil jsem se různě povypínat z šablony i moduly a přišlo mi že to moc vliv nemá. Hosting úplně podezírat nechci, přeci jen tam jedu další nePresta produkty a fungují dobře. Bohužel ale nemůžu zapnout Cache (memcached, APC, Xcache) protože Presta mi to nedovolí. Díky moc za každou radu.

Link to comment
Share on other sites

22 hours ago, inweb said:

Zkuste různé možnosti u položky "Vyčistit mezipaměť".

Zkusil jsem nastavit u smarty > Vyčistit mezipaměť = "never clear cache files" a pak jsem zkusil jeste prepnout typ cache místo "filesystem" na "mysql" kde mi přijde že skrze mysql je to podstatně rychlejší. Ted uz to je mozna i o modulech (ale pokusil jsem se vypnout co jde) a také o samotné šabloně která má tedy dosti velké css a js kódy, které zkusím promazat od zbytecnosti ktere se nepouzivaji. Chci se zeptat, jaky maji vliv na zvyseni vykonu "cacheování - systém dočasné mezipaměti?" Tady bohuzel zrejme kvůli nastaveni hostingu nemohu nic zapnout. Moc diky za vas cas.

Link to comment
Share on other sites

Redukce CSS/JS souborů vylepší celkový page load time ale nikoliv TTFB. Redukce interních CSS/JS (v HTML kódu) může TTFB vylepšit ale ne příliš významně. Cache pomocí (Memcached, APC? XCache) v naprostém většině případů nepomůže (vyzkoušeno na řádově tisících webech s PS). Doporučujeme se zaměřit na nainstalované moduly a nastavení databáze, případně strukturu databáze (indexy apod.).

Link to comment
Share on other sites

On 8. 6. 2018 at 2:54 PM, inweb said:

Redukce CSS/JS souborů vylepší celkový page load time ale nikoliv TTFB. Redukce interních CSS/JS (v HTML kódu) může TTFB vylepšit ale ne příliš významně. Cache pomocí (Memcached, APC? XCache) v naprostém většině případů nepomůže (vyzkoušeno na řádově tisících webech s PS). Doporučujeme se zaměřit na nainstalované moduly a nastavení databáze, případně strukturu databáze (indexy apod.).

Moc děkuji za informace, zaměřím se ještě na nainstalované moduly.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...