Přejít na obsah

Nastavení cookies

Zvolte, které druhy cookies povolíte. Svou volbu můžete kdykoli změnit přes Nastavení cookies v dolní části každé stránky. Prohlášení o ochraně osobních údajů

Nezbytné

Vždy zapnuté

Potřebné pro přihlášení, uchování košíku a zapamatování vašich voleb. Jsou vždy zapnuté.

Které cookies?
  • weboke_sessie, weboke_klant, weboke_remember: vaše relace a trvalé přihlášení
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazení cen s DPH nebo bez DPH
  • wok_cookies: vaše volba cookies, 12 měsíců

Měří, která reklama vede k návštěvě nebo objednávce, abychom neplatili za reklamy, které nic nepřinášejí.

Které cookies?
  • Google Ads přes Google Tag Manager (_gcl_au, _gcl_aw), až 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: partner, který vás k nám doporučil (partnerský program), 60 dní

4,6

Země a jazyk

Každá země má vlastní web s cenami a DPH dané země.

Zobrazit

Cachování

Modul 6: Rychlost · Doba čtení: 9 minut

Cíl lekce: Po této lekci dokážete vysvětlit, jaké druhy cache existují, a dokážete správně nastavit a zkontrolovat mezipaměť stránky.

Klíčové pojmy: mezipaměť stránky, mezipaměť prohlížeče, Cache-Control, objektová mezipaměť, Redis, OPcache, CDN, cacheovací plugin, LiteSpeed Cache, výjimky (přihlášení, košík, pokladna), vyprázdnění mezipaměti, duplicitní cacheovací pluginy

Cache: nedělejte stejnou práci dvakrát

Mezipaměť (cache) uchovává výsledek práce, aby se při příští příležitosti nemusela dělat znovu. U webu na WordPressu existují čtyři místa, kde se to děje, od největšího po nejmenší:

DruhCo se ukládáKdeEfekt
Mezipaměť stránkyKompletní HTML stránkyNa serveru (nebo u CDN)Největší přínos: PHP, pluginy a databáze se úplně přeskočí
Mezipaměť prohlížečeStyly, skripty, obrázky, fontyV prohlížeči návštěvníkaDruhá stránka se načte rychleji, protože soubory už tam jsou
Objektová mezipaměťVýsledky databázových dotazůV paměti serveru (Redis, Memcached)Pomáhá tam, kde mezipaměť stránky nemůže, například u přihlášených uživatelů a e-shopů
OPcachePřeložený PHP kódV paměti PHPPHP nemusí při každém požadavku znovu číst soubory; u většiny hostingů je ve výchozím stavu zapnutý

Mezipaměť stránky

Lekce 1.2 to ukázala: bez mezipaměti WordPress při každé návštěvě vytváří celou stránku znovu. S mezipamětí stránky ji vytvoří první návštěvník a další dostanou uloženou HTML. TTFB jedné sekundy se tak může zkrátit na pár setin sekundy a Váš tarif zvládne zároveň mnohem více návštěvníků.

Jak mezipaměť stránky získáte, závisí na Vašem webovém serveru:

  • LiteSpeed (mnoho sdílených hostingů, včetně WebOké): webový server má vlastní mezipaměť. Bezplatný plugin LiteSpeed Cache ji řídí z WordPressu: které stránky smí být v mezipaměti, kdy se mají vyprázdnit. Protože mezipaměť je přímo ve webovém serveru, pro uloženou stránku se PHP vůbec nespouští.
  • Apache nebo nginx: cacheovací plugin, který ukládá HTML jako soubory, například WP Super Cache, W3 Total Cache nebo placený plugin jako WP Rocket. Nebo mezipaměť, kterou na úrovni serveru řeší hoster.
  • Spravovaný hosting pro WordPress má často vlastní mezipaměť; tam většinou žádný cacheovací plugin neinstalujete.

Vyberte si jeden. Dva cacheovací pluginy najednou (například LiteSpeed Cache a WP Rocket) si navzájem překážejí: dvojí práce, stránky, které se nevyprázdní, podivné chyby. Na serveru LiteSpeed spolupracuje LiteSpeed Cache s mezipamětí webového serveru; jiný cacheovací plugin to neumí.

Co nesmí být v mezipaměti

Mezipaměť stránky dává každému stejné HTML. To selže u stránek, které jsou pro každého návštěvníka jiné:

  • přihlášení uživatelé (panel nástrojů, „Vítejte, Lisa“);
  • košík, pokladna a Můj účet u e-shopu;
  • stránky s formulářem s jednorázovým kódem (nonce), který po čase vyprší;
  • stránky, které zobrazují něco jiného podle lokace, jazyka nebo cookie.

Dobré cacheovací pluginy automaticky vynechávají přihlášené uživatele a známé stránky WooCommerce. U jiných pluginů (sekce pro členy, rezervační systém) musíte výjimky nastavit sami. Signál, že něco je špatně: návštěvník vidí košík někoho jiného, nebo formulář hlásí „vypršelo“ či „neplatný požadavek“.

Vyprázdnění: kdy je mezipaměť zastaralá?

Upravíte li stránku, musí uložená verze zmizet. Cacheovací pluginy při uložení příspěvku obvykle vyprázdní danou stránku, domovskou stránku a archivy. Při změně menu, šablony nebo widgetu je často potřeba vyprázdnit celou mezipaměť. Pokud po změně vidíte starou verzi, vyprázdněte mezipaměť (v panelu nástrojů cacheovacího pluginu) a zkontrolujte to v anonymním okně, aby se do toho nepletla Vaše vlastní mezipaměť prohlížeče.

