Přeskočit na obsah
kontrolaSEO Pomáháme webům růst v Googlu a AI

Blog

Proč se web načítá pomalu: pět příčin, které vídám nejčastěji

Pomalý web není jedna vada, ale pět různých míst, kde se ztrácí čas. Tady je, jak se každé z nich pozná a co s ním jde udělat.

Jarda Pajskr

Když se web načítá pomalu, skoro vždycky za to může jedna z pěti věcí: pomalý server, těžké obrázky, skripty, které drží vykreslení, nafouklý kód stránky nebo cizí služby, které si na stránku někdo časem přidal. Zbytek jsou výjimky.

Rozdíl mezi nimi není akademický. Každá z těch pěti příčin se pozná jinak, opravuje jinak, stojí jinak a hlavně: čtyři z nich zvládne člověk, který se o web stará, a jednu ne. Když nevíte která je která, platíte za opravu, která nic nezmění, protože se opravovalo jinde, než se čas ztrácel.

Nejdřív se tedy podívejme, kudy stránka vlastně cestuje.

Pět kroků načtení stránky: prohlížeč hledá server, server přemýšlí, stahuje se kód stránky, čeká se na styly a skripty, objeví se text a obrázky.
Návštěvník vidí jenom poslední krok. Všechno před ním je čekání, při kterém kouká na bílou obrazovku a neví, jestli se web vůbec načítá.

Příčina 1: server odpovídá pomalu

Tohle je nejzákeřnější příčina, protože je nejdřív v řadě. Dokud server neodpoví, prohlížeč nemá co kreslit. Můžete mít obrázky vzorně zmenšené a kód bez jediného přebytečného řádku, a stránka bude stejně stát, protože se čeká na server.

Jak to poznáte: změří se to jako odezva serveru, tedy čas od požadavku po první data. Rychlý web je pod půl vteřiny. Nad osm desetin vteřiny už je to znát, nad dvě a půl vteřiny je to problém, kvůli kterému část lidí odejde dřív, než něco uvidí.

Čím to bývá

  • Přeplněný sdílený hosting. Na jednom stroji běží stovky webů a váš čeká ve frontě. Poznáte to podle toho, že odezva kolísá: ráno půl vteřiny, v podvečer tři.
  • Vypnutá mezipaměť stránek. Bez ní systém při každé návštěvě znovu sestavuje tutéž stránku z databáze. Ve WordPressu to řeší plugin na mezipaměť, na e-shopu bývá zapnutí v nastavení.
  • Pluginy, které se nepoužívají. Každý se načte při každém požadavku, i ten, co jste jednou vyzkoušeli a zapomněli na něj.
  • Vypnutá komprese přenosu. Zabalení dat zmenší přenášený kód zhruba na čtvrtinu. Bývá to jedno zaškrtnutí v administraci hostingu nebo pár řádků v souboru .htaccess a nestojí to nic navíc.

Zapnout mezipaměť a kompresi je nejlevnější zrychlení, jaké existuje. U webů, které mám na starosti, tahle dvojice udělá víc než všechny ostatní úpravy dohromady, protože se dotýká úplně každé stránky webu.

Příčina 2: obrázky, které nikdo nezmenšil

Fotka z telefonu má dnes běžně tři až pět megabajtů. Když ji někdo nahraje do galerie tak, jak vypadla z aparátu, prohlížeč ji celou stáhne a teprve pak zmenší na výřez široký pár set bodů. Návštěvník na mobilních datech přitom stáhl celé to megabajtové originální torzo.

U webu plného fotek jsou obrázky skoro vždycky největší část toho, co se přenáší. Zároveň je to část, se kterou se dá nejrychleji pohnout, protože se tu nesahá do kódu, ale do knihovny médií.

Tři věci, které s obrázky dělat

  • Úsporný formát. Tentýž obrázek ve formátu WebP váží zhruba o třetinu méně než v JPEG a na pohled je stejný. Ve WordPressu převod zařídí plugin a přepne i staré obrázky.
  • Odložené načítání. Obrázky pod prvním viditelným kusem stránky se nemusí stahovat hned. Značka loading="lazy" říká prohlížeči, ať je stáhne, až se k nim někdo doroluje. Většina redakčních systémů to dnes umí sama.
  • Uvedené rozměry. Když má obrázek v kódu napsanou šířku a výšku, prohlížeč mu nechá místo předem. Bez toho stránka při načítání poskakuje: člověk míří na tlačítko, obsah se posune a klikne vedle.

To poskakování je zvlášť ošklivá vada, protože se netýká jen rychlosti. Google ho měří samostatně a hodnotí jako známku špatné kvality. Víc o tom píšu v článku o třech metrikách, kterými Google měří pohodlí návštěvníka.

Z praxe Jardy Pajskra

