Firstly, make sure that the following are set correctly for the Registered user group (which should be everyone's primary user group):
Bypass flood check permission is set to No
Bypass spam check is set to No
In the ACP (use the ACP search top right to find these):
"Maximum messages to check for spam" is not disabled (0) - default I think is 5. Increase this value if you wish
"Minimum time between messages" is not disabled (0) - default is 30 seconds which should be fine
"Minimum time between discussions" is not disabled (0) - default is 180 seconds which should be fine
Make sure all of the Spam Management stuff in the ACP is set up - get Project Honey Pot and Akismet keys (links in that section for this). If necessary, changed the CAPTCHA method you are using in that section to something else if spammers are getting past it (I use Q&A CAPTCHA with questions appropriate to my forum).
If that still doesn't reduce the spammers, set your forum so that all newly registered members have their first 5 posts moderated:
- For the Registered user group, set the "Submit content without approval" permission to No.
- Create a new user group (let's call it Approved Members) and in that set "Submit content without approval" to Yes
- Create a User Group Promotion. For this, set the promotion to apply for "User has posted at least X messages" and set this to 5. Also set the promotion to add the user to the Approved Members group.
With this setup, all new users will have their posts moderated. Only when they have made 5 posts (that have been approved by moderators) will they be promoted to the Members group and will then be able to post freely. All existing members with 5 or more posts will automatically be promoted to the Members group and will continue to post freely.
You can also tailor other permissions by removing them from the Registered group (set them to No) and giving them to the Members group (setting them there to Yes) to restrict new members further if you wish.