Performance

Cache

Co je to cache?

Cache neboli mezipaměť je technologie pro dočasné ukládání dat, která výrazně zrychluje načítání webových stránek. Představte si to jako zásobárnu nejpoužívanějších věcí – místo toho, abyste pokaždé museli běžet do sklepa, máte nejdůležitější položky po ruce v kuchyni. Stejně tak cache ukládá často používaná data (obrázky, CSS soubory, skripty) blíže k uživateli, takže se nemusí pokaždé stahovat ze serveru. Výsledkem je rychlejší načítání stránky, nižší zatížení serveru a lepší uživatelský zážitek.

V kontextu moderního webu je cache naprosto klíčová pro dosažení dobré performance – rychlé stránky mají nižší míru opuštění, vyšší konverze a lepší pozice ve vyhledávačích. Podle Google Web Vitals je rychlost načítání jedním z klíčových faktorů, které ovlivňují uživatelskou zkušenost i SEO.

Jak cache funguje v praxi?

Když poprvé navštívíte webovou stránku, váš prohlížeč stáhne všechny potřebné soubory – HTML dokument, styly CSS, JavaScriptové skripty, obrázky, fonty. Bez cache by se tento proces opakoval při každé návštěvě. S aktivní cache se však tyto soubory uloží do paměti vašeho prohlížeče nebo na server mezi vámi a cílovým webem.

Při další návštěvě se načtou z této „zásobárny", což je mnohonásobně rychlejší než opětovné stahování ze vzdáleného serveru. Moderní weby využívají několik vrstev cache – browser cache (v prohlížeči návštěvníka), server cache (na hostingu) a CDN cache (na serverech rozmístěných po celém světě). Webový vývojář může přesně definovat, které soubory se mají cachovat a na jak dlouho pomocí HTTP hlaviček.

Typy cache na webu

  • Browser Cache (Cache prohlížeče)

  • Nejběžnější typ cache, který ukládá soubory přímo ve vašem prohlížeči. Při opakované návštěvě webu se statické soubory (obrázky, CSS, JavaScript) načtou z lokálního úložiště místo ze serveru. Platnost lze nastavit pomocí HTTP hlaviček Cache-Control a Expires. Například hlavička Cache-Control: max-age=31536000 říká prohlížeči, že může soubor uchovávat po dobu jednoho roku.

  • Server Cache

  • Ukládá celé vygenerované HTML stránky nebo jejich části na straně serveru. Obzvláště užitečné pro obsahově orientované weby – místo generování stránky z databáze při každém požadavku se vrátí předpřipravená verze. Kvalitní hosting často nabízí pokročilé cache mechanismy jako Redis nebo Memcached, které dokážou výrazně snížit zatížení databáze a zrychlit odezvu serveru až o 90 %.

  • CDN Cache

  • Content Delivery Network (CDN) rozmisťuje kopie vašich statických souborů na servery po celém světě. Uživatel pak stahuje data z geograficky nejbližšího serveru, což dramaticky zkracuje načítací časy. CDN cache je ideální kombinace s browser cache pro maximální performance. Například návštěvník z Prahy stáhne soubory ze serveru v Evropě místo ze vzdáleného amerického serveru.

  • Database Cache

  • Ukládá výsledky častých databázových dotazů do paměti. Místo opakovaného dotazování databáze se vrátí uložený výsledek. Tento typ cache je kritický pro weby s vysokou návštěvností nebo složitými databázovými operacemi. Například e-commerce web s tisíci produkty může cachovat seznamy kategorií a výrazně tak snížit dobu načítání produktových stránek.

  • Application Cache

  • Moderní webové aplikace využívají Service Workers a Cache API pro pokročilé cachování. Díky tomu mohou fungovat i offline nebo s omezeným připojením. PWA (Progressive Web Apps) tuto technologii využívají pro poskytnutí nativně vypadající aplikace přímo v prohlížeči. Service Workers umožňují cacheovat nejen statické soubory, ale i API odpovědi a vytvářet tak skutečně responzivní aplikace.

Jak správně nastavit cache na webu?

Efektivní nastavení cache vyžaduje pochopení toho, jak často se vaše soubory mění. Pro statické assety jako loga, ikony nebo fonty doporučuji nastavit dlouhou platnost (12 měsíců). CSS a JavaScript soubory mají typicky střednědobou platnost (1 měsíc), ale vždy je kombinuji s verzováním souborů.

Praktický příklad: místo style.css používám style.min.css?v=1.2.5. Když udělám změny ve stylu, zvýším verzi na v=1.2.6 a všechny prohlížeče automaticky stáhnou novou verzi. HTML stránky obvykle cachovat nechci vůbec nebo jen na velmi krátkou dobu (několik minut), protože obsahují dynamický obsah.

Pro nastavení cache používám HTTP hlavičky v .htaccess souboru (Apache) nebo v konfiguraci serveru. Více informací o optimalizaci webu najdete také v dokumentaci MDN Web Docs o HTTP cachování.

