Split uses a blacklist of common bots, but it's far from an exhaustive list, especially if you're getting lots of uncommon bot traffic. You can add custom blacklist entries like this:
Split.configure do |config|
config.bots['my_bot_user_agent'] = 'Our monitoring bot'
end
If you find bots that aren't already blacklisted and are likely to affect a significant number of other sites, we appreciate pull requests.
Another approach that I'd like to see as an option (or an extension) would be to enroll participants through JavaScript - trigger a lightweight AJAX request, and only enroll participants who make the request. Bots almost never execute JavaScript, which is what lets most analytics services easily filter them out. I've played around with this on our application, but haven't had time to make a modular & bug-free version yet.