Jak rychlý je webhosting a co 90% WooCommerce obchodníků na 100% neví

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.

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 EURychlost načtení v USA
Cloudways0.930.79
Kinsta0.620.79
Flywheel0.350.86
WP Engine0.751.13
SiteGround1.040.31
DreamHost1.412.47
InMotion Hosting0.450.71
Bluehost0.961.37
Webhostingová tabulka

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
Test z VPS
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
Test z xDSL

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.

WooCommerce webhosting Query Monitor
WooCommerce webhosting Query Monitor 0.16s = 160ms
WordPress webhosting Query Monitor
WordPress webhosting Query Monitor 0.08 sekundy = 80 ms

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.

ICTIS.CZ