Přesměrování

Přesměrování doporučujeme použít v následujících případech:

  • když přesouváte obsah ze staré URL adresy na novou,
  • v případě, že máte stejný (duplicitní) obsah na více URL adresách.
Když robot uvidí přesměrování ze staré stránky na novou, pozná, že se k nové stránce má chovat stejně, jako se choval ke stránce staré. Počítá jí stejný rank, započítává zpětné odkazy mířící na starou URL i pro novou adresu a podobně.

Přesměrování staré URL na novou URL lze provést následujícími způsoby:

  • Vrácením stavu 301 Moved Permanently, což znamená, že stará stránka byla trvale přesměrována. 
  • Vrácením stavu 302 Moved Temporarily, což znamená, že stará stránka byla přesměrována pouze dočasně.
  • Pomocí meta tagu refresh.
  • Pomocí JavaScriptu. Pokud je pro vás důležitý správný přesun ranků a signálů, pak JavaScript k přesměrování nedoporučujeme, protože možných zápisů je příliš mnoho a náš robot nezná všechny.

V případě dvou a více URL se stejným obsahem se dá také použít kanonický link, protože náš robot interně chápe kanonický link velmi podobně jako stavový kód 301, i když uživatel prohlížečem nikam přesměrováván není. Další informace jsou na stránce o kanonických URL.

HTTP stavy 301 a 302

HTTP stav se mění změnou hlavičky HTTP odpovědi na serveru. Dá se to udělat různě:

  • Pomocí nějakého modulu webového serveru. Nnapř. pro Apache se používají moduly mod_rewrite nebo mod_alias; instrukce se zadávají do souborů httpd.conf nebo .htaccess. Pokud nevíte, jak to udělat, požádejte správce svého serveru o popis možností. Na většině hostingových řešení mají zapnutý mod_rewrite a klienti mají povolen zápis do .htaccess.
  • Některým ze serverových skriptovacích jazyků – PHP, ASP aj.
  • Některé redakční systémy (např. Wordpress) mají na přesměrování pluginy.

V každém případě http hlavičky musí poslat už server před samotným obsahem, takže http hlavičky nelze zapsat do html kódu stránky.

Meta refresh

Příklad přesměrování pomocí meta tagu refresh:

<html>
<head>
<meta http-equiv="refresh" content="3;url=http://seo-napoveda.cz">
<head>
<body>
...

Číslo tři znamená čas v sekundách, po jehož uplynutí zobrazí prohlížeč uživateli adresu novou zadanou v parametru url=. (Bude-li nastaven delší čas přesměrování než 7 sekund, stránka naším robotem nebude považována za přesměrovanou a bude se normálně indexovat.) Meta refresh s krátkým časem není optimální metoda přesměrování, protože různé vyhledávače se k němu můžou chovat různě. Kód lze ale psát přímo do HTML kódu stránky.

Rozdíl mezi stavy HTTP 301 a 302

Použitím různého druhu přesměrování můžete vyhledávači dát vědět, jak se má chovat ke staré (přesměrované) adrese:
  • Při použití stavového kódu 301 říkáte, že se stará URL nikdy nemá ve výsledcích objevit. Vždy se použije cílová adresa přesměrování (s výjimkou hlavní stránky webu, ta se ve výsledcích může objevit, i když na ní je přesměrování).
  • Stavový kód 302 znamená, že se vyhledávač může rozhodnout, kterou z adres použít jako cílovou URL. Buď starou (zdroj přesměrování), nebo novou (cíl přesměrování). Pro některé dotazy totiž může být přesměrovaná adresa lepší odpovědí než nová adresa. Týká se to zejména situací, kdy uživatel hledá přímo adresu webu, který je ale přesměrovaný jinam. Další informace o tomto chování máme na blogu.

Druhý rozdíl je v tom, že přesměrování 301 robot akceptuje okamžitě po objevení a začne s ním počítat. U přesměrování 302 několik dnů zkouší, jestli se na URL nevrátí obsah (http kód 200). (Toto chování se v budoucnu může změnit.)

Další způsoby přesměrování jsou pak ekvivalentem stavových kódů 301 a 302:
  • Meta tag refresh a rozpoznané javascriptové přesměrování je zpracováváno jako stav 302, takže se přesměrovaná URL může objevit ve výsledcích.
  • Kanonický link mířící na jinou URL chápeme naopak jako informaci o tom, že se stránka s kanonickým linkem ve výsledcích zobrazovat nemá a má být nahrazena svým kanonickým zástupcem. Pracujeme s ní tedy stejně jako se stavovým kódem 301. (Výjimkou jsou situace popsané v článku o kanonickém linku, kdy je kanonický link ignorován.)
Když je přesměrování relativně nové, může se stará adresa objevovat i při použití kódu 301.
 

Přesměrování celého webu

Doporučení při změně adres

Pokud předěláváte web a měníte strukturu URL adres tak, že staré stránce odpovídá nějaká nová, je dobré využít přesměrování. Ideální stav je, kdy jedné staré adrese odpovídá jedna nová adresa.

Pokud by se přesměrování nepoužilo a stará stránka by vracela HTTP odpověď 404, byla by vyřazena z indexu. Do indexu by se sice časem dostala stránka nová, ale odkazy na starou verzi by se nepřepočítaly ve prospěch nové stránky. Navíc uživatelé, kteří by navštívili starou nefunkční verzi, by mohli být smutní. Lepší je přesměrovat je na novou verzi.

