Google bot

Na webe, na ktorom v poslednej dobe pracujem, sme riešili vyhľadávanie reštaurácií podľa ich adries. Požiadavka bola, aby som vytvoril vyhľadávací box na adresu a pri písaní by našepkávač ponúkal dostupné adresy. Mal som dve možnosti.

VLASTNÝ REGISTER ADRIES

S vlastným registrom adries som už mal skúsenosti z mojej práce - tam sme ho dlhé dni implementovali. Je to dobré riešenie v prípade, ak sa nechcete spoliehať na tretie strany. Problém, ktorý sme pri rozhodovaní riešili bol ten, že musia byť dostupné aj adresy, ktoré ešte nie sú zapísané v katastri. Zobrali sme preto voľne dostupnú databázu adries z Ministerstva vnútra. Tú sme celú sparsovali do vlastnej štruktúry.

Keď sme už mali vlastnú štruktúru, mohli sme jednoducho zaviesť vlastné adresy. Spravili sme vyhľadávanie a hotovo...alebo nie? K vlastnému riešeniu však nevyhnutne patrí aj správa takého systému. Adresy treba aktualizovať s tými z Ministerstva vnútra. Akákoľvek zmena v dodanej štruktúre sa musí implementovať aj v aktualizačnom skripte.

API TRETÍCH STRÁN

Pri api tretích strán nie je čo riešiť. Vyberiete si hocijaké dostupné api - možnosti je neúrekom. Ja som si vybral Google Places, pretože ten podporoval aj našepkávanie adries. Implementácia bola pomerne rýchla a behom dvoch-troch hodiniek som mal vyhľadávanie spojazdnené. Nevýhoda api tretích strán je tá, že nikto vám ich zadarmo neposkytne. Cena stúpa tým, ako stúpa vaša návštevnosť webu. A tým sa dostávame k problému z nadpisu tohto blogu - Google bot.

INTERNETOVÝ BOT

Po nasadení vyhľadávania adries sa zo začiatku nič nedialo. Postupne však majiteľ webu začal hlásiť, že mu cena za api nepredvídateľne rastie. Spočiatku, keď to boli iba jednotky dolárov, sme to príliš neriešili, no na konci mesiaca to už boli celé stovky. Hneď ako mi problém nahlásil, začal som pátrať. Vedel som, že to bude nejaký automatický bot. Zapracoval som logovanie každého dotazu a logoval som IPčku, odkiaľ dotaz prišiel v snahe zablokovať ju. Zistil som však, že bot chodí z rôznych IP adries a blokácia tak nepripadala do úvahy.

Nešlo mi to do hlavy - dotazy na vyhľadávanie adries boli logicky správne. Vyhľadávané boli len adresy zo Slovenska. A potom mi to docvaklo - bol to Google a snažil sa indexovať! Zaujímavé na tom je, aký je Google bot sofistikovaný. Zistil si presnú formu dotazov, ktoré má posielať na daný web, aby tak dostal správnu odpoveď. Dovtípil sa, že na webe je obsah len pri slovenských adresách, a tak skúšal len tie.

Riešenie bolo našťastie jednoduché - do súboru robots.txt som zapracoval pravidlo, aby na danej adrese bot neindexoval. Počkal som 24 hodín kým pravidlo zaregistroval a problém je odvtedy úspešne vyriešený.