Přejít na hlavní obsah

Znalostní báze · Rychlost webu

Jak zrychlit načítání webu

Každá sekunda načítání snižuje konverze. Konkrétní kroky od nejrychlejší výhry po komplexní backend optimalizaci.

Tři metriky, které Google sleduje

LCP

Largest Contentful Paint

Cíl: pod 2,5 s

Jak rychle se načte největší obrázek nebo text

CLS

Cumulative Layout Shift

Cíl: pod 0,1

Míra neočekávaného pohybu prvků při načítání

INP

Interaction to Next Paint

Cíl: pod 200 ms

Odezva stránky na klik nebo stisk klávesy

Kde začít: nejrychlejší výhry

Než spouštíte komplexní optimalizaci, zaměřte se na tyto tři věci — mají největší dopad v nejkratším čase:

1. Obrázky (nejčastější příčina pomalých webů)

Neoptimalizované obrázky jsou zodpovědné za 60–80 % objemu stažených dat na průměrném webu. Co dělat:

  • Převést na WebP — WebP je o 25–35 % menší než PNG nebo JPEG při stejné kvalitě. V PHP: imagecreatefromjpeg() + imagewebp(), nebo knihovna Intervention Image.
  • Lazy loading — přidat loading="lazy" na všechny obrázky mimo viewport. Výjimka: hero obrázek (ten naopak musí mít fetchpriority="high").
  • srcset a sizes — pro responsivní obrázky, aby mobilní prohlížeč nestahoval obraz pro desktop.
  • Komprese — před nahráním komprimujte přes Squoosh, TinyPNG nebo automaticky při uploadu.

2. Caching

Bez cachingu server generuje každou stránku od nuly při každém návštěvníkovi. Dvě vrstvy:

  • HTTP cache hlavičky — statické soubory (CSS, JS, obrázky, fonty) by měly mít Cache-Control: max-age=31536000, immutable. Nastavte v .htaccess nebo nginx.conf.
  • PHP OPcache — PHP kompiluje skripty při každém requestu, pokud není OPcache zapnutý. Zkontrolujte v phpinfo(), zda je aktivní.

3. Minifikace CSS a JavaScript

Nekomprimované soubory mohou být 2–5× větší než potřeba. Veškeré komentáře, mezery a odsazení přidávají bytes bez hodnoty pro prohlížeč. Nástroje: Vite/esbuild pro JS, PurgeCSS pro odstranění nepoužitého Tailwind CSS.

Střední úroveň: server a CDN

Gzip / Brotli komprese

Textové soubory (HTML, CSS, JS) se komprimují na 20–30 % původní velikosti. Brotli je novější a lepší než Gzip. Ověřte přes curl -I -H "Accept-Encoding: br" https://vaseweb.cz — v response byste měli vidět Content-Encoding: br.

CDN (Content Delivery Network)

CDN servíruje statické soubory z geograficky blízkého serveru. Pro CZ/SK weby stačí Cloudflare (free tier) — přesměruje DNS, automaticky komprimuje, cachuje statiku a chrání před DDoS. Konfigurace trvá 15 minut.

TTFB — Time to First Byte

TTFB nad 600 ms signalizuje buď pomalý hosting, nebo pomalou PHP aplikaci. Příčiny: zbytečné databázové dotazy při každém requestu, absence server-side cache, přetížený sdílený hosting. Řešení podle příčiny: optimalizace dotazů, Redis/Memcached cache, nebo přestup na lepší hosting.

Pokročilá úroveň: databáze a backend

N+1 problém

Klasická past v ORM frameworcích (Doctrine, Eloquent, ActiveRecord). Místo jednoho SQL dotazu, který načte 100 záznamů s relacemi, se provede 101 dotazů (1 + 100 pro každý záznam zvlášť). Řešení: JOIN nebo eager loading (with() v Eloquent, JOIN FETCH v Doctrine).

Chybějící databázové indexy

Dotaz bez indexu prohledává celou tabulku. Na tabulce s 10 000 záznamy to trvá milisekundy, na tabulce s milionem záznamů sekundy. Identifikujte problematické dotazy přes MySQL EXPLAIN nebo slow query log (slow_query_log = 1 v my.cnf).

SELECT * místo konkrétních sloupců

Každý sloupec navíc zvyšuje objem dat přenesených z databáze. Pokud potřebujete jen ID a jméno uživatele, pište SELECT id, name FROM users, ne SELECT *.

Jak ověřit výsledky

Po každé změně měřte, ne odhadujte:

  • PageSpeed Insights — pagespeed.web.dev — celkové skóre + CWV
  • WebPageTest.org — detailní waterfall diagram načítání
  • Chrome DevTools — záložka Network (co se stahuje) + Lighthouse (audit)
  • GTmetrix — přehledný report s doporučeními

Měřte vždy z mobilního pohledu — Google primárně hodnotí mobile-first a mobilní skóre bývá výrazně horší než desktop.

Nejčastější otázky

Jak zjistím proč je můj web pomalý?
Nejrychlejší způsob: otevřete PageSpeed Insights (pagespeed.web.dev) a zadejte URL vašeho webu. PSI ukáže skóre 0–100 pro mobil a desktop a konkrétní příčiny — chybějící komprese, blokující skripty, velké obrázky. Pro podrobnější analýzu použijte Chrome DevTools záložku Network a Lighthouse.
Co jsou Core Web Vitals?
Core Web Vitals jsou tři metriky, které Google používá jako ranking signál: LCP (Largest Contentful Paint) — jak rychle se načte největší vizuální prvek, ideálně pod 2,5 s. CLS (Cumulative Layout Shift) — míra neočekávaného posunu layoutu při načítání, ideálně pod 0,1. INP (Interaction to Next Paint) — odezva stránky na klik nebo stisk klávesy, ideálně pod 200 ms.
Kolik stojí optimalizace rychlosti webu?
Cenu domluvíme předem. Jednoduchá frontend optimalizace (obrázky, minifikace, caching) trvá 2–4 hodiny. Komplexní optimalizace včetně databáze a serverové konfigurace 4–10 hodin. Přesný rozsah závisí na projektu — konzultace 30 minut zdarma.
J

Jan Matoušek

Webový vývojář. Programuju od 2004, profesně od 2009. PSI optimalizaci a rychlost načítání řeším jako součást technického auditu i jako samostatnou zakázku.

Napište mi

Potřebujete poradit,
něco udělat nebo
druhý názor?

Nemusíte se připravovat ani znát technické detaily. Stačí pár vět o tom, co máte a co potřebujete — ozvu se do 24 hodin a řeknu, jak se na to dívám.

Konzultace 30 minut zdarma - bez závazku
Cenu domluvíme předem

Telefon / WhatsApp

+420 773 202 288

První napsání je zdarma a nezávazné. Ozvu se do 24 hodin.

Napsat mi