John Conde describe muchos buenos enfoques. El problema al elegir una técnica anti-bot / anti-spam es equilibrar la efectividad y la conveniencia. Sería realmente incómodo tener que completar un CAPTCHA cada vez que desee publicar un comentario o mensaje, pero si solo requiere un CAPTCHA al registrarse, a veces eso no disuade a los spammers.
Algunas de las técnicas pasivas son una buena alternativa, ya que no requieren ninguna acción humana. El problema es que los bots se están volviendo cada vez más sofisticados, y si los bots pueden resolver CAPTCHA, entonces ciertamente pueden procesar JS y CSS. Por lo tanto, deberá ejercer un poco de ingenio, como usar CSS menos obvio para ocultar sus campos de trampa de bot.
Pero en función de su pregunta, creo que probablemente se dé cuenta de que el objetivo no es crear un sitio a prueba de bots, sino simplemente crear un elemento de disuasión suficiente para que los usuarios de bot simplemente elijan otros objetivos más fáciles. Entonces, lo que se requiere aquí variará de un sitio a otro, y probablemente requerirá algunas pruebas de prueba y error. Primero probaría las técnicas menos molestas.
Por último, otra forma de eliminar el correo no deseado de su sitio es utilizar la moderación entre pares para eliminar cualquier comentario enviado por bot o spam enviado manualmente que se deslice.