WordPress Zero Spam


Quit forcing people to answer questions or confusing captchas to prove they’re not spam. Stop malicious users before they ever have a chance to infiltrate your site — introducing WordPress Zero Spam.

WordPress Zero Spam uses AI in combination with proven spam detection techniques and databases of known malicious IPs from around the world to detect and block unwanted visitors.

Just install, activate, configure, and enjoy a spam-free site!

WordPress Zero Spam features

  • No captcha, spam isn’t a users’ problem
  • No moderation queues, spam isn’t a administrators’ problem
  • Zero Spam, Stop Forum Spam & Project Honeypot integration
  • Automatically & manually block IPs temporarily or permanently
  • Geolocate IP addresses to see where offenders are coming from
  • Block entire countries, regions, zip/postal codes & cities
  • Optional disallowed list using splorp’s Comment Blacklist
  • Block known disposable & malicious email domains using disposable
  • Multiple detection techniques including David Walsh’s solution

WordPress Zero Spam also protects

WordPress Zero Spam is great at blocking spam — as a site owner there’s more you can do to stop WordPress spam in its tracks.

WordPress Zero Spam needs your support

WordPress Zero Spam is free & always will be. Please consider making a donation to help encourage plugin’s continued development.


  • WordPress Zero Spam dashboard
  • WordPress Zero Spam detections log
  • WordPress Zero Spam blocked IPs
  • WordPress Zero Spam blacklisted IPs
  • WordPress Zero Spam settings


  1. Upload the entire wordpress-zero-spam folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the Plugins screen (Plugins > Installed Plugins).
  3. Visit the plugin setting to configure as needed (Settings > Zero Spam).

For more information & developer documentation, see the plugin’s website.

Часто задаваемые вопросы

Does WordPress Zero Spam block user IPs?

Not by itself. WordPress Zero Spam does not block IP addresses by itself. Visitors that are getting blocked have either been manually blocked by the site admin or appear in one of the IP blacklist like Stop Forum Spam, Project Honeypot, or the Zero Spam IP database.

If a legitimate user is getting blocked, check the Log (Admin > Dashboard > Zero Spam > Log) to get further details why they were blocked. You can adjust how strict the 3rd-party blacklist checks are or disable those if you find that your users are prone to being flagged as spam/malicious.

Does WordPress Zero Spam check Jetpack comments?

No. WordPress Zero Spam is unable to integrate Jetpack. For more information, see https://wordpress.org/support/topic/incompatible-with-jetpack-comments.

How do I boost performance of WordPress Zero Spam?

Enabled caching. Caching is highly recommended and will prevent repeated calls to third-party API and access checks on each page visit.

You can also adjust the cache and API timeout settings in admin depending on your server and specific needs.

What WordPress Zero Spam WP-CLI commands are available?

  • wp zerospam autoconfigure — Auto-configures with recommended settings.
  • wp zerospam settings — Displays all plugin settings.
  • wp zerospam set --[SETTING_KEY]=[VALUE] — Updates a plugin setting.

Are you getting a `ftp_fget` PHP warning?

Some hosts have issues with they way they access files. If you’re seeing a ftp_fget PHP notice, setting the FS_METHOD constant to direct in wp-config.php above the line /* That's all, stop editing! Happy Pressing. */ should solve the problem:

define('FS_METHOD', 'direct');

If hosting with Pantheon, see their known issues page for more information and what to do to resolve it with their $_ENV['PANTHEON_ENVIRONMENT'] variable check.