Výhody využití cache

  • Výrazně rychlejší načítání stránky

  • Návštěvníci vidí obsah o desítky až stovky procent rychleji. Zatímco první načtení může trvat 2-3 sekundy, s cache se opakované návštěvy zkrátí na zlomek sekundy. To má přímý dopad na míru opuštění – každá sekunda zpoždění zvyšuje míru opuštění průměrně o 7 %.

  • Nižší zatížení serveru

  • Méně požadavků znamená možnost obsloužit více návštěvníků současně. Server nemusí generovat stejné HTML znovu a znovu, což šetří procesorový čas a paměť. Pro weby s vysokou návštěvností může cache snížit zatížení serveru až o 80-90 %, což se projeví i na stabilitě webu při náporu návštěvníků.

  • Úspora datového přenosu

  • Cachované soubory se nestahují opakovaně, což šetří bandwidth jak na straně serveru, tak uživatele. To je zvláště důležité pro mobilní návštěvníky s omezenými datovými tarify. Správně nakonfigurovaná cache může snížit přenesená data až o 70 %.

  • Lepší SEO a vyšší konverze

  • Rychlost stránky je oficiální ranking faktor pro Google. Rychlejší weby mají lepší pozice ve vyhledávání, vyšší CTR a především vyšší konverze. Studie ukazují, že zrychlení webu o 1 sekundu může zvýšit konverze o 10-20 %.

  • Nižší náklady na hosting

  • Efektivnější využití serverových zdrojů znamená, že můžete obsloužit více návštěvníků na stejné infrastruktuře, nebo postačí levnější hostingový tarif. Cache výrazně snižuje nároky na výkon serveru i databáze.

Nevýhody a úskalí cache

  • Návštěvníci nemusí vidět nejnovější verzi

  • Při aktualizaci webu mohou mít návštěvníci staré soubory v cache. To může vést k nefunkčním prvkům webu nebo zastaralému vzhledu. Řešením je cache busting – technika verzování souborů, která zajistí, že se nová verze vždy načte.

  • Komplexnější správa webu

  • Správné nastavení cache vyžaduje pochopení HTTP hlaviček, verzování souborů a principů fungování prohlížečů. Pro začátečníky to může být náročné. Je třeba pečlivě vyvážit mezi délkou platnosti cache a potřebou aktualizací.

  • Problémy při vývoji webu

  • Vývojáři musí často mazat cache, aby viděli změny v kódu. Bez vypnuté cache v developer tools můžete ztrácet čas debugováním „problémů", které jsou ve skutečnosti jen starou verzí souboru v cache. Proto doporučuji při vývoji používat funkci „Disable cache" v nástrojích prohlížeče.

  • Zabírá úložný prostor

  • Cache ukládá data jak u uživatelů v prohlížeči, tak na serverech (server cache, CDN cache). To zabírá diskový prostor, i když obvykle v řádu stovek MB až jednotek GB. U kvalitního hostingu to není problém, ale je dobré si toho být vědom.

  • Riziko zastaralých dat u dynamického obsahu

  • Pro personalizovaný obsah (přihlášení uživatelé, košíky, dashboardy) je třeba cache pečlivě konfigurovat nebo úplně vypnout. Špatně nastavená cache u dynamického obsahu může vést k zobrazení cizích dat nebo bezpečnostním rizikům.

Nejčastější otázky o cache

Jak vymažu cache v prohlížeči? Rozbalit

V každém prohlížeči najdete možnost vymazat cache v nastavení historie/soukromí. Nejrychlejší způsob je zkratka Ctrl+Shift+Delete (Windows) nebo Cmd+Shift+Delete (Mac), kde zaškrtnete „cache" nebo „obrázky a soubory v mezipaměti". Lze také vymazat cache konkrétního webu pomocí nástrojů pro vývojáře (F12).

Jak dlouho by měla cache platit? Rozbalit

Záleží na typu souboru. Statické assety, které se nemění (loga, ikony), mohou mít cache na rok. CSS a JavaScript soubory typicky 1 měsíc s využitím verzování (např. style.css?v=1.2). HTML stránky obvykle cachujeme na kratší dobu (minuty až hodiny) nebo vůbec, protože se často mění. Optimální nastavení vyžaduje balancování mezi rychlostí a aktuálností obsahu.

Co je cache busting? Rozbalit

Cache busting je technika, jak přinutit prohlížeče stáhnout novou verzi souboru i přes aktivní cache. Nejčastěji se používá přidání verze nebo hash do názvu souboru (style.min.css?v=2.0 nebo script.a8f9d.js). Když změníte soubor, změní se i jeho název/parametr, takže prohlížeč ho považuje za nový a stáhne aktuální verzi.

Potřebuji cache i při použití CDN? Rozbalit

Ano! CDN a cache se vzájemně doplňují. CDN zajišťuje rychlé doručení souborů z geograficky blízkého serveru, zatímco browser cache zajišťuje, že se soubory při opakované návštěvě vůbec nestahují. Kombinace obou technologií poskytuje nejlepší možnou performance. CDN má navíc vlastní cache vrstvu, která dále optimalizuje doručování obsahu.

Může cache způsobit problémy na webu? Rozbalit

Ano, špatně nastavená cache může způsobit, že návštěvníci vidí zastaralý obsah i po aktualizaci webu. Typický problém nastává, když změníte CSS nebo JavaScript, ale prohlížeče mají starou verzi v cache. Řešením je správné verzování souborů (cache busting) a vhodné nastavení Cache-Control hlaviček. Pro dynamický obsah jako uživatelské profily nebo košíky je lepší cache vypnout úplně.

Související pojmy