Jiří Hýbek
WordPress, Cache a proč je rychlost webu tak důležitá?

WordPress, Cache a proč je rychlost webu tak důležitá?

Případová studie rychlosti webu a o cachování ve WordPressu.

Při práci se setkávám s problémem pomalých webových stránek, a to poslední dobou poměrně často, jelikož používáme WordPress, který je sám o sobě dost náročnou a pomalou aplikací.

#Proč je rychlost webu tak důležitá?

Někdo by řekl, že kvůli vyhledávačům. Pravdu mít bude, ale není to ovšem jádro pudla. Ona totiž většina uživatelů (včetně mě) je nedočkavá. Ve chvíli, kdy kliknu na odkaz a stránka se mi do dvou sekund nenačte, považuji ji za nefunkční. Kdyby byla pomalá, asi bych to překousl, ale podstatné je, že se mi jeví jako nefunkční, a proto záložku v prohlížeči ihned zavírám, jelikož nechci ztrácet čas čekáním na timeout, abych se stejně dozvěděl, že to nefunguje.

Poté přichází na řadu vyhledávače. Osobně nevěřím na ono magické SEO, a proč? Protože cílem vyhledávačů je poskytovat uživatelům relevantní a použitelné informace – stránky. Proto se snaží respektovat přání a chování uživatelů. Pokud chceme tedy být snadno dohledatelní, musíme tvořit obsah, který je často hledaný a musíme jej prezentovat co nejpřístupněji.

Pokud tedy víme, že uživatel nehodlá čekat na načtení stránky, musíme se tomu přizpůsobit a snažit se tento problém co nejlépe vyřešit.

#Proč je WordPress tak pomalý?

Proč vůbec používáme WordPress, když je tak pomalý? Protože má pěknou administraci, spoustu pluginů, snadno se rozšiřuje a myslím si, že i vaše babička by se s ním naučila pracovat.

A proč, že je WordPress takový šnek? Když jsem tak brouzdal jeho zdrojáky a řešil některé věci, zjistil jsem, že je to jedna velká koule nabalených funkcionalit. Což je způsobeno dlouhou historií projektu a snahou držet zpětnou kompatibilitu. A pokud se budeme bavit konkrétně, věřte mi, WordPress provádí spoustu zbytečných a náročných SQL dotazů při každém požadavku.

#Cachování

Pro laiky – cachování (kešování) je ukládání častých věci do mezipaměti. U WordPressu to znamená, že každá stránka se nemusí generovat pokaždé znovu a znovu, ale vygenerujeme ji jen jednou a výsledek uložíme někam do složky. Při dalších požadavcích pouze zkontrolujeme, jestli se něco nezměnilo, a pokud je naše nakešovaná verze stále aktuální, šáhneme po ní, a nemusíme tedy nic generovat.

Většina CMS a řešení pro e-shopy toto umí již od počátku, ve Wordpressu to zatím musíme řešit extra.

#WP Super Cache

WP Super Cache je plugin pro WordPress, který nám dokáže stránky cachovat a to hned několika způsoby v několika úrovních s možností ručního či dynamického (programátorského) nastavení.

Nebudu zde popisovat funkce, berte toto spíše jen jako doporučení. Pluginů na cachování ve WordPressu je spousta a s tímto mám zatím nejlepší zkušenost.

#Případová studie z praxe

Nedávno jsme spouštěli web www.financnici.com pro našeho klienta – společnost Finančníci s.r.o., která se zabývá koučinkem, konzultacemi a vzděláváním v oblasti financí.

Jedná se o technicky jednoduchý web – pár textových stránek (služby, kontakt, o nás) a blog + pár základních pluginů. Webová prezentace je hostována v profesionálním a osvědčeném datacentru.

I přesto vše trvalo načtení jedné stránky včetně médií 1,5 – 2 sekundy. Z toho vygenerování HTML stránky zabralo průměrně 700ms. A to je vážně hodně. Při testování jsme zjistili, že problém je v době čekání na server. Což je obecně problém WordPressu, který jsem zmiňoval výše.

Nasadil jsme tedy plugin WP Super Cache a nastavili ho na nevyjšší přípustnou míru cachování.

A nyní? Celá stránka včetně médií se načte v průměru za 500ms. A vygenerování HTML stránky? 70ms. Celkem tedy zlepšení odezvy o 400%.

Díky cachování se web lépe používá (protože nikdo nerad čeká) a celkový uživatelský zážitek působí lepším dojmem.

#Trochu moudra na závěr

Snažte se uživatelům cestu k vaším stránkám co nejvíce usnadnit. A vůbec – myslete hlavně na ně. Web přeci nemáte pro sebe, ale pro vaše stávající či potencionální klienty či čtenáře.