Every day both our employees and UpTimeRobot report to me that they are being blocked. UpTimeRobot seems to always be fixed in 59 minutes. We have a dedicated IP address at the office, and I check those blacklists this plugin interacts with and our IP address is never there. No surprise, because we do not actually do anything at our office. No hosting. No emails. Our connection to the internet is strictly to interact with outside services. We do use CloudFlare, and I am sure that complicates things, so I do not fault the plugin and probably not the IP blacklist maintainers. But for those of you using CloudFlare and wanting to use the part of this plugin that can block by IP, be prepared to have your site inaccessible.
I personally do not use all of the functionality that this plugin offers. Instead I currently only use its functionality relating to Contact Form 7 and the David Walsh method to secure contact forms. I'm very happy with the plugin offering that functionality for free and am to date finding it an effective light-weight method of securing contact forms (infinitely more lightweight than recaptcha). Additionally I've found the plugin author to be very responsive. After bringing up that a small JS file related to the David Walsh method was being loaded site-wide by the plugin, Ben addressed this by rapidly releasing an update which ensures it only gets loaded where needed. - Jonas
I worked very well even without paid license. spam submissions are reduced dramatically. Also it works with most of popular contact form plugins seamlessly.
Would be a zero star review if I could. I was reading manga on a site when this piece of shit AI blocked my ip address for no fucking reason.
Installed through the regular WordPress process. One button default configuration used. Instant success with zero spam getting through. I’m a small volume site, but I see 30 or more spams per day. Log is clear. Actually looking forward to seeing how the spam stats develop. It’s fun seeing the bad guys shut down! Update: Stopping 30-70 spams per day on my little site. Thanks, Zero Spam!
Посмотреть все 117 отзывов

Участники и разработчики

«WordPress Zero Spam» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:


«WordPress Zero Spam» переведён на 1 язык. Благодарим переводчиков за их работу.

