I'm looking for a free captcha service for a html/css/php site. reCAPTCHA seems to be very famous. Is it effective? Are there maybe other good captcha services which are available for free?
There are a lot of free captcha services, but there are also a lot of new tricks you can do to avoid using captcha's altogether.
One very popular approach is to add a hidden field inside your form. On your backend, you can check whether the hidden field is filled in. A bot would fill the hidden field, a user not. If you catch a hidden field that is filled in you know you can discard the message.
Another way is to work with your php session and special keys. Generate a key fill it in the a hidden field of the form, and store it in a session. When the user submits a form, check if the value submitted in the hidden field is the same as in the session. If a form is submitted, and there is no session key stored you know it is a bot.
And so there are a lot of small tricks you can apply to catch bots. You can also mix up a few.
To catch spam you can also use a tool called akismet. It does a pretty good job of catching spam comments.
If you can, don't bother your visitors with a captcha, there are a lot of good solutions out there. But if you really have to, reCaptcha is a pretty good solution, I have used it for a while with good results, it's only a pain for your visitors to fill in. I hate it when I need to fill in a reCaptcha.