Než sáhnu po pluginu, otevřu knihovnu médií a seřadím obrázky podle velikosti. Nahoře skoro pokaždé stojí pár fotek přes megabajt, které tam někdo nahrál rovnou z telefonu. Zmenšit těch pět na šířku, ve které se opravdu zobrazují, udělá víc než převádět celou galerii.

Příčina 3: skripty, které drží vykreslení

V hlavičce stránky bývají odkazy na skripty. Prohlížeč je bere vážně: než je stáhne a projde, nevykreslí ani řádek textu. Návštěvník do té doby kouká na prázdnou obrazovku, ačkoliv text stránky už dávno má stažený a mohl by ho ukázat.

Jak to poznáte: počítá se, kolik skriptů v hlavičce nemá značku defer nebo async. Pět a víc je vážná brzda. Jeden nebo dva jsou drobnost, ale i tak se to vyplatí spravit, protože oprava je jeden řádek.

Co s tím: skriptu se doplní značka defer. Ta prohlížeči říká: stáhni si mě, ale nečekej se zbytkem stránky. Ve WordPressu to zvládnou optimalizační pluginy jedním zaškrtnutím, jinde je to úprava v šabloně na pět minut. Druhá věc jsou soubory se styly: když jich je v hlavičce sedm a víc, stojí za to je spojit do jednoho.

Příčina 4: kód stránky se nafoukl

Samotný kód stránky, tedy to, co server pošle před obrázky a skripty, má u rozumně udělaného webu do sto padesáti kilobajtů. Vídám stránky, které mají čtyři sta i víc.

Skoro vždycky je za tím stavebnice stránek. Ty pracují tak, že jednu sekci obalí do pěti vnořených prvků a ke každému připíšou vlastní styl přímo do kódu. Výsledek vypadá v editoru pěkně a v kódu je z toho nafouklá hromada, kterou musí prohlížeč celou stáhnout a projít, než začne kreslit.

Co s tím: tohle je jediná z pěti příčin, kterou si majitel webu neopraví sám. Pomáhá vypnout části stavebnice, které se na webu nepoužívají, a přesunout vložené styly do samostatného souboru, který si prohlížeč uloží do mezipaměti a podruhé už nestahuje. Je to práce pro toho, kdo web dělal. Za odhad, kolik to zabere, se platit nemá.

Příčina 5: cizí služby, které se na web nastěhovaly

Tahle příčina se od ostatních liší tím, že nevznikne najednou. Naroste. Web se spustí rychlý, pak se přidá lišta se souhlasy, měření návštěvnosti, chatovací okno, mapa, widget s recenzemi, písmo z cizího serveru a měřicí kód z reklamy. Každý z nich sám o sobě nic není. Dohromady jich je deset a stránka se vleče.

Cizí služba je horší než vlastní kód ze dvou důvodů. Za prvé se stahuje z cizího serveru, takže musí prohlížeč navázat další spojení a čekat na někoho, koho neovlivníte. Za druhé si takové skripty často stahují další skripty, takže se řetěz čekání natáhne, aniž by to bylo z kódu vidět.

Co s tím: udělejte si soupis. Projděte, co všechno na stránce běží, a u každé položky si odpovězte, kdy naposledy něco přinesla. Chat, do kterého za rok nikdo nenapsal, je čistá ztráta. Mapa na kontaktní stránce dává smysl, mapa v patičce na všech stránkách webu ne.

Jarda Pajskr radí

Vypínejte je po jedné a po každém vypnutí stránku hned změřte a číslo si zapište. Když vyhodíte pět věcí naráz, zrychlení sice přijde, ale nikdo už nepozná, která z nich brzdila. A za půl roku se všechny vrátí, protože nikdo neví, proč vlastně zmizely.

Pět příčin v jedné tabulce

Podle toho, jak se která pozná a kdo ji zvládne opravit.

PříčinaJak se poznáKdo to spraví
Pomalý server Odezva nad 0,8 vteřiny, kolísá podle denní doby Vy nebo hosting: zapnout mezipaměť a kompresi, zvážit lepší tarif
Těžké obrázky Fotky v JPEG přes megabajt, stahují se všechny naráz Vy: plugin na převod do WebP a odložené načítání
Skripty v hlavičce Bílá obrazovka první vteřiny, pak vše naráz Vy jedním zaškrtnutím, nebo pět minut práce v šabloně
Nafouklý kód Kód stránky přes 400 kB, web stojí na stavebnici Ten, kdo web dělal. Sami si tohle neopravíte
Cizí služby Stránka se dokreslí a pak ještě chvíli žije vlastním životem Vy: vyhodit, co nic nepřináší

Čtyři z pěti příčin se dají spravit bez programátora. Nafouklý kód je jediná, u které se bez něj neobejdete.

Na tohle si Jarda Pajskr dává pozor