Перевести «WordPress Zero Spam» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений


  • fix(security): fixes the missing parameter sanitization in the admin dashboard, resolves #301


  • feat(zero spam): you can now define your zero spam license key in wp-config.php using the constant ZEROSPAM_LICENSE_KEY, resolves #298
  • fix(admin): fix for setting action buttons not doing anything, resolves #295
  • fix(admin): fixes php notice for in_array in class-utilities, resolves #299


  • feat(memberpress): resolves #286, added support for the memberpress login page
  • fix(memberpress): updated memberpress sign-up hook priority to ensure it runs
  • refactor(admin): now using nonces to process zero spam admin actions


  • perf(settings): performance improvement to settings being loaded
  • style(admin): added check for zero spam license key when enabled
  • style(admin): misc. admin interface improvements


  • fix(undefined method): fix for undefined types method


  • feat(givewp): now checks submitted emails against the blocked email domains list
  • perf(everything): refactoring of code for a boost in performance
  • docs(readme): misc. readme file updates
  • fix(admin): fix for error log not clearing


  • feat(memberpress): resolves #283, now supports memberpress registration forms
  • feat(mailchimp4wp): resolves #121, now supports mailchimp4wp forms
  • refactor(misc): misc. updates to comply with wordpress coding standards.
  • style(admin): misc. admin interface improvements


  • feat(givewp): now support givewp donation forms
  • style(notices): minor update to default detection notice


  • fix(db): resolves #281, fixes db update error for multisite installations
  • fix(db): fix for unsanitized db log entries
  • style(admin): new cf7 icon added for blocked log


  • fix(woocommerce): resolves #280, fixes login integration breaking woocommerce login form


  • feat(login): now protects user login attempts
  • feat(project honeypot): resolves #201, project honeypot ip checks now integrated
  • perf(sharing): blocked ips are no longer shared with zerospam.org
  • perf(database): doesn’t log .ico requests anymore that normally resulted in 2 entries per detection
  • style(admin): misc admin interface improvements
  • refactor(misc): cleaning up code & wordpress coding standards updates
  • refactor(zero spam api): updated version on the zero spam api endpoint


  • fix(php notice): fix for some hosts firing a php notice when unable to retrieve the list of recommended blocked email domains


  • feat(fluent forms): resolves #276, fluent forms is now supported
  • fix(php notice): resolves #277, fix for array_intersect(): Argument #2 must be of type array, bool


  • feat(dashboard widget): resolves #275, added the ability to control the dashboard widget visibility
  • feat(settings): button to quickly override and update settings to zero spam’s recommended
  • feat(email domains): resolves #246, ability to block disposable and malicious email domains
  • perf(sharing): sharing detections optimized
  • perf(disallowed list): removed the unused cron to sync disallowed words
  • chore(disallowed list): updated to the lastest splorp’s disallowed list
  • docs(htaccess): added a notice & recommended max number of blocked ips when using .htaccess
  • fix(ipinfo): fix for uncaught ipinfo exception


  • fix(htaccess): resolves #274, fix for newer apache versions and option to select the method ips are blocked


  • perf(blocked ips): moved blocked ips to .htacess for improved performance
  • refactor(woocommerce): woocommerce registration forms support dropped in place of 3rd-party IP checks
  • docs(admin): misc updates to admin interface


  • perf(geolocation): improved performance for geolocation and data sharing
  • docs(readme): updated readme file
  • refactor(misc): added some functionality to make debugging easier
  • fix(ipinfo): resolves #273, loads the ipinfo library only if enabled


  • feat(geolocation): resolves #270, added support for ipinfo geolocation
  • feat(cli): resolves #271, added WP CLI support
  • feat(admin): resolves #237, new admin dashboard widget
  • refactor(admin): wordpress coding standards fixes
  • refactor(settings): minor update to settings section title
  • docs(readme): updated readme file


  • feat(ipstack): ipstack errors are logged to the zerospam.log file in the uploads directory
  • feat(cloudflare): resolves #267, checks http_cf_ipcountry against blocked countries
  • feat(admin): resolves #264, adds ability to export & import settings
  • perf(davidwalsh): resolves #266, only loads the david walsh script on pages that are needed
  • fix(caching): resolves #258, added no-cache header to the blocked page output
  • refactor(stopforumspam): increased the default confidence score for stop forum spam to help prevent false positives
  • docs(faq): added common question about how to boost performance of the plugin


  • fix(updates): resolves #262, sanitized & escaped variables
  • fix(standards): resolved #261, sanitized & escaped variables
  • fix(cron jobs): resolves #260, removed the remote call to splorp’s blacklist on Github


  • Fixed issue with WPForms AJAX forms not getting validated by WordPress Zero Spam #238
  • David Walsh detection technique applied to WPForms & CF7
  • Miscellaneous admin UI improvements
  • Added ability to disable syncing WP’s Disallowed Comment Keys


  • Improved protection for comments, CF7, Formidbale, registrations, WooCommerce and WPForms submissions.
  • David Walsh detection technique applied to core WP registration forms.


  • PHP notice fix


  • Performance enhancements
  • Various admin UI improvements
  • Strengthened comment & registration spam detections


  • Fix for admin first-time config notice


  • Added first-time configuration notice & auto-configure recommended settings functionality
  • Added the ability to regenerate the honeypot ID
  • Various admin UI improvements
  • WP Disallowed Comment Keys are automatically updated weekly using https://github.com/splorp/wordpress-comment-blacklist
  • Strengthened comment spam detections using WP core disallowed list
  • David Walsh’s spam technique is back! https://github.com/bmarshall511/wordpress-zero-spam/issues/247


  • Various admin UI improvements
  • Strengthened comment spam detections


  • Fix autoloader compatibility with Windows paths (https://github.com/bmarshall511/wordpress-zero-spam/pull/236)
  • Various admin UI improvements


  • Fix for when checks should be preformed


  • Added support for Formidable Form Builder
  • Fixed PHP error related to a blacklist call


  • Admin UI enhancements
  • Added support for WooCommerce
  • Added Cloudflare IP address support (https://github.com/bmarshall511/wordpress-zero-spam/issues/220)
  • Update to data sharing option
  • Added ability to block individual locations (country, region, zip & city)
  • Added support for WPForms


  • Updated readme file & documentation
  • Can now be installed via composer
  • Updated the required PHP version


  • Initial v5.0.0 release
  • Huge performance enhancements
  • More control over settings to fine-tune functionality
  • Lots of bug fixes & improvements