Люди и боты будут делать то же самое, но боты будут делать то, чего не делают люди. Давайте попробуем определить эти вещи. Прежде чем мы рассмотрим поведение, давайте примем комментарий RayQuang как полезный. Если у посетителя есть строка user-agent бота, это, вероятно, бот. Я не могу представить кого-то, кто использует Google Crawler (или что-то подобное) в качестве UA, если они не работают над тем, чтобы что-то сломать. Я знаю, что вы не хотите обновлять список вручную, но автоматическое извлечение его должно быть хорошим, и даже если оно останется устаревшим в течение следующих 10 лет, это будет полезно.
Некоторые уже упоминали Javascript и загрузку изображений, но Google сделает и то и другое. Мы должны предположить, что теперь есть несколько ботов, которые будут делать то и другое, так что это уже не человеческие показатели. Однако то, что боты по-прежнему будут делать уникальным образом, - это переходить по «невидимой» ссылке. Ссылка на страницу очень хитрым способом, который я не могу видеть как пользователь. Если за этим последуют, у нас есть бот.
Боты часто, хотя и не всегда, уважают robots.txt. Пользователи не заботятся о robots.txt, и мы, вероятно, можем предположить, что любой, кто извлекает robots.txt, является ботом. Мы можем пойти еще дальше и связать фиктивную CSS-страницу с нашими страницами, которая исключена из robots.txt. Если наш обычный CSS загружен, но наш фиктивный CSS не загружен, это определенно бот. Вам нужно будет построить (вероятно, в памяти) таблицу нагрузок по IP и выполнить не содержащиеся в совпадении, но это должно быть очень убедительным.
Итак, чтобы использовать все это: ведите таблицу ботов в базе данных по IP-адресу, возможно, с временными ограничениями. Добавьте все, что следует по вашей невидимой ссылке, добавьте все, что загружает «настоящий» CSS, но игнорирует CSS robots.txt. Может быть, добавить все загрузчики robots.txt. Отфильтруйте строку user-agent в качестве последнего шага и рассмотрите возможность ее использования для быстрого анализа статистики и посмотрите, насколько сильно эти методы работают для определения того, что мы знаем как боты.