Počítačová pohotovost Tvorba a propagace webů

Případová studie · 2026 · web a migrace

Začali jsme u sebe

Když někomu prodáváte rychlý a bezpečný web, první, co si o vás zákazník ověří, je váš vlastní. Ten náš byl na HTTP, běžel na Joomle, někdo ho napadl a za šestnáct měsíců přivedl osmnáct návštěvníků. Tohle je popis toho, co jsme s tím udělali.

Co nefungovalo

Subdoména tvorba.pocitacovapohotovost.cz prezentovala divizi, která dělá weby a jejich propagaci. Běžela na Joomle se šablonou Helix Ultimate, celá na HTTP — prohlížeč tedy u formulářů zobrazoval varování „nezabezpečeno". Na webu, který prodává tvorbu webů, je tohle nejvážnější jednotlivý problém, jaký může nastat: zákazník to přečte jako „neumí zabezpečit ani vlastní web".

K tomu patřily drobnosti, které samy o sobě nic neznamenají a dohromady jsou signál zanedbanosti: autor stránek uvedený jako „Super User", tedy výchozí hodnota Joomly. Odkaz na Google+, službu zrušenou v roce 2019. V ceníku položka „Upgrade Joomla systému" za 19 500 Kč. Menu s více než třiceti položkami ve třech úrovních.

Čísla, která rozhodla

Než jsme se pustili do přestavby, vytáhli jsme data ze Search Console za šestnáct měsíců. Vypadala takhle:

Výkon staré subdomény za 16 měsíců podle Search Console
Prokliky celkem18
Zobrazení20 350
Průměrné CTR0,09 %
Adres s aspoň jedním proklikem13 ze 151
Pozice na „webové stránky"64,6

Osmnáct prokliků za šestnáct měsíců znamená jednu věc: nebylo co ztratit. To se ukázalo jako důležité o pár odstavců dál.

Nález, se kterým jsme nepočítali

Ze 151 adres, které Search Console o subdoméně znala, jich 110 mělo tvar /products/G71…. Mezi dotazy, na které se web zobrazoval, byly japonské spotřební produkty a modelová označení elektroniky — dohromady 27 dotazů a 46 zobrazení. Na webu české agentury nemá ani jedno co dělat.

Byla to stejná rodina nálezu, jakou jsme krátce předtím řešili na hlavní doméně, jen s jinou náplní. Napadená instalace CMS sloužila cizímu prodeji. Na hostingu je dnes všechno smazané.

Co z toho plyne pro migraci

Těch 110 adres jsme nepřesměrovali. Dostaly stav 410 Gone. Poslat je na skutečné stránky by na ně převedlo signály z cizího spamu — a ty signály byly japonské, komerční a s naším oborem nesouvisející. 410 říká vyhledávači „zrušeno natrvalo"; 404 by znamenalo jen „nenalezeno".

Co jsme navrhli a proč

Žádné CMS

Web generuje Astro do statického HTML. Nemá jádro, rozšíření, administraci ani databázi. Jediný dynamický bod je PHP skript, který přebírá formuláře — pár set řádků, které neukládají nic na disk. Tohle není ideologie, ale přímý závěr z toho, co se stalo: instalaci, která tu nebyla, nejde napadnout.

Nové adresy, proti doporučení

Zadání pro přestavbu doporučovalo ponechat staré adresy znak po znaku — je to bezpečnější postup a na hlavním webu jsme ho použili. Tady jsme se rozhodli opačně a stojí za to říct proč, protože je to přesně ten typ rozhodnutí, který se dělá podle čísel, ne podle pravidla.

Riziko změny adres se popisuje jako propad o 10–20 % na dva až šest týdnů. Dvacet procent z osmnácti prokliků jsou tři prokliky. Proti tomu stálo, že 119 adres ze 151 nemělo příponu .html, takže „zachovat" by natrvalo zakonzervovalo nekonzistentní tvar adres — navíc z velké části pocházející z doby napadení.

Jedno přesměrování, ne dvě

Protože starý web běžel celý na HTTP, je veškerá dosavadní bonita navázaná na http:// adresy. Kdybychom řešili zvlášť přechod na HTTPS a zvlášť změnu adres, každý příchozí odkaz by skákal dvakrát. Každé z 39 pravidel proto míří rovnou na absolutní finální adresu a stojí před pravidlem pro kanonickou doménu. Výsledek je jeden skok z libovolné staré adresy v libovolném protokolu.

Co bylo součástí dodávky

  • Inventura 151 adres ze Search Console a redirect mapa
  • Nová struktura adres a keyword mapa
  • Design systém s kontrasty ověřenými skriptem v obou barevných schématech
  • Statický web v Astro 5, tři formuláře se záložní cestou e-mailem
  • Měření s Consent Mode v2 a cookie lištou, kde „Odmítnout" je stejně dostupné jako „Přijmout"
  • Sada blokujících kontrol, které neprojdou-li, web se nenasadí

Výsledek

Tady je potřeba být přesný. Web v době psaní této studie ještě není na ostré adrese, takže čísla z živého provozu — Lighthouse, LCP, Core Web Vitals — neexistují a nebudeme je odhadovat. Doplní se sem v den spuštění i s datem měření.

Co změřené je, jsou velikosti hotového buildu. Ty na serveru nezávisí:

Naměřené velikosti hotového buildu proti rozpočtu
VeličinaNaměřenoRozpočet
HTML titulní stránky po gzipu9,3 kB< 45 kB
CSS celého webu po gzipu4,8 kB< 25 kB
Vlastní JavaScript po gzipu11,5 kB< 25 kB
Váha stránky včetně fontů197,2 kB< 450 kB

Měřeno 2026-09-13 skriptem nad hotovým buildem, komprese gzip -9.

Co si z toho odnést, když řešíte totéž

Tři věci, které platí i mimo náš případ. Zaprvé, než se rozhodnete zachovat staré adresy, podívejte se, co doopravdy vydělávají — pravidlo „neměnit URL" je dobré, ale ne když měníte adresy, které nikdo nenavštěvuje. Zadruhé, po napadení se spamové adresy nepřesměrovávají; 410 je správná odpověď. Zatřetí, pokud web běží na HTTP, je přechod na HTTPS sám o sobě migrace a přesměrování je potřeba postavit tak, aby skákalo jednou.

Řešíte podobnou situaci?

Starý web, napadené CMS, nebo jen tušení, že to takhle dál nejde. Konzultace je nezávazná a nekončí objednávkou.

Ozveme se do jednoho pracovního dne.