Pokud se zeptáte jak zrychlit WordPress, všude vám dají radu ať začnete používat cache. Většinou dostanete i doporučení na některý z pluginů, s kterým má daný uživatel dobré zkušenosti. Na výběr je jich poměrně dost a mnoho z nich velmi kvalitních. Stačí si je nainstalovat a spustit. Co to vlastně ale ta cache je a jak funguje?

WordPress je poměrně robustní redakční systém. Server pomocí skriptovacího jazyka PHP vytváří stránky na základě požadavků uživatele a z dat uložených v databází MySQL. Je tam spousta výpočtů náročných na procesor, čtení dat z pevných disků a samozřejmě pro celý proces se musí využít i nějaká paměť. Tohle vše se provádí v reálném čase pokaždé, když návštěvník přijde na novou stránku, anebo se vrátí na předchozí, popřípadě dá znovu načíst.

Cache má za úkol snížit náročnost těchto úkonů tím, že místo aby je prováděl server pořád znovu, tak si výsledek své práce uloží. Většinou vytvoří nějaký statický obsah a ten pak ukazuje návštěvníkům, dokud se něco nezmění. Pokud se něco změní, pak vygeneruje novou verzi statického obsahu.

Zní to jednoduše, pokud by ale bylo, tak nemají cachovací pluginy tolik možností nastavení 🙂 Proto si projdeme jednotlivé druhy cache a jak fungují.

Client Side Cache (ukládání dat na straně klienta/návštěvníka)

Internetový prohlížeč si umí data ukládat na disku návštěvníka. Pokud navštívíte nějakou stránku váš internetový prohlížeč si musí stáhnout všechny soubory potřebné k jejímu zobrazení. Například JavaScript, CSS, obrázky, adobe flash atd. Když už to má všechno jednou stažené, tak to hned nesmaže. Počká zdali stránku nenavštívíte znovu, popřípadě nenavštívíte jinou stránku na téže doméně, která odkazuje na stejné soubory. Pak je rovnou zobrazí a vy nemusíte čekat na stahování. Tím se šetří zdroje jak u klienta tak i na serveru.

Váš WordPress může říct internetovému prohlížeči návštěvníka, co si ukládat má a doporučit mu jak dlouho to má uchovávat. Ten to samozřejmě nemusí respektovat. Někteří uživatelé například po zavření prohlížeče nechávají vyprázdnit cache prohlížeče. Obecně se do cache prohlížeče dávají hlavně obrázky, které jsou součástí designu stránky.

Více technických informací se dozvíte ve specifikaci HTTP/1.1.

Server Side Cache (ukládání dat na straně serveru)

Nejvíce urychlit váš WordPress můžete pomocí cache na straně serveru. Dosáhnout rychlosti vygenerování stránky (TTFB, time to first byte) pod 100 ms je s WordPress zcela reálné i na levném sdíleném webhostingu. Samozřejmě o něčem jiném už jsou náročné šablony, tlačítka sociálních sítích atd. Tam toho server už moc nezvládne. Nepočítáme li že si vyberete webhosting s HTTP2. Tam je to úplně odlišná technologie.

Page cache (webová stránka uložená v cache)

Nejjednodušší a zároveň i nejefektivnější metoda cachování. Stránku či spíše její část, kterou generuje PHP z dat v databázi, prostě uložíte do statické HTML na disk. Když o ní bude WordPress požádán znovu jiným anebo stejným uživatelem, prostě jí rovnou nahraje z disku a zobrazí. Nic negeneruje, nemusí sahat do databáze.

Database cache (cachování dat z databáze)

Databáze slouží k ukládání dat. Ve WordPress obsahuje nejen články, komentáře, štítky a uživatele, ale i to jak jsou data propojena. Například jaké štítky jsou přiřazeny kterému článku. Když se pak článek má zobrazit, tak se pošle dotaz, či spíš několik dotazů do databáze. Všechna tato propojení se musí poskládat a vytvořit z nich odpověď, kterou databáze vrátí skriptu. Jak WordPress roste, tak s ním i množství dat v databázi. Jednotlivé tabulky s daty mají tisíce či desítky tisíc řádků. Tyto řádky se při generování navzájem propojují napříč tabulkami. Jedná se o matematicky náročné operace, které mohou trvat i vteřiny.

Ačkoliv se dá dosáhnout větší rychlosti výkonnějším procesorem a SSD, tak toto nelze škálovat donekonečna. Proto se výsledky složitějších dotazů ukládají. Zvláště pokud se daný dotaz opakuje pořád dokola.

Object Cache

Samotný WordPress má vlastní prostředky jak ušetřit systémové zdroje. Takovou vlastní cache. Jsou to Caching API, Object Cache a Transient API. Tyto cachovací systémy však v některých případech mohou nadělat spíše více problémů. Proto je některé cachovací pluginy nahrazují vlastními, popřípadě je regulují.

Opcode Cache

Webserver na kterém jede PHP většinou využívá nějakou vlastní verzi cache pro stále se opakující PHP skripty. V podstatě jde o to, že PHP skript se po spuštění musí zkompilovat do spustitelné podoby. Teprve poté může příkazy v něm webserver provést. Aby se ušetřily prostředky, tak si webserver uloží zkompilovanou verzi PHP skriptu.

Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInBuffer this page