Jak se vyhledávače staví k přesměrování

Když se SEO začínáte, obejdete se bez přesměrování, ale později je docela důležité. Přesměrování je výborný způsob, jak pozabíjet duplicity a je to také jediný způsob, jak elegantně změnit starší stránce URL v případech, kdy se URL změnit musí. Elegance spočívá v tom, že nepřijdete ani o čtenáře, ani o zpětné odkazy, které na staré URL vedou.

Platí dvě jednoduchá důležitá pravidla:

O přesměrování už jsem kdysi napsal román, takže se nebudu pouštět do zbytečných technických detailů. Jsou v zásadě tři způsoby, jak stránku přesměrovávat:

Zatímco http hlavička se pro vyhledávače hodí výborně, meta tag refresh jenom někdy (třeba pro Seznam). U Googlu nevím, jak přesně meta tag refresh funguje, ale mám pocit, že se přesměrované URL prostě zařadí do kanonické množiny cílového URL. Javascript se na SEO přesměrování nehodí vůbec. Naopak, některá kouzla javascriptem mohou být považována za podvod a vyhledávači ručně penalizována. Musíte-li tedy přesměrovávat, použijte http hlavičku Location.

Http hlavička Location způsobuje přesměrovávání. V praxi se dá vyrobit dvěma způsoby:

  1. nějakým modulem na serveru Apache (mod_rewrite, mod_alias), instrukcemi zadávanými v httpd.conf nebo v .htaccess, (na Windowsím serveru nějakým klikátkem,)
  2. nebo nějakou serverovou aplikací, například PéHáPko na to má funkci Header().

Tedy nic pro sraby a zelenáče :-). Napsal jsem onehdá něco o mod_rewrite a .htaccess.

Úskalí přesměrování ve vyhledávačích

Přesměrování někdy funguje dobře a někdy špatně. Na Seznamu pomaleji (několik dnů až týdnů, než se projeví), na Google obecně funguje přesměrování rychle, v jiných vyhledávačích jsem to netestoval. Obecně mohou nastat některé problémy:

Vyhledávač nemusí vzít přesměrování v úvahu:

Přesměrování adres

Přesměrováním na straně serveru se řeší dvě věci:

Pokud máte adresy jednotné a hezké, můžete tuto kapitolu vynechat.

Jiné než serverové metody přesměrování jsou pro optimalizaci pro vyhledávače nevhodné (včetně meta tagu refresh). Pokud nemáte pořádný hosting a nemůžete si s přesměrováním hrát, doporučuju buď změnu hostingu, nebo pláč a skřípění zubů.

Podstatné je, aby server při dotazu na starou adresu vracel návratový kód 301 moved permanently (uvádí se, že 302 je taky funkční). To se na každém serveru dělá jinak.

Na IIS (Microsoft Internet Information Server) se to někde naklikává v nastavení. Musí to (pokud vím) dělat správce serveru.

Na serveru Apache (na Linuxu i na Windows) se přesměrování nastavuje v souboru httpd.conf, což je konfigurační soubor serveru. Správce serveru ale může uživatelům povolit soubor .htaccess (ne všude je povolený, je to tak půl na půl). V souboru .htaccess se dá nastavit také přesměrování url. Pokud .htaccess nemáte, musíte správce serveru často obtěžovat s každým požadavkem na přesměrování, až vyměkne a .htaccess povolí.

Na serveru Apache se používají nejčastěji dva způsoby přesměrování

  1. jednoduché přesměrování pomocí redirect
  2. složité (ale mocnější) přesměrování pomocí mod_rewrite.

Redirect

Redirect se používá při přesměrovávání jedné nebo několika málo stránek. Je to standardní direktiva Apache a funguje v základní instalaci Apache (narozdíl od Mod Rewrite). Do soubotu .htaccess nebo do <VirtualDirectory> v souboru httpd.conf se napíše následující řádek:

Redirect 301 /stara_adresa.html http://www.cela_domena.cz/nova_adresa.html

Jakmile potom server Apache uvidí požadavek na starou adresu, přesměruje ji na novou. Nevím, jestli to dělá interně nebo v komunikaci s klientem, každopádně v prohlížeči se uživateli objeví už ta nová adresa. Také vyhledávače, když dostanou odpověď o přesměrování, poznamenají si, že stránka je na novém místě. Dokonce ve prospěch té nové adresy přepočítají ranky a zpětné odkazy.

Číslo 301 v zápisu redirectu říká, že přesměrování je trvalé (HTTP hlavička 301 moved permanently). Kdyby tam to 301 nebylo, server by posílal 302 moved temporarily (dočasné přesměrování). Prý je z hlediska vyhledávačů lhostejné, jestli tam bude 301 nebo 302, ale já tam pro jistotu to 301 píšu.

Mod Rewrite

Mod Rewrite není na každém serveru nainstalovaný. Říká se, že v kombinaci s povolením .htaccess představuje pro server riziko, protože pak není problém napsat tam chybu a uvařit server nějakým veselým zacyklením. Mod Rewrite se hodí pro složité přesměrování mnoha url najednou. Ideální je pro převod dynamických adres celého webu na adresy statické. Syntaxe příkazů pro Mod Rewrite je docela komplikovaná. Mohu nabídnout úvod do mod_rewrite.

Pokud dobře nastavíte pravidla pro mod_rewrite, můžete dál používat odkazy na dynamické stránky. Server je při požadavku převede na statické a pochopí to i vyhledávače.

Přesměrování v PHP

Na starou adresu se dá PHP kód:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.nova_adresa.cz/cesta/soubor");
header("Connection: close");
?>

Klient dostane http odpověď a automaticky přejde na novou adresu.

 

 

Reklama

www.webhosting-c4.cz, webhosting s doménou v ceně. 20GB
o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

Články Katalog zdrojů SEM SEO

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.