Také nedoporučujeme nechat starou verzi webu na starých adresách nadále v chodu. Stránky by zůstaly v indexu a mají-li podobný obsah jako stránky nové, mohl by algoritmus nové stránky považovat za obsahové duplicity a ve výsledcích dávat přednost starým adresám. Jak by nové adresy postupně získávaly odkazy, tříštila by se návštěvnost i ranky tříštily mezi starou a novou verzi webu, což není vhodné. Není problém starou verzi běžet pár dnů nebo týdnů, než odladíte případné chyby, ale dlouhodobě rozhodně doporučujem na novou verzi přesměrovat.

Pokud naopak vytváříte úplně nový web, ve kterém již původní obsah nebude, je lepší na zaniklých adresách vracet stav HTTP 404 a obsah nepřesměrovávat. Kdo se rozhodne všechny staré adresy jen přesměrovávat na hlavní stránku nového webu, tomu se ranky a odkazy stejně nezachovají. Zachovaly by se, kdyby každá stará stránka mířila na nějakou konkrétní stránku nového webu s podobným nebo stejným obsahem (jak popisujeme výše).

Změna domény

Chcete-li svůj web provozovat na jiné doméně než dosud, přesměrování starých adres na nové je rozumné řešení. Jak pro uživatele, tak pro vyhledávače.

Opět samozřejmě platí, že je nejlepší přesměrovat stránky 1:1. Tedy stránce na staré doméně by měla odpovídat stránka na nové doméně. V případě přesměrované celé domény ale navíc doporučujeme přesně zachovat podobu cesty. Našemu algoritmu to umožní rychleji pochopit, že se celý web přesměrovává, a uhodnout, že jde o prostý přesun z domény na doménu bez změny cest. Může pak začít s přepočítáváním ještě dříve, než robot obejde všechny staré adresy.

Příklad dvojic přesměrovaných URL s nezměněnou cestou:

http://stara-domena.xxx/ -> http://nova-domena.xxx/
http://stara-domena.xxx/kontakt.html -> http://nova-domena.xxx/kontakt.html
http://stara-domena.xxx/?pageid=226 -> http://nova-domena.xxx/?pageid=226
 

Jak vidíte, doména se mění, ale cesta zůstává vždy stejná. (Šipka -> zde symbolicky znamená nějaké výše popsané přesměrování.)

Pokud byste chtěli zároveň s doménou měnit i nějaké cesty, udělat to můžete, ale náš algoritmus tím uvedete do nejistoty, zda správně uhodl způsob přesměrování. Poradí si s tím, ale musí napřed obejít všechna URL a podívat se na jedno po druhém, kam přesně se přesměrovávají. To může vést k delšímu přepočítávání ranků jednotlivých stránek i celého webu.

Změna protokolu na https

Totéž jako u změny domény. Pokud budete celý web přesměrovávat tak, že změníte pouze http na https (nebo naopak) a všechno ostatní zachováte, náš algoritmus by měl pochopit, že se přesměrovává celý web na https verzi. Přepočet ranků pro nové adresy pak provede výrazně rychleji, než kdyby musel všechny staré adresy obcházet.

Pokud se chcete obejít bez přesměrování a své stránky chcete (z různých důvodů) provozovat zároveň na obou protokolech http i https, je dobré říci vyhledávači, kterou z těchto verzí má ve výsledcích preferovat. K tomu se kromě přesměrování hodí také kanonický link. Dejme tomu, že si jako hlavní vyberete https verzi. Potom do http verze umístíte do hlavičky tento html tag:

<link rel="canonical" href="https://example.com/cesta-k-aktualni-strance/"> 

V příkladu samozřejmě musíte nahradit adresu za skutečnou adresu konkrétní stránky. Další informace jsou na stránce o kanonickém linku. Chování stránky tímto tagem nebude nijak ovlivněno, ale náš vyhledávač bude vědět, která verze je vámi preferovaná. Samozřejmě je potřeba mít na obou verzích totožný obsah.

Další doporučení při změnách adres celého webu

Při změně adres celého webu si prosím zkontrolujte, zda odkazy mezi jednotlivými stránkami vedou na nové adresy. Pokud by nějaký odkaz vedl na starou verzi, tak to sice funkčně nevadí, ale uživatele i našeho robota nutíte projít přesměrováním.

Nezapomeňte změnit adresy v souborech sitemap, pokud je používáte. Další informace o Sitemap.

Našemu obrázkovému hledání pomůže, pokud na novou doménu nebo protokol přesměrujete i obrázky.

Pokud svůj web provozujete vícekrát se stejným obsahem na více doménách nebo subdoménách (tak zvaný alias), zvažte raději přesměrování všech domén na jednu hlavní doménu. V případě více stejných obsahových domén se náš robot principiálně nemá podle čeho rozhodnout, kterou z nich má indexovat a vyhledávat primárně, takže se může stát, že si z různých domén vybere různé stránky a pak se odkazy a ranky tříští. Stejné texty na různých doménách jsou také postižené algoritmem, který při vyhledávání vyřazuje obsahové duplicity. Proto důrazně doporučujeme přesměrování aliasů na jednu hlavní doménu.

Jestliže náš robot najde soubor robots.txt, který se přesměrovává, nebude ho zpracovávat. Pokud ze staré domény (nebo protokolu) přesměrujete i robots.txt, akceptujte prosím, že robot nadále na starém webu nemůže vědět, kam podle autora robots.txt nesmí. Jestliže na starém webu nadále máte něco, co nechcete robotem prohledávat, ujistěte se, že robots.txt nepřesměrováváte.

Před nastavením přesměrování se ujistěte, že nové adresy:

  • fungují (i pod zátěží),
  • jsou dostupné i z internetu, ne pouze z vaší testovací sítě,
  • vracejí http status 200 a patřičný obsah,
  • neobsahují kód, který brání indexaci (např. meta tag robot noindex, meta refresh)
  • a nejsou zakázány v novém robots.txt
Pomohl Vám tento článek? Ne

Kontaktujte nás