Proč je web pomalý, i když je server v pořádku
Jak si sami změřit, kde vzniká zdržení při načítání webu, a co s tím udělat, když server běží bez potíží.
5 minut čtení 9 kroků
Obsah návodu
Web se načítá pomalu, ale podle měření serveru je vše v pořádku. Obě věci mohou platit současně: server běží bez potíží, a přesto je web pomalý, protože zdržení vzniká uvnitř webu, v databázi, v doplňcích nebo ve velikosti stránky. Grafy vytížení serveru tyto věci neukážou. Níže najdete, jak si zdržení sami změřit a kde bývá příčina.
Nejdříve změřte, na co se čeká
- Otevřete web v anonymním okně prohlížeče, aby nehrála roli uložená data.
- Stiskněte F12, přepněte na záložku Network (Síť) a obnovte stránku.
- Podívejte se na první řádek, obvykle s názvem vaší domény. Ve sloupci Time nebo v detailu požadavku najdete položku Waiting (TTFB), tedy čekání na první odpověď serveru.
Výsledek určí, kde hledat:
- Čekání na server je nad 1 sekundu a zbytek se načte rychle: zdržení je uvnitř webu (databáze, doplňky, šablona).
- Server odpoví do půl sekundy, ale stránka se dokresluje ještě dlouho: problém je ve velikosti stránky (fotky, skripty, písma, videa).
- Pomalé je obojí: začněte serverovou částí, velikost stránky přijde na řadu potom.
Podobný přehled nabízí bezplatný nástroj PageSpeed Insights od Googlu. Hledejte v něm hodnotu „Doba do prvního bajtu“ a velikost stránky.
Příčiny uvnitř webu (pomalá odpověď serveru)
- Doplněk, který při každém načtení volá cizí službu: počasí, kurzy měn, sociální sítě, ověřování licence. Když cizí služba odpovídá pomalu, čeká na ni celý váš web.
- Chybějící mezipaměť (cache). WordPress bez cache skládá každou stránku znovu pro každého návštěvníka. S cache ji jednou složí a pak jen posílá hotovou.
- Databáze zaplněná odpadem. Tisíce revizí článků, transientů a záznamů po dávno smazaných doplňcích. Tabulka
wp_optionso desítkách megabajtů, kterou web čte při každém načtení. - Příliš mnoho doplňků. Nejde o počet, ale o to, co dělají. Jeden špatně napsaný doplněk zpomalí víc než dvacet dobrých; bezpečnostní a statistické doplňky bývají mezi nejnáročnějšími.
- Limity hostingu. Web naráží na limit paměti PHP nebo doby běhu skriptu, viz Limity webhostingu. Tato příčina bývá až poslední, ne první.
Příčiny ve velikosti stránky
- Fotky. Fotka z mobilu má 4 MB a 4 000 pixelů na šířku, na webu se zobrazí 800 pixelů široká. Prohlížeč musí stáhnout všechny 4 MB a pak fotku zmenšit. Deset takových fotek na stránce je 40 MB.
- Videa a mapy vložené přímo do stránky. Vložený přehrávač YouTube stáhne přes megabajt skriptů, i když video nikdo nespustí. Lepší je náhledový obrázek, který přehrávač načte až po kliknutí.
- Písma a skripty z cizích serverů. Každý cizí server znamená další čekání na spojení.
- Šablona s tisícem funkcí. Používáte z ní deset procent, prohlížeč stahuje sto.
Postup řešení
- Zapněte cache doplněk, pokud žádný nemáte. Ve WordPressu stačí jeden, například WP Super Cache nebo W3 Total Cache.
- Zmenšete největší fotky. Doplňky na optimalizaci obrázků to umí dodatečně pro celou knihovnu médií.
- Vypněte doplňky, které jste nainstalovali „na zkoušku“ a nepoužíváte. Vypnutý doplněk poté i smažte.
- Vyčistěte databázi od starých revizí a transientů, například doplňkem WP-Optimize. Před čištěním si databázi zálohujte, viz Jak exportovat databázi?.
- Ověřte verzi PHP. Novější verze bývá znatelně rychlejší; o změnu požádejte podporu podle návodu Jak změnit PHP verzi?.
- Po každé změně web znovu změřte. Bez měření nepoznáte, který krok pomohl.
Neinstalujte dalších pět doplňků na zrychlení. Každý přidá práci navíc a bez měření nevíte, zda pomohl.
Podrobnější kroky najdete v návodu Jak zrychlit WordPress. Pokud web zpomaluje jen při větší návštěvnosti, přečtěte si Web padá při náporu návštěvníků.
Kdy kontaktovat podporu a co jí poslat
Pokud jste cache zapnuli, fotky zmenšili a web je dál pomalý, je příčina hlouběji: v konkrétním dotazu do databáze, v doplňku, který se chová špatně jen za určitých podmínek, nebo v nastavení serveru. Podpora Datahostu ověří stav serveru a nastavení vašeho hostingu a poradí, zda web nenaráží na limity. Napište na podpora@datahost.cz a uveďte:
- adresu webu a konkrétní stránku, která se načítá pomalu,
- naměřenou hodnotu Waiting (TTFB) a celkovou dobu načtení,
- kdy se zpomalení projevuje (stále, jen v určitou denní dobu, jen v administraci),
- jaký redakční systém web používá a jakou verzi,
- co jste už vyzkoušeli (cache, vypnuté doplňky, změna verze PHP).
Podpora vidí server a jeho nastavení. Co dělá váš web uvnitř (jaké doplňky, jaké dotazy do databáze) je na straně správce webu, proto pomohou hlavně naměřené hodnoty a popis toho, co jste už zkusili.