lidově zvaná SEO (Search Engine Optimization)
Občas mě v sámošce potkávají staří kamarádi a říkají: "Hele, máme firemní stránky, ale nechodí nám na ně lidi. Nejsme k nalezení v Google Co s tím?"
Všichni vědí, že nejvíc lidí se dá sehnat z vyhledávačů. Pro české stránky (a o těch nyní píšu) má smysl optimalizovat pro:
Pro všechny vyhledávače platí přibližně stejná pravidla optimalizace. Původně jsem tuto stránku chtěl psát pro laiky, ale pak se mi to vymklo, problematika si to vyžaduje. Upravit stránky tak, aby na ně lidi chodili, prostě není sranda.
google nezná
jsem nízko
jsem na webpark
Nejčastějším důvodem, proč stránky nejsou k nalezení, jsou chybná nebo nejednotná url. Prostě blbé adresy stránek. Když píšu "nejednotná url", tak tím myslím, že na více adresách je stejný obsah. Třeba na následujících fiktivních adresách je to samé:
http://www.example.com
http://home.example.com
http://example.com
http://www.example.com/intro.html
Když je tam všude ten samý text, tak je to blbě. Vyhledávače děsně štve, když nějaký obsah (text) nacházejí na více adresách (url). Kdyby si takové stránky vyhledávače stahovaly, tak budou na některé dotazy poskytovat stále stejné výsledky, což je špatně. Takže třeba Google, když na dvou url najde ten samý obsah, prostě jednu adresu vybere a druhou zahodí.
Možná si říkáte, kde je problém? Když budete dělat odkazy stále na jednu jedinou adresu, tak to bude v pohodě. Problém je v tom, že jakmile část odkazů míříte na www.example.com a část na home.example.com, tak si hodně tříštíte rank a vyhledávače to mate.
Poslední dobou (psáno 2004) Google naštěstí přestal rozlišovat mezi variantou s www a bez www, takže třeba http://www.jakpsatweb.cz a http://jakpsatweb.cz je to samé. Ale není dobré na to spoléhat.
Pokud máte roztříštěné a najednotné url, vyberte si jednu variantu. Doporučuju s www na začátku. Všechny odkazy od nynějška namiřte na jednu verzi a prosazujte ji po všech čertech. Pokud jsou už obě varianty zaběhlé, vyberte si jednu a všechny ostatní na ni přesměrujte přesměrováním na straně serveru (viz níže). Případně není blbý nápad na zavržené varianty adresy dát restriktivní soubor robots.txt.
Dogma a svatá pravda: vyhledávače mají raději statické adresy než dynamické. Statické indexují raději a častěji se na ně vracejí.
Trocha teorie o statických a dynamických adresách (adresami myslím URL, prostě to, co je vidět v prohlížeči jako adresa):
Pokud v adresát otazník nemáte (máte statické stránky), můžete tyto kapitoly přeskočit.
http://www.seznam.cz/
http://www.sovavsiti.cz/weblog/
http://www.jakpsatweb.cz/pozadi.htm
http://www.lupa.cz/clanek.php3?show=3213
http://jyxo.cz/s?s=html
http://search.seznam.cz/search.fcgi?w=zuba%F8&mod=l-s-y&r=CZ0213&uir=532819
Za otazníkem jsou parametry. Parametr může být jenom jeden, nebo jich může být více, pak jsou odděleny znakem &. Konec teorie.
URL typu
http://example.com/?find=cokoliv
http://example.com/?search=cokoliv
http://example.com/?neco=neco&find=cokoliv
nemají v Google šanci. Pravděpodobně jde o zakaz v Google, aby si nezaplnili databázi cizími výsledky hledání. Parametry jménem search či find je potřeba nahradit něčím jiným (pokud se výsledek má idexovat).
Občas se uvádí, že Google nebere stránky s parametrem phpsessid nebo sessid. Podle mě je bere, ale často jim maže hodnotu.
Potíže s url ve vyhledávačích mají středně pokročilí weboví programátoři (a jejich manageři). Libují si v logických systematických dynamických adresách a čím má stránka víc parametrů, tím víc se jim to líbí. Blbá nemoc.
Pokud jste zjistili, že máte nevhodné url stránek, je potřeba s tím něco udělat. Možnosti:
Až tuto stránku dočtete, usoudíte, že nejlepší to bude celé překopat. Ale nyní vypadá jako nejlepší možnost trochu to přeprogramovat: přejmenovat parametr id a umazat zbytečné parametry. Nebo použít přesměrování (popisuji níže).
Přesměrováním na straně serveru se řeší dvě věci:
Pokud máte adresy jednotné a hezké, můžete tuto kapitolu přeskočit.
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í
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 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á a já ji neovládám. Odkazy:
Mod_rewrite pro lepší odkazy Svs, Což si tak trochu zapřepisovat?, Root.cz.
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.
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.
Podstatná část stránek na českém webu je z hlediska vyhledávačů příšerná. Obzvláště mizerně na tom jsou naleštěné firemní prezentace. Co nedělá dobrotu:
<h3><img src="nabidka.gif" alt="Nabídka"></h3>
Třeba tohle je nic moc. Že je tam ten alt (alternativní text), tak se to ještě dá skousnout. Například Google ale namísto nadpisu vidí prázdný nadpis. Správně je to:
<h3>Nabídka</h3>
Sice to není krásný obrázek, ale ruku na srdce: koho zajímá nějaký obrázek s textem "Nabídka"? (Leda tak šéfa, v tom případě je to problém.)
Google si všímá hodnoty atributu alt jenom v případě, že je obrázek v odkazu. Např.:
<a href="kontakt.html"><img src="kontakt.gif" alt="kontakt na nás"></a>
V tom případě Google o cílové stránce ví, že na ni vede odkaz s textem "kontakt na nás". Nejlepší je to samozřejmě takhle:
<a href="kontakt.html">kontakt na nás</a>
Jsou dva typy javascriptových odkazů, se kterými si vyhledávače nerozumí. Jednak přímý zápis pseudoprotokolem javascript:
<a href="javascript: window.open('nove_url.html')">text odkazu</a>
To se mimochodem nelíbí ani uživatelům (nejde to otevřít do nového okna, ve status baru není vidět adresa apod.). Druhý způsob javascriptového odkazu využívá události onclick:
<a href="#" onclick="location.href='nove_url.html'">text odkazu</a>
To taky vyhledávače neprokliknou. Správný postup je udělat to co nejjednodušeji:
<a href="nove_url.html">text odkazu</a>
a nebo alespoň přístupně s nějakou funkcí:
<a href="nove_url.html" onclick="nejaka_funkce('nove_url.html); return false'">text odkazu</a>
Více o otevírání nových oken javascriptem.
Jak psát web píše Yuhů, Dušan Janovský. Kontakt. Poslední aktualizace 13. února 2005.