23. 9. 2008

Vylepšené zpracování robots.txt

Rozšířili jsme robots.txt o možnost omezení rychlosti stahování, použití tagu Allow a několik dalších funkcí.

Při vylepšování robota jsme se dotkli i zpracování robots.txt. SeznamBot nyní z větší části podporuje navrhovaný rozšířený standard a nějakou tu drobnost navíc.

Tag Request-rate – určení maximální rychlosti, s jakou smí robot procházet Vaši doménu. Např. Request-rate: 10/1m znamená, že robot smí stáhnout za minutu maximálně 10 stránek. Toto omezení můžete dokonce specifikovat pro konkrétní čas, Request-rate: 120/60s 1800-0359 robotovi říká, že v době od 20:00 do 05:59 smí stáhnout 120 url za minutu. Čas se uvádí v UTC, proto ta na první pohled podivná čísla.

Tag Allow – výjimka z pravidla Disallow. Může se hodit v případě, že zakážete indexaci nějakého adresáře, ale rozhodnete se povolit jeden z jeho podadresářů. Nezáleží na tom, v jakém pořadí pravidla použijete, robot si vybere pravidlo s delší shodou.

Zápis adresy pomocí bashovského regulárního výrazu – hledá se vždy přesná shoda, tedy nejen shoda na začátku cesty, ovšem s možností použítí zástupných znaků: znak * odpovídá jakékoli sekvenci znaků, ? odpovídá jakémukoli znaku, [abc] odpovídá znaku a, b nebo c, [!ab] jsou všechny znaky kromě a, b. Např. pravidlo Disallow: /clanky/[1234567890]* zakáže zpracování všech článků, začínajících číslem. Tento způsob zpracování robots.txt se použije pouze, pokud uvedete Robot-version: 2.0.

Více hvězdiček u tzv. Seznam syntaxe, která je použita, pokud není uvedeno jinak. Např. Disallow: /*/diskuze/*/ zakáže indexování jednotlivých odpovědí v diskuzi.

Příklad nových robots.txt:

User-agent: SeznamBot
Request-rate: 10/1m 0600-1459
  # 8:00-16:59 středoevr. letního času
Request-rate: 30/1m 1500-0559
  # od 17 hodin až do rána
Disallow: /
Allow: /clanky/
  # povol pouze indexování článků
Disallow: /clanky/diskuze

Podrobné informace najdete v nápovědě.