Vyhledávací servery

jak spolupracovat s roboty

Co jsou vyhledávače - Jak pracují vyhledávače - Robot prochází internetem - Jak přilákat roboty - Zakázání přístupu robotům - Robots.txt - Tagy upravující sledování odkazů - Indexování - Klíčová slova - Vyhledávání - Čeština - Příklady vyhledávačů - Trocha mytologie

Co jsou vyhledávače

Třeba Google, Jyxo, Morfeo nebo částečně třeba Yahoo.com. Servery, které mají velikou databázi o tom, která stránka internetu obsahuje jaké slovo. Protože umějí hledat v celém textu stránek, říká se jim fulltextové. Takových serverů existují řádově stovky. Nepleťte si fulltextové vyhledávače s katalogy (Yahoo, Seznam), ačkoli poslední dobou (2004) se to k sobě dost blíží.

Programům, které procházejí web a schraňují pro vyhledávače informace, se říká roboti, boti, pavouci nebo crawleři.

Nejdůležitělší vyhledávač je Google. Více informací o Google. Údaje uvedené níže platí ale pro všechny vyhledávače.

Jak pracují vyhledávače

Ve třech krocích:

  1. Roboti (crawleři) sbírají data
  2. Pak se to zpracuje do databáze (indexování)
  3. Nakonec se to zpřístupní návštěvníkům, aby mohli klást dotaz (webmodul).

Robot prochází internetem

Většinou někde začne, třeba v nějakém katalogu. Najde odkaz a sleduje ho. Nalezenou stránku si stáhne pro zaindexování, zároveň hledá další odkazy, které případně opět sleduje, aby si to zase postahoval.

Z toho vyplývá, že robot může odhalit pouze stránku, na kterou vede nějaký odkaz. Musí přitom jít o klasický odkaz (na to obzvláště upozorňuji milovníky různých JavaScriptových parádiček). Pokud na vaše stránky nebudou roboti chodit, žádný čtenář ty stránky nemůže najít fulltextovým vyhledávačem.

V praxi ale roboti najdou jenom část stránek, které existují, protože to prostě všechno nestíhají. 

Jak přilákat roboty

Někteří přijdou sami po té, co se vaše stránka objeví v nějakém katalogu. Jiné roboty musíte popohnat. Většinou se to dělá na hlavní stránce vyhledávací služby (třeba Altavista) nenápadným odkazem (přidej odkaz, add a link, submit site, add site a podobně). Zadá se URL adresa (doporučuji kontrolovat), to je vše. Roboti časem přijdou.

Google a další moderní roboti prý přijdou na stránku teprve tehdy, když najdou určité množství odkazů, které na stránku míří. Proto je třeba mít zajímavý obsah, aby jiní autoři na moje stránky odkazovali.

Osobně jsem velmi skeptický k programům, které slibují, že přidají odkaz do spousty vyhledávačů. Jednak jde o vyhledávače zahraniční -- ty nejsou tak důležité jako české. Druhak se říká, že ty programy stejně jenom schraňují informace o zadavateli, aby to mohli prodat. Opravdu důležitých dobrých vyhledávačů je jen málo, není třeba být ve všech špatných. Navíc například Altavista těmto programům blokuje přístup a Google je prý v algoritmech penalizuje.

Zakázání přístupu robotům

Webmasteři mohou nastavit, aby na web roboti nechodili nebo aby chodili jenom někteří a někam. Nejčastějším důvodem pro tato opatření bývá velké zatížení linky nebo choulostivost informací. Existují dva základní způsoby, jak to udělat:

  1. Pro celý web najednou souborem robots.txt
  2. Pro každý soubor zvlášť pomocí meta tagu v hlavičce
  3. Pro konkrétní odkaz atributem rel="nofollow"

Robots.txt

Každý robot, který přijde prohledávat váš server, by se měl napřed podívat do souboru robots.txt, zda nemá zakázaný vstup. Soubor robots.txt musí být psán malými písmeny a musí být umístěn v kořeni webu (to jest hned za .cz nebo .com nebo tak). Je to obyčejný texťák. Jednotlivé řádky říkají, který robot (User-agent) kam nesmí (Disallow).

Příklady

User-agent: *
Disallow: /php/

čili všichni roboti (to je ta hvězdička) nesmějí do adresáře /php (protože řetězcem "/php/" začíná relativní URL souborů v něm). Nebo:

User-agent: Googlebot
Disallow:

User-agent: Gulliver
Disallow: /

Takový zápis říká, že Googlebot smí všude a Gulliver nikam. Všimněte si povinného prázdného řádku mezi položkami. Nebo:

User-agent: *
Disallow: /cgi-bin/
Disallow: /in
Tento zápis zakázal všem robotům (hvězdička) vstupovat do adresáře /cgi-bin a načítat stránky, které začínají řetězcem "in". Takže třeba info.html, index.html a podobně. To je mimochodem i přesná definice položky Disallow: zakazuje sledovat cesty, které začínají vypsaným řetězcem.

Všimněte si, že za jedním řádkem User-agent se může vyskytovat více řádků zákazů. Také dejte pozor na lomítko na začátku zakazované adresy.

Konstrukce Allow

Novější specifikace robots.txt dovoluje zakázané URL opět povolit. Pokud chcete  například zakázat všem robotům přístup, ale GoogleBotu jej povolit, zapíše se to takto:

User-Agent: *
Disallow: /

User-Agent: Googlebot
Allow: /

Podobně si lze zakázat celý kořenový adresář a pak zas něco povolit.

User-Agent: Jyxobot
Disallow: /
Allow: /stranky/

Konstrukci Allow podporuje Google, Jyxo a možná i další roboti (nevím), nepatří ale do původní specifikace.

Jako-regulární znaky v robots.txt

Googlebot chápe hvězdičku *, která v konstrukci Disallow nahrazuje libovolný počet znaků, a dolar $, který znamená konec adresy. Příklad:

User-Agent: Googlebot
Disallow: /*.php$

Zakážete stahování všech souborů, jejichž adresa končí na ".php" (a začíná jakkoliv). Funguje to pokud vím pouze na Google (není to součástí žádného standardu). Nebo

User-Agent: Googlebot
Disallow: /komentare/$

Zakáže stahování výchozího dokumentu v adresáři /komentare/, ale všechny ostatní soubory v adresáři /komentare/ mohou být stahovány. 

User-agent

Co se tam dá psát kromě hvězdičky? Jméno robota. Ale nemusí se podobat jménům služby a já těch jmen moc neznám. Informace se dají najít na stránce http://www.robotstxt.org/wc/active/html/index.html (anglicky).

Pro český web má smysl psát pravidla pro user-agenty:

Seznam nepříjemných robotů, které je dobré zakázat, je vidět v nastavení serveru http://www.webmasterworld.com/robots.txt.

Problémy

Zpřístupnění offline

Intenret Explorer když stahuje soubory pro prohlížení offline, tak se dívá na robots.txt a zdá se, že jeho omezení také respektuje. Pokud chcete, aby si vás čtenáři mohli číst offline v autobuse, tak nedělejte robots.txt moc restriktivní.

Tagy upravující sledování odkazů

Meta robots

Meta tag v hlavičce umožňuje zakázat robotům jednak indexování obsahu, jednak sledování odkazů. Důvody pro takové zákazy mi nejsou moc jasné, leda snad má smysl zakázat indexování některých rámů (typicky stránka s menu: noindex, follow).

Do hlavičky se v HTML napíše tag:

<meta name="robots" content="noindex, nofollow">

Přípustné hodnoty:

noindex
Obsah stránky nebude indexován
index
Obsah stránky bude indexován (normální hodnota)
nofollow
Odkazy nebudou sledovány
follow
Odkazy budou sledovány (normál)

Je dost otrava, že se to musí psát do každé stránky znova. Naštěstí ne každý se setkává s problémem vlezlých robotů.

Další možnou hodnotou, kterou respektuje Google, je hodnota noarchive. Zabrání poskytnutí stránky z cache Google. Sice se do ní uloží, ale pouze pro účely indexace (nenabídne se archiv).

Ještě musím zmínit, že opět ne všichni roboti to berou na vědomí. Např. Jyxo.cz meta tagy robots nerespektuje.

Zákaz sledování odkazu rel="nofollow"

Google počátkem roku 2005 oznámil, že při vyhodnocování důležitosti stránek nebude brát v úvahu odkazy, které obsahují atribut rel="nofollow". Mějme modelovou situaci, kdy budete chtít někoho pomluvit, ale přitom byste zároveň museli odkázat na jeho stránky. Tím by se jeho stránkám zvyšoval rank. Takže takhle:

<a href="http://pavlova-stranka" rel="nofollow">Pavel je debil</a>

Ale jak přesně to funguje, se zatím neví. Měl by to respektovat Google, MSN i Yahoo. Důvod pro zavedení byl údajně komentářový spam.

Jyxostart, jyxoend

S Jyxem můžete případně pracovat pomocí nestandardních poznámkových značek. Symbolicky zapsáno:

tato část stránky se neindexuje (je před jyxostart)
<!--JYXOSTART-->
tato část se indexuje
<!--JYXOEND-->
co je za jyxoend, se neindexuje

Indexování

Čili zpracování dat do databáze. Každý vyhledávač si žvýká nasbírané informace po svém. Nejčastěji si vypisuje všechna slova, počítá jejich váhu a dává je do relace s adresou stránky.

Váha (důležitost)

Při hledání slova vyplivne vyhledávač první adresy stánek, na kterých má hledané slovo velkou váhu. Jak se váha počítá? Aneb jak se pozná, zda je slovo pro stránku charakteristické? Především tak, že se dané slovo vyskytuje v titulku stránky, v klíčových slovech, v popisu a v nadpisech. Je nutno poznamenat, že každý vyhledávač to počítá jinak

Co vyhledávače sledují Jak je to v HTML Důležitost (váha)
titulek <title>text titulku</title> obrovská
klíčová slova <meta name=keywords
content="slovo, slovo">
značná,
někdy žádná (Google)
popis (description) <meta name=description
content="Stručný popis">
různá
nadpis 1. úrovně <H1>Nadpis</h1> značná
ostatní nadpisy <Hn>Nadpis</hn> sporná
začátek stránky <body>Několik prvních slov ... větší než malá
adresa URL jméno souboru včetně cesty různá
text odkazů mířících na tu stránku z jiného serveru <a href="adresa">text odkazu</a> u některých vyhledávačů obrovská (Google, Jyxo)
alty u obrázků <img alt="zástupný text" ...> malá
text stránky prostě text malá

V tabulce jsem nastínil pouze nejčastější kritéria. Ještě jednou musím zdůraznit, že se různé vyhledávače v počítání relevance opravdu velmi liší. Například Google prý zcela ignoruje klíčová slova (meta keywords). Nebo existují specializovaní roboti, kteří hledají třeba jenom obrázky nebo počet odkazů.

Klíčová slova

Velký význam býval připisován klíčovým slovům (keywords) a popisu (description). Zapisují se jako meta tagy. V zásadě se dá říci, že keywords by měl být seznam slov charakteristických pro danou stránku. Například zápis klíčových slov pro tuto stránku:

<meta name="keywords" content="vyhledávač,indexování,meta,keywords,description,robot,robots.txt, user-agent, disallow, altavista, google">

Význam klíčových slov v poslední době (myšleno 2004) zcela upadl, protože spousta lidí do nich píše nesmysly a marketingové žvásty. Autoři vyhledávačů to vědí, a tak význam keywords v kritériích snižují. Například Google již klíčová slova ignoruje zcela. Dnes mají keywords větší význam pouze pro interní vyhledávače (například Atomz).

Description = popisek

Naopak čím dál tím větší význam získává meta tag description. Všechny důležité vyhledávače (pokud vím) jej berou v úvahu.

<meta name="description" content="Jak zakázat robotům přístup na web nebo jak zlepšit výsledky vyhledávání">

Google zobrazuje popisek pod titulkem vyhledávání v případě, že popisek obsahuje hledané slovo (domnívám se, že s description pracuje stejně jako s nadpisem nejvyšší úrovně).

Vyhledávání

Dotazuje databáze a vyhazuje to výsledky.

Forma výsledků

Je zajímavé popřemýšlet, jak se moje nalezená stránka zobrazí. Nejčastěji se zobrazuje titulek stránky (obsah tagu <title></title>), pod ním tři různé věci:

  1. Buďto obsah meta tagu description,
  2. nebo prvních několik slov ze začátku stránky
  3. nebo kusy textu kolem hledaného výrazu.

Nejčastěji to býval právě description (takže je dobré jej zadávat), poslední dobou vítězí kusy textu kolem hledaného výrazu (zejm. Google, Webfast a Jyxo). Hlavně je ale třeba mít správně zadaný titulek stránky.

Řazení výsledků

Různé vyhledávače řadí výsledky různě. Obecně se dá říci, že čím více se hledaná slova na stránce vyskytují a čím mají významnější pozici (titulky, nadpisy), tím je stránka řazena výše. Sleduje se i text odkazů mířících na stránku, zda obsahuje hledané slovo. Algoritmy ale nikdo přesně nezná a liší se nejen od vyhledávače k vyhledávači, ale např. na Google prý každý měsíc. Proto nemá cenu psát sem víc, než odkaz na archiv české konference SEO (search engine optimalization).

Page Rank

Další metodou je takzvaný PageRank (PR), který používá Google (GPR) a poslední dobou (míněno 2005) mnoho jiných vyhledávačů. PR vyjadřuje něco jako věrohodnost nebo důležitost stránky. Page Rank ovlivňuje řazení výsledků, nikdo ale přesně neví jak (asi podstatně). Jaké mají vaše stránky Page Rank, se můžete dozvědět, pokud si stáhnete a nainstalujete Google Toolbar, což je taková lištička do prohlížeče.

GPR se počítá podle toho, kolik stránek danou stránku odkazuje -- čím více, tím lepší PageRank. Navíc odkazy ze stránek s vyšším PR mají větší váhu. Google Page Rank se počítá postupným přepočítáváním (iterací). Existuje na to vzoreček. Více o Google.

Nejlepší český vyhledávač Jyxo má navíc i JyxoRank, který se počítá podle toho, z kolika různých domén druhé úrovně vedou na stránku odkazy. Podle JyxoRanku řadí výsledky svého hledání, ale též je dává k dispozici Atlasu a Seznamu pro řazení odkazů v sekcích (psáno v létě 2003).

Čeština

S češtinou jsou spojeny dvě zásadní otázky, které spolu nesouvisejí:

  1. Jak vyhledávat háčkovaná a čárkovaná slova?
  2. Jak pozná vyhledávač, že je stránka česky? (Třeba Altavista nebo Google to umí poznat)

Háčky a čárky

Dříve bylo nutno zadávat dotaz dvakrát. Jednou bez diakritiky, podruhé s ní. Vyskytují-li se navíc ve slově znaky ž, š a ť, bylo třeba opakovat hledání v jiném kódování. Dnes (aktualizováno 2003) už to není potřeba, všechny moderní vyhledávače rozumějí češtině. Umějí rozeznat všechny hlavní znakové sady iso-8859-2, windows-1250 i UTF-8.

Někteří hloupější kódování češtiny ignorují a zapisují slova tak, jak je vidí v ascii kódu. To znamená, že třeba písmenko š si zapíšou jednou jako $185, jindy jako $154. Většina moderních vyhledávačů si texty ale převádí do unicode.

Rozpoznání jazyka

Jak vyhledávače poznají, v jakém jazyce je text? Různě. Mají na to čtyři možné způsoby:

  1. hledají meta deklaraci jazyka: <meta http-equiv="Content-Language" content="cs">
  2. hledají atribut lang=cs v jakémoli tagu
  3. provádějí heuristickou analýzu: čtou text a snaží se počítat slova charakteristická pro ten který jazyk (pro češtinu např. "se", "ale" nebo "je").
  4. orientují se podle generické domény (.cz) což je ale velmi nespolehlivé

Protože žádná z popsaných metod není spolehlivá (označení jazyka ve většině stránek není, heuristická analýza je pracná), není divu, že se vyhledávače občas v rozpoznání jazyka pletou.

Příklady vyhledávačů

České:

Aktualizováno v lednu 2005.

Anglické:

Trocha mytologie

Všechno, co jsem psal na této stránce, je do značné míry nejisté. Protože se chování vyhledávačů rychle mění, nemohu chování vyhledávačů testovat tak, jak bych chtěl, stejně bych na to neměl čas. Velkou část informací jsem někde četl nebo převzal ze specifikací. A v tom je právě problém.

Domnívám se, že každý, kdo popisuje meta tagy a vůbec chování vyhledávačů, také jenom odněkud opisuje, upravuje a přejímá. Skoro nikdo nedělá v oblasti vyhledávačů seriózní výzkum. Proto jsou informace na této stránce jistým druhem mýtu, který se předává z generace na generaci; pravdivé jádro v něm sice je, ale kdo ví, jak je to opravdu?

Zdroje na další informace naleznete v mém katalogu odkazů na SEO. Nejlepší zdroj je asi stránka www.vyhledavace.info.

 

o tvorbě, údržbě a zlepšování internetových stránek

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

Základy Prvky stránek Barvy Provoz webu

Jak psát web píše Yuhů, Dušan Janovský. Kontakt. Poslední aktualizace 13. února 2005.