Bien qu'il ne soit pas infaillible, vous pouvez vérifier la chaîne USER_AGENT et n'exécuter ce code que si 'bot' n'existe pas.
if(stripos($_SERVER['HTTP_USER_AGENT'],'bot') === false){ }
Cela arrêterait tout bot qui a réellement bot dans la chaîne de l'agent utilisateur qui ne fait pas non plus attention à robots.txt.