„Potřebujeme se přestěhovat na jiný hosting, ale bojíme se, že web vypadne a ztratíme e-maily." Oprávněná obava — špatně zvládnutá migrace umí způsobit hodiny výpadku, ztracené zprávy a pokažené SEO. Při správném postupu ale návštěvník nepozná vůbec nic. Tento článek píšeme den poté, co jsme vlastní web přesunuli na nový server — přesně tímto postupem.
Kdy má migrace smysl
- Pomalý hosting — server reaguje stovky milisekund, web se vleče a Core Web Vitals trpí
- Chybějící kontrola — nemůžete si nastavit PHP verzi, cache, HTTP hlavičky či moderní deploy
- Růst projektu — sdílený hosting přestává stačit výkonem nebo izolací
- Konsolidace — víc webů chcete dostat pod vlastní správu s izolací per projekt
Po naší migraci klesl čas zpracování požadavku přibližně 2,5násobně — a to je rozdíl, který je cítit v Google metrikách i v UX.
Zlaté pravidlo: web ≠ e-mail
Nejčastější a nejbolestivější chyba při migraci: zapomenout, že na doméně běží i e-mail. Stěhujete web — tedy A záznamy (kam míří doména v prohlížeči). E-mail (MX, SPF, DKIM, DMARC záznamy) může klidně zůstat u původního poskytovatele.
Před migrací si proto udělejte inventuru DNS zóny: co je web (A/AAAA, www), co je e-mail (MX, mail/smtp subdomény, TXT pro SPF/DKIM/DMARC) a co jsou další služby (FTP, subdomény, wildcard). Měníte jen webové záznamy — všechno ostatní nechte být.
Postup migrace krok za krokem
1. Příprava nového serveru (web pořád běží na starém)
Nový server se kompletně připraví, zatímco produkce běží nerušeně dál: webserver, PHP/runtime ve správné verzi, SSL certifikát, přenos souborů a databáze, konfigurace. Žádný stres — nic není naživo.
2. Snížení DNS TTL
Den dva před přepnutím snižte TTL webových záznamů (např. z 1 hodiny na 10 minut). Internet si pak „pamatuje" starou IP jen krátce — přepnutí i případný návrat zpět se projeví za minuty.
3. Test na novém serveru ještě před přepnutím
Přes lokální hosts soubor (nebo testovací doménu) nasměrujete svůj počítač na nový server a proklikáte celý web na ostré doméně: formuláře, e-maily, administraci, HTTPS, přesměrování. Chyby odhalíte a opravíte dřív, než je uvidí první návštěvník.
4. Cutover — přepnutí DNS
Změníte A záznamy na novou IP. Během propagace (při sníženém TTL minuty) část návštěvníků obsluhuje starý server a část nový — oba běží, takže výpadek nevzniká. Po přepnutí sledujete logy a metriky.
5. Starý server zůstává jako fallback
Obsah na starém serveru nemažte. Kdyby se cokoli pokazilo, rollback je jen vrácení DNS záznamů — při TTL 10 minut jste zpět do deseti minut. Starý hosting rušte až po týdnech bezproblémového provozu (nebo ho nechte na jiné služby, například e-mail).
Bonus: atomic deploy — releases místo přepisování
Migrace je ideální příležitost zmodernizovat i nasazování. Místo přepisování souborů „naživo" přes FTP používáme strukturu atomic releases:
/var/www/web/
├── releases/
│ ├── 20260610-153000/ ← nový release (git clone + composer)
│ └── 20260603-101500/ ← předchozí release
├── shared/ ← logy, konfigurace s hesly, sessions
└── current → releases/20260610-153000/ ← symlink = živá verze
Nasazení nové verze = připravit nový release adresář a přepnout symlink (okamžité, atomické). Rollback = přepnout symlink zpět. Žádné polonahrané soubory, žádná stará cache — a historie verzí zadarmo.
Na co si dát pozor — checklist
- ☐ Inventura DNS zóny (co je web, co e-mail, co ostatní služby)
- ☐ E-mail/MX záznamy se nemění (pokud nestěhujete i mail)
- ☐ SSL certifikát připravený na novém serveru před přepnutím
- ☐ Odesílání e-mailů z webu otestované (SMTP porty bývají na VPS blokované — např. 465 vs 587)
- ☐ Formuláře, administrace a přesměrování otestované přes hosts ještě před cutoverem
- ☐ DNS TTL snížené předem, rollback plán připravený
- ☐ Starý server běží jako fallback minimálně pár týdnů
- ☐ Po migraci: Search Console a monitoring bez chyb, rychlost porovnaná (benchmark před/po)
Časté otázky
- Jak dlouho trvá migrace webu na nový hosting?
- Příprava a testování 1–3 dny (web běží normálně dál), samotné přepnutí DNS pár minut až hodin podle TTL. Při správném postupu návštěvníci výpadek vůbec nezaznamenají — starý i nový server běží paralelně, dokud se DNS nepřeklopí.
- Dojde během migrace k výpadku webu?
- Při správném postupu ne. Web se nejprve kompletně zprovozní a otestuje na novém serveru (přes hosts soubor nebo testovací doménu), až potom se přepne DNS. Během propagace obsluhují návštěvníky oba servery — starý i nový — takže výpadek nevzniká.
- Ztratím při migraci webu e-maily?
- Ne, pokud se na ně nezapomene — to je nejčastější chyba. E-mail (MX záznamy) může klidně zůstat u původního poskytovatele, stěhuje se jen web (A záznamy). Před migrací je třeba udělat inventuru DNS a měnit jen to, co se týká webu. SPF/DKIM/DMARC zůstávají nedotčené.
- Co je DNS TTL a proč ho před migrací snížit?
- TTL (time to live) určuje, jak dlouho si internet pamatuje starou IP adresu domény. Před migrací ho snížíme (např. na 10 minut), takže přepnutí na nový server se projeví rychle — a případný rollback na starý server trvá také jen minuty místo hodin.
- Jak se dá migrace vrátit zpět, když se něco pokazí?
- Starý server se po přepnutí nevypíná — obsah na něm zůstává nedotčený jako fallback. Rollback je pak jen vrácení DNS záznamů na původní IP (při sníženém TTL do ~10 minut). Starý hosting rušíme až po týdnech bezproblémového provozu.
- Vyplatí se přesunout web z klasického hostingu na vlastní VPS?
- U rostoucího webu ano — vlastní server (VPS) přináší rychlejší odezvu (v našem případě ~2,5× rychlejší zpracování), plnou kontrolu nad konfigurací, izolaci per projekt a moderní deploy (atomic releases, okamžitý rollback). Pro malé statické weby klasický hosting obvykle stačí.
Závěr
Migrace webu není riziko, pokud se dělá ve správném pořadí: nejprve připravit a otestovat, až potom přepnout — s e-maily nedotčenými a rollbackem v záloze. Přesně takhle jsme právě přesunuli i náš vlastní web a návštěvníci nezaznamenali nic kromě rychlejšího načítání — což je mimochodem i signál pro technické SEO. Pokud zvažujete přesun webu na lepší hosting či vlastní server, pomůžeme s migrací i provozem — napište nám a ozveme se do 24 hodin.