Také301 redirect, HTTP 301, trvalé přesměrování, Moved PermanentlyZákladní

Definice

Přesměrování 301 je odpověď HTTP serveru se stavovým kódem 301 Moved Permanently, která prohlašuje původní adresu za trvale nahrazenou novou adresou v hlavičce Location. Prohlížeč návštěvníka přesměruje, vyhledávače postupně nahradí starou URL v indexu novou a přenesou na ni hodnocení odkazů.

Kategorie: SEOAktualizováno

Než se na to spolehnete: Tvrzení o počtu skoků, které Googlebot v jednom průchodu následuje (zhruba pět), vychází z veřejných vyjádření Googlu, není to však formálně dokumentovaný limit. Rovněž trvanlivost cache 301 v jednotlivých prohlížečích se liší podle implementace.

<h2>Co server při 301 skutečně pošle</h2> <p>Server neposílá žádný obsah stránky, jen krátkou odpověď se stavovým řádkem <code>HTTP/1.1 301 Moved Permanently</code> a hlavičkou <code>Location</code>, která obsahuje cílovou adresu. Klient si z hlavičky vezme novou URL a vyšle na ni druhý požadavek. Uživatel v prohlížeči vidí jen výslednou stránku a v adresním řádku novou adresu; celá výměna proběhne bez jeho zásahu.</p> <p>Odpověď 301 je dle specifikace HTTP implicitně cacheovatelná, což je zásadní praktický rozdíl proti dočasným kódům. Prohlížeč si trvalé přesměrování uloží a při dalším pokusu o starou adresu už server vůbec nekontaktuje. Proto se chybně nastavená 301 opravuje těžko: dokud uloženému záznamu nevyprší platnost nebo si návštěvník nevyčistí cache, nová konfigurace na jeho počítači nezabere. Řízeně to lze omezit hlavičkou <code>Cache-Control</code> s krátkou dobou platnosti.</p> <h2>Proč na 301 tolik záleží v SEO</h2> <p>Vyhledávače berou kód 301 jako nejsilnější dostupný signál, že se adresa dokumentu změnila natrvalo. Po opakovaném procházení vyřadí starou URL z indexu, nahradí ji cílovou a převedou na ni signály hodnocení včetně zpětných odkazů. Tento přenos není okamžitý ani stoprocentně mechanický: Google 301 kombinuje s dalšími signály, mimo jiné s <a href="/slovnik/kanonicka-url">kanonickou URL</a> a vnitřním prolinkováním. Právě proto se doporučuje po migraci opravit i interní odkazy a <a href="/slovnik/sitemap">sitemapu</a>, aby nová adresa nebyla dostupná jen přes odskok.</p> <p>Typické nasazení: sjednocení domény s www a bez www, vynucení <a href="/slovnik/https">HTTPS</a>, přechod na nový redakční systém s jinou strukturou URL, sloučení dvou produktových stránek do jedné nebo změna značky a domény.</p> <h2>301 versus 302, 307 a 308</h2> <p>Kód 302 Found a novější 307 Temporary Redirect znamenají dočasnou změnu: původní adresa zůstává v indexu a signály se nepřenášejí. Rozdíl mezi 301 a 308 Permanent Redirect je v zacházení s metodou požadavku. Historicky mnoho klientů po 301 změnilo POST na GET a tato praxe se stala normou; kódy 307 a 308 naopak zaručují, že metoda i tělo požadavku zůstanou zachovány. Pro veřejné stránky a SEO se v praxi používá 301, pro API a formulářové endpointy je bezpečnější 308.</p> <h2>Co migraci nejčastěji rozbije</h2> <ul> <li><strong>Řetězce přesměrování.</strong> A vede na B, B na C. Každý skok stojí čas a část crawl budgetu; mapujte rovnou na finální cíl.</li> <li><strong>Smyčky.</strong> Dvě pravidla si přehazují požadavek dokola a prohlížeč skončí chybou o příliš mnoha přesměrováních.</li> <li><strong>Hromadné svedení na homepage.</strong> Zrušené podstránky mířící všechny na úvodní stránku vyhledávač obvykle vyhodnotí jako měkkou 404 a hodnotu nepřenese.</li> <li><strong>Ztráta parametrů.</strong> Pravidlo bez zachování query stringu odřízne UTM značky a rozbije měření kampaní.</li> <li><strong>Předčasné vypnutí.</strong> Přesměrování je vhodné držet nejméně rok, ideálně trvale, dokud na staré adresy míří externí odkazy.</li> </ul>

Příklady z praxe

  1. Sjednocení domény a vynucení HTTPS v Nginx

    E-shop byl dostupný na čtyřech variantách adresy (http i https, s www i bez), takže vyhledávač viděl čtyři kopie téhož obsahu. Jedno pravidlo v Nginx svede všechny varianty jedním skokem na kanonickou podobu. Klíčové je nepřesměrovávat nejdřív na https a teprve pak na bez-www, protože by vznikl zbytečný řetězec.

    server {
        listen 80;
        listen 443 ssl;
        server_name www.eshop.cz eshop.cz;
    
        if ($host = www.eshop.cz) {
            return 301 https://eshop.cz$request_uri;
        }
        if ($scheme = http) {
            return 301 https://eshop.cz$request_uri;
        }
    }
  2. Změna struktury URL po migraci katalogu

    Nový systém začal generovat adresy /produkt/123-nazev místo starých /detail.php?id=123. Místo obecného pravidla se vyexportuje mapa starých a nových adres z databáze a přesměrování se vygeneruje na základě ID, aby každý produkt mířil na svůj konkrétní protějšek. Zrušené produkty se svedou na nadřazenou kategorii, ne na homepage.

    // Express.js
    app.get('/detail.php', async (req, res, next) => {
      const target = await mapaUrl(req.query.id);
      if (!target) return next(); // pošle 404, ne homepage
      res.redirect(301, target);
    });