Mezipaměť prohlížeče

Server sděluje prohlížeči pomocí hlaviček, jak dlouho smí soubor uchovávat:

cache-control: public, max-age=31536000

Toto znamená: uchovávejte to rok. U stylů, skriptů, fontů a obrázků je dlouhá doba v pořádku, protože WordPress při nové verzi připojí za adresu jiné ?ver= a prohlížeč to pak považuje za nový soubor. U samotné HTML je obvyklá krátká doba (nebo žádná), aby návštěvníci rychle viděli změny.

Mnoho hostingů a cacheovacích pluginů toto řeší automaticky. V úkolu této lekce si to ověříte.

Objektová mezipaměť a Redis

Mezipaměť stránky nepomáhá u přihlášených uživatelů ani u košíku. Tam pomáhá objektová mezipaměť: WordPress uchovává výsledek databázových dotazů v paměti, v programu jako Redis nebo Memcached. Při příštím stejném dotazu WordPress získá odpověď z paměti místo z databáze.

To je užitečné zejména pro e-shopy, členské weby a weby s mnoha přihlášenými redaktory. Pro běžný informační web s mezipamětí stránky je rozdíl malý. Objektová mezipaměť vyžaduje, aby Váš hosting nabízel Redis nebo Memcached; následně ji zapnete pomocí pluginu (umí to LiteSpeed Cache, existují i samostatné pluginy).

CDN

CDN (content delivery network) je síť serverů na mnoha místech ve světě, které uchovávají kopie Vašich souborů (a někdy celých stránek). Návštěvník je dostane z nejbližšího serveru. To pomáhá hlavně u vzdálenějších návštěvníků a při velkém provozu. Pro evropský web s evropskými návštěvníky na evropském serveru je přínos malý. CDN s proxy (jako Cloudflare) mění i Vaše DNS a certifikát (lekce 7.5 z kurzu DNS); nedělejte to bez pochopení toho, co to znamená.

V praxi: jak to vypadá v panelu

Jako příklad použijeme LiteSpeed Cache na serveru LiteSpeed. Jiné cacheovací pluginy mají podobná nastavení pod jinými názvy.

  1. Nainstalujte a aktivujte LiteSpeed Cache v Pluginy > Nový plugin.
  2. Otevřete LiteSpeed Cache > Cache: „Povolit mezipaměť“ je zapnuté, „Mezipaměť pro přihlášené uživatele“ vypnuté (pokud nevíte přesně, co děláte).
  3. U e-shopu: zkontrolujte v sekci Vynechat, že jsou v ní košík, pokladna a Můj účet (u WooCommerce se to děje automaticky).
  4. Ostatní části (optimalizace CSS a JavaScriptu, obrázky) nechte zprvu vypnuté. Zapínejte je jednu po druhé a po každém kroku otestujte: právě tyto části někdy rozbijí šablonu.
  5. Zkontrolujte v anonymním okně pomocí vývojářských nástrojů (F12, Síť, první požadavek): při druhém načtení by tam měla být hlavička x-litespeed-cache: hit.

Shrnutí

  • Existují čtyři druhy mezipaměti: stránky (největší přínos), prohlížeče, objektová a OPcache.
  • Na serveru LiteSpeed řídí LiteSpeed Cache mezipaměť webového serveru; na Apache nebo nginx použijete jiný cacheovací plugin. Vyberte si jeden.
  • Přihlášení uživatelé, košík, pokladna a osobní stránky nepatří do mezipaměti stránky.
  • Po změnách v menu nebo šabloně mezipaměť vyprázdněte a zkontrolujte v anonymním okně.
  • Objektová mezipaměť (Redis) pomáhá u e-shopů a přihlášených uživatelů; CDN hlavně u vzdálených návštěvníků a velkého provozu.

Kvíz

1. Která mezipaměť přináší u běžného informačního webu obvykle největší zrychlení?



2. Zákazník vidí ve svém košíku produkty někoho jiného. Co je pravděpodobně špatně?



3. Proč neinstalujete dva cacheovací pluginy najednou?



4. Komu objektová mezipaměť, jako je Redis, pomáhá nejvíc?



Úkol

Úkol A6.2: Funguje Vaše cache stránek? Zadejte adresu svého webu. Program si dvakrát krátce po sobě vyžádá domovskou stránku bez cookies a při druhém požadavku se podívá na hlavičky, které naznačují zásah mezipaměti (x-litespeed-cache: hit, x-cache: HIT, cf-cache-status: HIT, hodnotu age vyšší než 0, nebo hlavičku jiné známé mezipaměti). Poté si vyžádá jeden styl z domovské stránky a zkontroluje, zda ho prohlížeč smí uchovávat alespoň sedm dní (cache-control: max-age nebo expires). Poznamenejte si, jakou mezipaměť používáte.

Úkol A6.2: Funguje Vaše cache stránek?



Co vyplníte a co zjistíme, neukládáme. Váš prohlížeč si pamatuje Vaše odpovědi a to, zda jste úkol splnili. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol měli (téměř) správně; i to tam můžete odstranit.

Další čtení

Tyto články popisují kroky v panelech WebOké; v jiných panelech fungují podobně.

Chvíli strpení…

Nastavení vašich domén

U každé domény nastavte jmenné servery, propojení s hostingem a to, kdo bude držitelem.

Načítání vašich domén…