У меня в простых формах хорошо зашёл honeypot — добавил скрытое поле, спам упал реально в разы, и при этом пользователю ничего не мешает. Капчи пробовал ставить, но как-то часто раздражали людей и конверсия проседала. Еще тайминги внедрил — если форма слишком быстро отправляется, просто отбрасываю. Вместе эти методы дают нормальный уровень защиты без лишней мороки. Главное — не перебарщивать с капчей, а то юзеры сбегают.