← Zpět na srovnání

Přesměrování 301: jak změnit URL bez slepých odkazů

Stará adresa má dovést návštěvníka přímo na odpovídající novou stránku. Připravte mapu URL, nastavte pravidlo a ověřte skutečnou odpověď serveru.

Přejmenovali jste stránku služby a odkazy z e-mailů či vyhledávače teď končí chybou? Přesměrování 301 oznámí, že se obsah trvale přesunul. Server vrátí stav 301 a hlavičku Location s novou adresou. Prohlížeč následně načte cíl. Samotná změna odkazu v menu starou URL neopraví. Podrobnosti popisuje dokumentace MDN ke stavu 301.

Kdy zvolit 301 a kdy jiný postup

Trvalé přesměrování se hodí při změně adresy článku, sloučení dvou stránek se stejným účelem nebo přesunu na novou doménu. Používá se také pro sjednocení variant webu, například HTTP na HTTPS nebo www na zvolenou variantu bez www. Nová adresa musí nejprve fungovat.

Pro dočasný přesun volte podle situace stav 302 nebo 307. U formulářů a API řešte také metodu požadavku: při 301 může klient změnit POST na GET. Pokud musí trvalé přesměrování zachovat metodu a tělo požadavku, použijte 308 a ověřte chování celé aplikace. Obecné pravidlo pro veřejné stránky proto nepřenášejte bez testu na platební či přihlašovací rozhraní.

Stěhujete pouze hosting a adresy zůstávají stejné? Přesměrování kvůli tomu nepotřebujete. Řešíte přenos aplikace a přepnutí DNS, jak ukazuje postup migrace webu na nový hosting. DNS směruje doménu k infrastruktuře; nerozhoduje o přesunu konkrétní cesty typu /stary-clanek/.

1. Připravte mapu starých a nových adres

Sepište každou měněnou URL a její konkrétní náhradu. Zdrojem mohou být odkazy na webu, stará sitemap, přehled vstupních stránek a access log. Ke každé dvojici přidejte očekávaný výsledek testu. Například stará stránka /puvodni-navod/ má vrátit 301 na /novy-navod/ a nová stránka má odpovědět stavem 200 s odpovídajícím obsahem.

Neposílejte všechny zrušené adresy na úvodní stránku. Pokud obsah nemá relevantní náhradu, bývá správný stav 404 nebo 410. Při sloučení několika článků může být společný cíl vhodný, pokud skutečně odpovídá jejich obsahu. Google na riziko hromadného přesměrování na nesouvisející cíl upozorňuje v doporučeních pro přesun webu.

2. Nastavte pravidlo v jedné spravované vrstvě

Nejprve zkontrolujte možnosti administrace hostingu nebo CMS. Pole se obvykle týkají zdrojové cesty, cílové URL a typu přesměrování. Ověřte, zda formulář očekává celou adresu, nebo jen cestu. Uložte si původní nastavení a začněte jednou málo navštěvovanou stránkou. Neudržujte stejné pravidlo současně v doplňku, na serveru a v CDN; při pozdější změně se obtížně hledá, která vrstva odpovídá.

Na Apache s dostupným modulem mod_alias lze pro jednu přesnou cestu použít následující pravidlo v kořenovém .htaccess, pokud hosting příslušné direktivy dovoluje:

RedirectMatch 301 ^/puvodni-navod/$ https://example.com/novy-navod/

Doménu a obě cesty nahraďte vlastními. Znaky ^ a $ omezují shodu na uvedenou cestu; varianta bez koncového lomítka tomuto příkladu neodpovídá. Jde o regulární výraz, takže například tečka v názvu souboru vyžaduje escapování. Pravidlo řeší cestu, nikoli výběr podle parametrů za otazníkem. Jejich přenos ověřte samostatně. Syntaxi a povolený kontext uvádí oficiální dokumentace Apache k RedirectMatch.

Před vložením porovnejte existující pravidla CMS a konfiguraci hostingu. Na Nginxu se .htaccess nepoužívá; nastavení patří do konfigurace serveru nebo příslušné administrace. Pokud po úpravě vznikne chyba 500, vraťte konkrétní změnu a zkontrolujte chybový log.

3. Zkontrolujte stav i hlavičku Location

V prohlížeči otevřete vývojářské nástroje a kartu Síť (Network), zapněte zachování záznamu a načtěte původní URL. Zkontrolujte první odpověď a následný požadavek. Nestačí vidět novou adresu v adresním řádku: přesun mohl provést JavaScript nebo uložené pravidlo v cache.

Pro veřejnou stránku můžete také použít curl. Následující příkaz odešle GET, zobrazí hlavičky a zahodí tělo odpovědi:

curl -sS -D - -o /dev/null https://example.com/puvodni-navod/

Ve Windows použijte tuto variantu, která obejde případný alias PowerShellu:

curl.exe -sS -D - -o NUL https://example.com/puvodni-navod/

Očekávejte stav 301 a Location: https://example.com/novy-navod/. Pro kontrolu celého řetězce přidejte -L --max-redirs 5. Výstup pak ukáže odpovědi jednotlivých kroků. Cíl otestujte také samostatně a prohlédněte jeho obsah. Stav 200 může vracet i stránka s textem „nenalezeno“.

Nejčastější chyby při nasazení

Co upravit na webu po přesunu

Interní odkazy změňte přímo na nové URL. Aktualizujte sitemap a canonical na cílových stránkách a ověřte, že indexaci neblokuje nechtěný noindex. Canonical pomáhá určit preferovanou adresu, ale návštěvníka sám nepřesměruje. Google používá trvalé přesměrování jako signál při volbě kanonické URL; viz dokumentace Google k přesměrování. Samotné nasazení nezaručuje okamžitou změnu výsledků hledání.

U přesunu webu Google doporučuje držet přesměrování alespoň rok. Pokud staré odkazy stále přivádějí návštěvníky, má smysl je zachovat déle. Po přesunu sledujte chyby 404, přístupy na staré URL a stav indexace v Search Console. Starou doménu proto nerušte hned po prvním úspěšném testu.

Kontrola před uzavřením změny

  1. Každá přesouvaná stránka má relevantní cílovou URL.
  2. Původní URL vrací 301 se správnou hlavičkou Location.
  3. Cíl funguje, vrací očekávaný obsah a nevytváří smyčku.
  4. Otestované jsou také varianty s lomítkem a důležitými parametry.
  5. Interní odkazy, sitemap a canonical používají nové adresy.
  6. Původní doména, DNS a HTTPS zůstávají funkční po potřebnou dobu.

U malého webu může stačit několik přesných pravidel. U větší migrace si ponechte mapu URL i výsledky kontrol: při pozdějším hlášení nefunkčního odkazu rychle poznáte, co mělo být jeho cílem.