Spam from contact forms located on websites is a huge problem, and the only way to solve this issue it used to be putting a CAPTCHA. However, this solution has a very bad impact on conversion rate. There are studies which show that the company could lose out on 3.2% of all their conversions when using CAPTCHA. But there is a good news – there are other better solution than CAPTCHA.
Another solution is Honeypot Captcha approach. You create a honeypot form field that should be left blank and hide it by using CSS techniques. When the form is submitted, your script checks if the value of that form field is blank. If it is not blank that means it was submitted by a spam bot (the form is invisible for user).