I have sort of a gauntlet set up on my site. First off, I require a number questions to be answered by the new member - for instance:
1. Tell us something interesting about yourself. (max 200 words)
2. Location
3. How did you find us?
4. What's your occupation?
5. Favorite movie?
6. Favorite book?
7. Favorite beverage?
etc.
Meanwhile I use "Stop the Registration Bots"
https://vborg.vbsupport.ru/showthread.php?t=244746 and set it to 15 seconds. There is no way a normal person can fill out these questions this fast. But many bots are set to take longer to fill out registration forms. Not a prob.
All new registrations go into a moderation queue where either I or one of the mods quickly reviews the registrations. A quick glance can tell you if it's a bogus registration or not. For instance "location". If the person puts in USA, good chance this is a bogus answer since most people in the states will put in a region like Pittsburg, PA, or San Francisco, or FLA, whatever. If it's USA, nine times out of ten, it's a Chinese, Vietnamese, Philippine, or Indian/Pakastan IP address.
If "occupation" is filled out with "SEO" 9 times out of 10 - it's a spammer from India. In fact we block most Indian and Pakistani IP addresses. Our forum in mostly Europeans, North Americans, and Aussies - so when Vietnamese and Indian IPs are signing up - that's a red flag.
If someone fills in a field with "ghghgg" or some other garbage, the account is deleted (new members are warned not to do this in their sign-up instructions

)
Email addresses that.look+.like.+this.12.345.hsjfhdj@gmail.com = spam bot.
All accounts are briefly reviewed, which takes a little bit of time, but our forum is pretty much spam-free. A few slip in through the cracks now and then, but it's really no biggie. We average about 10-20 new legit sign ups per day - traffic is about 500 members signing in daily with about 3000 guests wandering about.
Hope this helps.