Časté omyly

MýtusPřesměrování 301 spolkne část hodnoty odkazů, takže se má používat co nejméně.
Ve skutečnostiPředstava o pevném procentu ztraceného „link juice“ pochází ze starších verzí algoritmu. Google opakovaně uvedl, že u přesměrování na relevantní obsah se hodnocení nekrátí. Reálnou ztrátu způsobuje spíš nesouvisející cíl nebo dlouhý řetězec skoků.
MýtusPřesměrování 301 se dá kdykoli snadno zrušit nebo přepsat.
Ve skutečnostiOdpověď 301 si prohlížeče ukládají do cache jako trvalou, takže návštěvník může na staré adrese skákat na starý cíl ještě dlouho po změně serverové konfigurace. Při nejistotě je bezpečnější nasadit dočasné přesměrování 302 nebo 307.
MýtusMeta refresh nebo JavaScriptové přesměrování funguje pro SEO stejně jako 301.
Ve skutečnostiPřesměrování na úrovni HTTP hlavičky vyhledávač zpracuje ihned při procházení. Meta refresh i JavaScript vyžadují stažení a vyhodnocení stránky, jsou pomalejší, méně spolehlivé a Google je považuje za slabší signál.

Časté dotazy

Jak dlouho trvá, než Google přesměrování 301 zpracuje?
Přenos signálů po přesměrování 301 není okamžitý. Vyhledávač musí starou adresu znovu projít, zaznamenat kód 301 a poté opakovaně ověřit, že přesměrování trvá. U často procházených stránek jde o dny, u okrajových URL i o týdny a měsíce. Proces urychlí aktualizovaná sitemapa, opravené interní odkazy a u změny domény nástroj pro ohlášení stěhování v Search Console. Během přechodného období je normální, že se ve výsledcích vyhledávání střídají obě adresy a návštěvnost mírně kolísá.
Jak dlouho mají přesměrování 301 zůstat v provozu?
Přesměrování 301 se doporučuje udržovat minimálně rok od migrace, protože tak dlouho na staré adresy míří externí odkazy, záložky a starší e-maily. Pokud provoz pravidel nic nestojí, je nejlepší nechat je běžet trvale. Před případným vypnutím stojí za to zkontrolovat v logu serveru, zda na staré adresy ještě chodí požadavky, a v analytice, kolik návštěv přes ně přichází. Odstranění pravidel bez kontroly znamená okamžitou ztrátu hodnoty zpětných odkazů a chybové stránky pro reálné návštěvníky.
Kolik přesměrování 301 za sebou je ještě únosné?
Řetězec přesměrování 301 by měl být ideálně nulový, tedy stará adresa míří přímo na finální cíl. Googlebot v rámci jednoho procházení následuje omezený počet skoků, obvykle se uvádí zhruba pět, a delší řetěz může znamenat, že cílovou stránku napoprvé vůbec neuvidí. Pro uživatele každý skok přidává další kolo síťové latence, což je citelné hlavně na mobilních sítích. Po každé další migraci proto stará pravidla přepište tak, aby ukazovala na aktuální adresu, místo aby se na sebe vrstvila.
Kdy použít 301 místo kanonické URL?
Přesměrování 301 se hodí, když stará adresa nemá existovat: obsah se přestěhoval, dvě stránky se sloučily nebo se sjednocuje doména. Kanonický odkaz naopak řeší situaci, kdy obě adresy musí zůstat funkční, například filtrované výpisy, varianty s parametry řazení nebo produkt dostupný ve více kategoriích. Rozdíl je v závaznosti: 301 je pro vyhledávač direktiva na úrovni protokolu, kanonický odkaz je pouze doporučení, které může vyhodnotit jinak. Když je volba možná, 301 je silnější a spolehlivější řešení.
Funguje přesměrování 301 i pro formuláře odeslané metodou POST?
Přesměrování 301 není pro POST požadavky bezpečné. Specifikace HTTP sice zachování metody nezakazuje, ale historická praxe prohlížečů je taková, že po 301 změní POST na GET a zahodí tělo požadavku, takže odeslaná data zmizí. Pro API endpointy, formuláře a webhooky se proto používá kód 308 Permanent Redirect, který zachování metody i těla výslovně garantuje, případně dočasný 307. Pro běžné veřejné stránky, kam se chodí metodou GET, zůstává 301 správnou volbou.

Zdroje

  1. RFC 9110: HTTP Semantics(otevře se v novém okně)IETF / RFC Editor, 2022
  2. 301 Moved Permanently - HTTP(otevře se v novém okně)MDN Web Docs
  3. Redirects and Google Search(otevře se v novém okně)Google Search Central
  4. Location header - HTTP(otevře se v novém okně)MDN Web Docs

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.