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č bez DPH. 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

Web běží na ostré adrese od 14. 9. 2026. Tabule níž je jeho stav k 14. 9. 2026 — všechno v ní je změřené, nic odhadnuté. Co zatím nikdo nezměřil, je v ní schválně šedě a bez čísla.

Stav webu

Spuštěno 14. 9. 2026 · ověřeno 14. 9. 2026

  • Staré adresy vedou na svůj cíl 76 / 76
  • Spamové adresy vracejí 410 Gone 112 / 112
  • Adresy ze sitemapy vracejí 200 40 / 40
  • Interní odkazy vedou na existující stránku 3445 / 3445
  • Blokující kontroly před nasazením 10 / 10
  • Konfigurace není stažitelná (403) 1 / 1

Rozpočet velikostí

  • HTML titulní stránky 13 z 45 kB
  • CSS celého webu 5,4 z 25 kB
  • Vlastní JavaScript 0,5 z 25 kB
  • Váha stránky s fonty 197,8 z 450 kB

Měřeno 14. 9. 2026 nad hotovým buildem, komprese gzip -9. Kratší sloupec je lepší.

Čeká na měření z ostré adresy

  • Lighthouse — výkon nezměřeno
  • LCP nezměřeno
  • INP nezměřeno
  • CLS nezměřeno

Tyhle hodnoty zatím neuvádíme, protože je nikdo nezměřil. Doplní se sem i s datem měření — ne dřív a nikdy odhadem.

Čísla nahoře stojí za vysvětlení. 76 starých adres vede na svůj cíl jedním skokem — ne řetězem přesměrování, který by cestou ztrácel signály. 112 spamových adres z doby napadení vrací 410 Gone; kdyby se přesměrovaly na skutečné stránky, převedly by na ně signály z cizího spamu. A vlastní JavaScript 0,5 kB není chyba měření: skripty jsou vložené přímo ve stránce, takže prohlížeč nestahuje žádný soubor navíc.

Naopak Lighthouse ani Core Web Vitals tu nenajdete. Měří se na ostré adrese a po spuštění je ještě nikdo neměřil — doplní se sem i s datem. Číslo, které si dodavatel vymyslí, pozná zákazník za pět minut vlastním testem.

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.