Уточните, почему вы хотите исключить ботов и насколько вы терпимы к ошибочной классификации.
То есть нужно ли исключать каждого бота за счет обращения с реальными пользователями как с ботами? Или это нормально, если боты сканируют ваш сайт, если они не влияют на производительность?
Единственный способ исключить всех ботов - закрыть ваш веб-сайт. Злонамеренный пользователь может распределить своего бота на достаточное количество компьютеров, чтобы вы не смогли отличить его трафик от реальных пользователей. Такие хитрости, как JavaScript и CSS, не остановят решительного злоумышленника.
Если удовлетворительная «счастливая среда» удовлетворительна, может быть полезен один трюк - скрыть ссылки с помощью CSS, чтобы они не были видны пользователям в браузере, но оставались в HTML. Любой агент, который следует по одной из этих «ядовитых» ссылок, является ботом.