Zvýšení rychlosti načítání stráne můžete docílit technikou, která se nazývá cachování paměti. Jedná se o práci se soubory webu, které jsou

ukládány do paměti prohlížeče a nemusí se načítat při každém navštívení stránky znovu, ale použijí se ty již uložené v paměti prohlížeče. 

Návod na nastavení ukládání statických souborů webu do mezipaměti prohlížeče pro rychlejší načítání stránek

Zde popisované cachování stránek je ukládání souborů stránek do mezipaměti prohlížeče - nejčastěji na lokální pevný disk počítače. Nedochází pak k načítaní všech zdrojů z WWW serveru (obrázky, JavaScripty, CSS styly atd.), ale využije se mezipamět prohlížeče. Načítání celé stránky tak může být výrazně rychlejší.

Chování mezipaměti prohlížeče lze ovlivnit pomocí příslušných HTTP hlaviček buď jednotlivě nebo podle typů souborů.

1.možnost

U webserveru Apache (tedy u nás na webhostingu) je jednou z možností cachování nastavit pomocí modulu mod_expires zápisem příslušných pravidel do souboru .htaccess.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A600
ExpiresByType text/javascript A604800
ExpiresByType application/javascript A604800
ExpiresByType text/css A604800
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType image/x-icon A604800
ExpiresByType text/html A60
</IfModule>

  • A31536000 je hodnota v sekundách udávající dobu po jakou se má uchovávat v mezipaměti prohlížeče daný soubor. Po vypršení této hodnoty se soubory označí jako expirovaný a při dalším načtení stránky se stáhnou soubory znovu.
  • ExpiresDefault je hodnota ostatních nedefinovaných souborů a nastavení jejich doby max. načtení.
  • image/jpg je typ cachovaného souboru, zde si zvolíte dle php typ souboru, které chcete cachovat.

2. možnost

Jako alternativní řešení ještě můžete použít následující verzi. Tato verze dělá nejen kompresi, ale zajišťuje cachování další souborů.

V případě, že tento kód nebude fungovat s naším htaccess, tak dejte web do adresáře domains/vase_domena_koncovka a dejte .htaccess s tímto kódem a případně jiným dalším, který máte od výrobce webu.

Osvědčené nastavení .htaccess, které je včetně komprese:

# 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

# BEGIN Turn ETags Off
Header unset Pragma
FileETag None
Header unset ETag
# END Turn ETags Off

Správnou funkcionalitu a především změnu rychlosti načítání stránek můžete vyzkoušet použitím nástrojů na některé z webových stránek: