1. Restrict by IP – Know your customers and discard form completion from specific IP addresses.
2. Set minimum timer – If a form is completed within less than “x” seconds after load of original form, then flag for spammy bot.
3. Hidden form fields – Use CSS and Javascript to show bots additional fields and if they are filled out assume, bot had filled out form.
<input style="display:none;" type="text" name="email" value="" />
4. Irregular naming of form fields + Validate – Always validate user submissions and name your fields irregular but easy to recognize names.
5. Irregular text recognition – Filter out messages which contain spammy or irregular terms or multiple links.
If all else fails, use CAPTCHA