Za zrychlení webu se má platit proti číslu. Ať vám ten, kdo to dělá, zapíše odezvu serveru a velikost kódu před prací a po ní, měřené ve stejnou denní dobu. Bez těch dvou čísel platíte za pocit, že je web rychlejší, a ten mívá i po práci, která nezměnila nic.

Ukázka výsledku kontroly: odezva serveru 3,2 vteřiny jako chyba, vykreslení drží 6 skriptů jako chyba, kód stránky 268 kB a vypnutá komprese jako drobnosti, obrázky s rozměry v pořádku.
Rychlost se v kontrole měří čtyřmi věcmi: odezvou serveru, tím, co brzdí vykreslení, velikostí kódu a kompresí. K tomu jsou tři kontroly obrázků. Vždycky na jedné zadané adrese.

Čím začít, když je toho víc naráz

Skoro vždycky se najde víc než jedna příčina. Pořadí, ve kterém je řešit, není podle velikosti nálezu, ale podle poměru práce a užitku:

  1. Komprese a mezipaměť. Půl hodiny práce, dotkne se každé stránky webu.
  2. Obrázky. Plugin to udělá za vás, včetně starých obrázků nahraných před lety.
  3. Skripty v hlavičce. Jeden řádek nebo jedno zaškrtnutí.
  4. Cizí služby. Vyhazování nic nestojí, jen se o tom musíte rozhodnout.
  5. Kód stránky. Nejdražší a nejpomalejší. Až nakonec, a jen když první čtyři nestačily.

A pomůže to v Googlu?

Pomůže, ale ne tak, jak se to obvykle podává. Rychlost je jeden ze signálů, které Google bere v úvahu, a mezi dvěma stejně dobrými stránkami rozhodne ve prospěch té rychlejší. Není to ale páka, kterou by se nezajímavá stránka vytáhla z třetí strany na první. Pokud vás v Googlu nikdo nenajde, rychlost skoro jistě není hlavní důvod a stojí za to nejdřív zjistit, co je. Na to je analýza webu.

Kde rychlost rozhoduje doopravdy, je to, co se stane po kliknutí. Člověk, který na vaši stránku dorazil, čeká, a když se nic neděje, vrátí se zpátky do výsledků. Kolik lidí tím přijdete, se dá zhruba odhadnout, píšu o tom v článku rychlost webu a odcházející zákazníci.

Časté dotazy

Jak rychle se má web načíst?

Rozumný cíl je, aby návštěvník viděl hlavní obsah do dvou a půl vteřiny na mobilním připojení. Odezva serveru by k tomu měla být do půl vteřiny. Pod jednu vteřinu celkem se dostane málokdo a není to potřeba.

Pomůže lepší hosting?

Pomůže, když je příčina v serveru, tedy když je odezva vysoká a kolísá. Když web brzdí obrázky nebo skripty, přestěhování na dražší tarif nezmění nic a jen prodraží stejný problém. Proto se nejdřív měří, až pak stěhuje.

Zrychlí web, když smažu pluginy?

Pomůže to odezvě serveru, protože se jich načítá míň při každém požadavku. Zázrak od toho nečekejte: deset lehkých pluginů brzdí míň než jeden těžký. Smažte hlavně ty, které nepoužíváte, už kvůli bezpečnosti.

Proč mi web na počítači letí a na mobilu se vleče?

Protože telefon má slabší procesor a horší připojení. Kód, který počítač projde za desetinu vteřiny, zaměstná telefon na celou vteřinu. Měřte vždycky mobilní verzi, Google podle ní web hodnotí.

Změří kontrola i to, co se načte až po otevření stránky?

Nezměří. Kontrola stáhne kód stránky a rozebere ho, ale nespouští skripty a nevykresluje stránku jako prohlížeč. Chat nebo widget, který naskočí až po vteřině, se do měření nepromítne. Na tohle je PageSpeed Insights od Googlu.

Musím na to shánět programátora?

U čtyř z pěti příčin ne. Mezipaměť, komprese, obrázky a vyhazování nepoužívaných služeb zvládne člověk, který se do administrace webu dostane. Programátor je potřeba u nafouklého kódu ze stavebnice stránek.

Zjistěte, která z pěti příčin brzdí váš web

Zadejte adresu a za půl minuty víte, jak rychle odpovídá váš server, co drží vykreslení, jestli je zapnutá komprese a jak jsou na tom obrázky. Zdarma a bez registrace.

Spustit kontrolu webu

Jarda Pajskr

Napsal

Jarda Pajskr

Weby, SEO a správu webových stránek dělám od roku 2004. Sídlím v Kladně a pracuju po celé republice. Pomáhám webům firem, řemeslníků a e-shopům růst v Googlu i v odpovědích umělé inteligence.

Kontakt Zkontrolovat web zdarma