Per far si che gli utenti di Internet vengano a visitare il proprio sito web occorre pubblicizzarlo.
Un metodo efficente è quello di affidarsi ai vari motori di ricerca i quali utilizzano dei "robot" ovvero degli agent automatici che effettuano un vero e proprio scanning di un sito web, prelevando e indicizzandone le pagine, per essere inserite nei database usati per le richieste sui motori.
Per avere un minimo di controllo di ciò che i vari robot possono o non possono indicizzare ci si può appoggiare a tre opzioni:
robots.txt file
Deve risiedere nella DocumentRoot del sito ed il nome deve essere robots.txt scritto in minuscolo.
Deve contenere la lista dei vari user-agent o i prefissi dei vari user-agent seguiti da una serie di path di risorse che non dovrebbero essere indicizzate. Un esempio di robots.txt (che impedisce l'accesso a due directory) è:
User-Agent: *
Disallow: /cgi-bin/
Disallow: /scripts/
Con questo esempio, invece, si dice ad ogni robot di non indicizzare alcuna parte del sito:
User-Agent: *
Disallow: /
Da ricordarsi che anche robots.txt viene cacheato dai vari spider e che è possibile avere un minimo di controllo tramite la direttiva ExpiresDefault:
<Location /robots.txt>
ExpireDefault "access 1 days"
</Location >
HTML ROBOTS meta tags
Molti robots oltre che a controllare il file robots.txt verificano anche i meta tag all'interno dei documenti HTML, che possono essere customizzate secondo le proprie esigenze. Per esempio:
<META NAME="ROBOTS" CONTENT="INCLUDE, FOLLOW">
Direttive allow e deny
Tramite la direttiva BrowserMatch e SetEnvIf è possibile avere un maggior controllo su cosa indicizza il robots, rispetto all'uso dei META tag e del file robots.txt. Per esempio:
BrowserMatchNoase .*googlebot.* robot
BrowserMatchNoase .*yahoobot.* robot
SetEnvIf Remote_Host .*norobot\.com robot
<Location /not-indexable/>
order allow,deny
allow from all
deny from env=robot
</Location>
Bisogna sempre sottolineare che i metodi indicati per il controllo dei robots funzionano solo se i robot si attengono alle specifiche standard. Se hanno finalità maligne, possono ignorare i contenuti dei file robots.txt o dei META TAG e presentarsi come USER-AGENT normali, bypassando le limitazioni indicate.
Sotto certi aspetti, inoltre, quanto definito in robots.txt può dare ad un cracker informazioni utili su path che si intendono nascondere per cui è opportuno considerare se le informazioni scritte nel file robots.txt possono comportare rischi in termini di sicurezza.
Gli header HTTP e la loro customizzazione. Gestione degli errori.