Hlavní navigace

Detekce indexovacího robota

25. 5. 2010 10:10 Pavel Chalupa

Řešil jsem nedávno detekci indexovacího robota v php přes HTTP_USER_AGENT. Bohužel to je nedostatečné.

Použil jsem klíčová slova jako ‚bot‘, ‚seznam‘, ‚google‘ apod. Stále však určité procento přístupů vykazovalo špatnou detekci. Ta špatná detekce byla pouze od serverů Googlu tohoto typu:

IP: 66–249–68–65

DN: crawl-66–249–68–65.googlebot.com

Tento typ robota vůbec nehlásí HTTP_USER_AGENT tak jak by měl a částečně se to vyřešilo použitím SERVER_NAME a detekcí ‚googlebot.com‘. Co je však nejzajímavější, že se tento robot ‚dívá‘ na stránku vzápětí po jejím navštívení uživatelem pomocí prohlížeče Internet Explorer 8 zhruba v časovém rozmezí do 10 sekund (max minutu). Vidím to jako nějakou užší spolupráci Microsoftu a Googlu zabudovanou přímo do IE 8. Problém je, že ta detekce nefunguje na 100%. Server, na kterém mi to běží, mi pravděpodobně nestihne přeložit IP na DN a přístup robota je započítán jako přístup návštěvníka. Nenapadá mě jiné řešení, než detekovat IP adresy podle tohoto klíče:

http://ws.arin.net/whois/?qu­eryinput=google

Jenže tady není vidět, co je konkrétně IP adresa robota. Nebo se s touto chybovostí smířit a neřešit to. Možná, že detekce pomocí SERVER_NAME a ‚googlebot.com‘ začne po určitém čase fungovat spolehlivě až se ‚nakešují‘ na serveru všechny DNS záznamy pro *.googlebot.com, ale to není jisté.