Prakticky denně se setkáváme s dotazem jak rychlý webhosting potřebuju na hostování WooCommerce (Woo) obchodu. Apache nebo Nginx? Osm nebo 64GB RAM, mám 10 000 položek, co když to nebo ono nebude stačit a tak podobně. Faktem je, že WordPress (WP) za posledních několik let, i díky lepším procesorům a PHP7 či niní PHP8, výrazně zrychlil. Kupodivu často se ale i tak setkáváte s tím, že vám online obchod nefunguje tak jak očekávate.
Pomineme hotová řešení jako Shoptet, který dáva ekonomický smysl pouze vysoce výdělečným, nebo unikátním e-shopům s rychlým odbytem všeho co dá do prodeje. Což je s ohledem na fakt, že 99% českých e-shopu pouze přeprodává, vcelku nadlidský plán.
Obsah
Webhosting Woocommerce & WordPress
Poslední dobou se několik českých či slovenských web hostingových služeb začalo profilovat jako WordPress či WooCommerce hosting.
site:cz wordpress hosting site:sk wordpress hosting
Zřejmě po vzoru zahraničních hosterů mimo úzkou specializaci, deklarují špičkové parametry pro e-comerce obchodníky, v tomto případě koncové zákazníky webhostingů. Vtipné je, že prakticky nikde není uvedená libovolná žádná výchozí hodnota pro srovnání čehokoliv. Třeba oblíbený TTFB (Time to first byte) či více vypovídající čas, který hostovaný CMS spotřebuje do doby, než spustí všechny skripty a odešle je do prohlížeče zákazníka. Kde mimo Česko a Slovensko běžně narazíte jak na externí recenze či recenze uživatelů, tak i informace poskytnuté přímo hostingovou společností. Například uvedené hodnoty
Rychlost načtení v EU | Rychlost načtení v USA | |
Cloudways | 0.93 | 0.79 |
Kinsta | 0.62 | 0.79 |
Flywheel | 0.35 | 0.86 |
WP Engine | 0.75 | 1.13 |
SiteGround | 1.04 | 0.31 |
DreamHost | 1.41 | 2.47 |
InMotion Hosting | 0.45 | 0.71 |
Bluehost | 0.96 | 1.37 |
v sekundách. Mezi nejrychlejším a nejpomalejším načtením a odesláním obsahu webové stránky k zákaznikovi je v tabulce mezi poskytovateli výrazný rozdíl. Značný? Ano, vysvětlíme proč je 50% nebo 90% u webhostingu velký rozdíl. A jaký je vlastně normální čas načtení webové stránky s WP nebo Woo?
Průměrná doba za kterou server zpracuje a odešle vyžádý obsah z WordPress.
do 100 ms = 0,1 sekundy
Testovací Hardware
Uvedená hodnota 0,1 sekundy byla naměřena na kapesním počítači Intel NUC i5 s instalovaným VMware ESXi 7.0. Ve VM instalovaný linuxový server. IOPS dodávaný 4 vCPU, 4GB RAM a k tomu běžný M2 NVMe disk. Test jsme opakovali i s SSD diskem s 5x nižší rychlostí, nižším počtem přidělených jáder vCPU. Naměřená hodnota se prakticky vždy shodovala. U WordPress se dosažený čas nezměnil ani po vygenerování několika set článků.
Testovací Software
Debian 11 server, Apache, Nginx, Varnish cache, MariaDB vše v aktuálních verzích.
Pluginy, moduly, keš
Perfmatters, WP-Rocket, Redis cache, OPcache, Varnish cache, Query monitor.
Ona zmíněna podstata
Jelikož dnes již neexistuje připojení k internetu s vyšší než hore uvedenou odezvou samotného CMS, odezva poskytovatele internetu se naopak pohybuje na opačné straně spektra (obvykle v rozmezí 5 až 50ms) lze reakční dobu 300ms u WP/Woo považovat za dostatečně pomalou na to, aby (ne)bylo možné v libovolném aspektu fungování e-shopu argumentovat pomalou přípojkou k internetu u zákazníka. Ale.. Počet uživatelů (procentuálně) kteří dosáhnou na optiku v domácnosti s odezvou 1ms je v porovnání s USA mizivé. A právě tady začíná sled události který může a často končí tím, že prakticky platíme vyšší cenu za nižší kvalitu.
Průměrná doba za kterou server zpracuje a odešle vyžádý obsah z WooCommerce
do 200 ms = 0,2 sekundy
TTL & Timeout
Každý „počítačem“ řízený proces ma přidělený čas na práci a dovolený počet opakování. Je to podobné jako u telefonování. Když se nedovoláte zavěsíte, nebo to za vás udělá operátor. Omezený výkon hostingu je ten operátor a v neposlední řadě aspekt cenotvorby. Na velkém trhu nastavíte pro zákazníka nejlepší možné podmínky a dáte o sobě vědět. Na malém trhu jdete do rizika, zainvestujete, nastavíte najlepší možné podmínky a dáte o sobě vědět anebo.. Nastavíte nepřehledné podmínky a doufáte, že na to naskočí co největší počet málo informovaných.. Co se vám jeví ve vaší situaci jako pravděpodobnější? :)
Prostý test pomocí curl
Existuje několik jedoduchých testovacích technik (benchmark tools). Asi nejrychlejší je metoda pomocí curl v případě, že webová stránka dotaz pomocí curl neblokuje
curl -L --output /dev/null --silent --show-error --write-out 'lookup: %{time_namelookup}\nconnect: %{time_connect}\nappconnect: %{time_appconnect}\npretransfer: %{time_pretransfer}\nredirect: %{time_redirect}\nstarttransfer: %{time_starttransfer}\ntotal: %{time_total}\n' 'google.com'
První výstup je z webu seznamzpravy.cz druhý z webu aktuality.sk. V první tabulce jsou testy z dedikované přípojky na dedikované přípojky. Druhý výstup (tabulka) je test z nededikované na dedikované zahraniční přípojky.
lookup: 0.057002 connect: 0.084977 appconnect: 0.074568 pretransfer: 0.122027 redirect: 0.059534 starttransfer: 0.171842 total: 0.197289 | lookup: 3.924205 connect: 3.969059 appconnect: 3.924063 pretransfer: 4.000827 redirect: 0.098746 starttransfer: 4.046485 total: 4.140192 |
lookup: 0.217126 connect: 0.302195 appconnect: 0.219074 pretransfer: 0.366022 redirect: 0.194784 starttransfer: 0.508591 total: 0.585602 | lookup: 0.094415 connect: 0.193834 appconnect: 0.108662 pretransfer: 0.252096 redirect: 0.192827 starttransfer: 0.354234 total: 0.605271 |
Linux CURL samozřejmě neinteraguje s požadavky skriptů umístěných we webových stránkách a provede prostý jednosměrný fetch. I když se nejedná o plnohodnotné načtení je patrné, že i mezi profi weby existují naoko propastné rozdíly. Naoko proto, že zde je zejména s ohledem na takzvanou zahraniční konektivitu zjevné, že rozdíl bude s největší pravděpodobností s „přeshraniční“ konektivitou. Tuto teorii lze potvrdit či eliminovat jednoduše tak, že test provedete z CZ přípojky na CZ server.
Proč je v tabulce..?
Proč jsou v tabulce světových webhostingů, které inzerují super výkon podprůměrné hodnoty s ohledem na uvedenou dobu načtení 100ms a 200ms? Jak je vysvětleno na testovacím portálu GTmetrix, nebo jak informuje další benchmark projekt PageSpeed Insights, normální Áčkova hodnota (C = 0–49 B = 50–89 A = 90–100%) je když webová stránka zareaguje a odešle první bit do 400ms. A zbytek stihne v rozmezí 1000 až 1500ms. To co dělají skripty na pozadí další vteřinu není důležíte, pokud tedy zvládnou dokončit vše (zpracovat košíik, přihlásit uživatele atp.) co je třeba pro fungování obchodu. Uvedené časy v tabulce jsou tedy naprosto v pořádku. Prostor mezi 100ms a 1000ms je to, čemu se v konsekvenci říká marže pro obchodníka. Jak na onu marži dosáhne z něj dělá nebo nedělá mistra.
Proč je plugin na zrychlení webu nesmysl?
Dvě vCPU vlákna, 2GB RAM a čistý kód šablony s přehledem utáhne standardní blog na WordPress. Jiným slovem pokud vám někdo tvrdí, nebo jen pomáhá (třeba mlčením) k dojmu, že za 150 Kč / měsíc kupujete hosting pro WordPress tak technicky nedělá nic špatného. WordPress beží víc než slušně i na Raspberry Pi 4. Podstata věci vězí v tom jaké zátěži bude web vystaven. A zda-li poskytovatelem deklarovaný výkon je skutečný. Pokud na zmiňovaném Raspbbery Pi nainstaluje ESXi a do něj třeba dalších 5 serverových instalací kde HTTP část obsluhuje 10 samostaných webových stránek, bude to fungovat jako slušný webhosting pro zhruba stovku lidí. Pokud do toho ale nainstalujete jeden funkční WooCommerce e-shop s tisícovkou položek, okamžitě se to projeví na rychlosti zpracování požadavků a načítání. Na to aby pomohl jakýsi plugin již nezbude výkon, čili dostatek IOPS.
Proč tedy existuje Varnis Cache..?
K čemu je pak řada doplňků, zrychlujících rozšíření či jiných řešení v cenách desítek dolarů až po ceny šplhající do desítek tisíc dolarů? U e-shopu s dynamicky generovaným obsahem prakticky k ničemu. Provedli jsme jednoduchý test v laboratorních podmínkách, to jest proti serveru v lokální síti kde je nulová latence spojení na server. Výsledek byl stejný. Bez pluginu web fungoval stejně rychle (pomalu) jako s instalovaným zrychlujícím (optimalizujícím) rozšířením.


Naměřené hodnoty jsou konečné s ohledem na to, že načtení všech skriptů se vždy provádí déle než načtení obrázků a textu. S ohledem na dynamicky generovaný obsah bylo v zásadě nemeřitelné zlepšení ani z jinak unikátní a špičkovou Varnish cache. Která prodává profesionální verzi vlastního kešování od 15 000$.
Užitečné
Článek Rychlost databáze MariaDB
Domovská stránka WooCommerce.