Detectando rastreadores da Web honestos

Gostaria de detectar (no lado do servidor) quais solicitações são de bots. Eu não me importo com bots maliciosos neste momento, apenas aqueles que estão se saindo bem. Eu já vi algumas abordagens que envolvem principalmente a correspondência da sequência do agente do usuário com palavras-chave como 'bot'. Mas isso parece estranho, incompleto e insustentável. Então, alguém tem alguma abordagem mais sólida? Caso contrário, você possui algum recurso para manter-se atualizado com todos os agentes amigávei

Se você estiver curioso: não estou tentando fazer nada contra nenhuma política de mecanismo de pesquisa. Temos uma seção do site em que um usuário é apresentado aleatoriamente com uma das várias versões ligeiramente diferentes de uma página. No entanto, se um rastreador da Web for detectado, sempre forneceremos a mesma versão para que o índice seja consistente.

Além disso, estou usando Java, mas imagino que a abordagem seria semelhante para qualquer tecnologia do lado do servido

questionAnswers(6)

yourAnswerToTheQuestion