{"id":205458,"date":"2022-02-21T23:29:53","date_gmt":"2022-02-21T23:29:53","guid":{"rendered":"https:\/\/wpmudev.com\/blog\/?p=205458"},"modified":"2022-02-21T23:29:53","modified_gmt":"2022-02-21T23:29:53","slug":"preventing-spam-registrations-wordpress","status":"publish","type":"post","link":"https:\/\/wpmudev.com\/blog\/preventing-spam-registrations-wordpress\/","title":{"rendered":"The Best Methods for Preventing Spam Registrations in WordPress"},"content":{"rendered":"<p>Spammers are getting sneakier all the time, making it easy for your site to be quickly overcome with fake comments and bogus sign-ups.<\/p>\n<p>Trying to outmaneuver this never-ending influx can feel like a futile effort. Leaving it makes your site look messy, and clutters your database. Deleting it takes chunks of your valuable time, on a repeated basis.<\/p>\n<p>The best solution? Putting protections in place that prevent them from flooding your site in the first place.<\/p>\n<p>In this article, we\u2019re going to look at some easy options you can implement to prevent spam registrations in WordPress that will result in immediate, effective, and on-going results.<\/p>\n<p>Continue reading, or jump ahead using these links:<\/p>\n<ul>\n<li><a href=\"#post-1352-_6okuiew20vy\">Plugin Possibilities<\/a><\/li>\n<li><a href=\"#post-1352-_3ym1rl3bdzrz\">Cloudflare Capable<\/a>\n<ul>\n<li><a href=\"#post-1352-_182csg751kp2\">Managing Firewall Rules in CF<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#post-1352-_eazoacrck2a\">WAF Wisdom<\/a>\n<ul>\n<li><a href=\"#post-1352-_kaoiffxq08i3\">The Best Hosts Have WAF(fles)<\/a><\/li>\n<li><a href=\"#post-1352-_5zdckh44ws5u\">WAF Log<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#post-1352-_fahi87o3jlfz\">Taking Control<\/a><\/li>\n<\/ul>\n<p>Let\u2019s take a look at how to put the squeeze on WordPress spam registrations.<\/p>\n<h2><a id=\"post-1352-_6okuiew20vy\" target=\"_blank\"><\/a>Plugin Possibilities<\/h2>\n<figure id=\"attachment_205461\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205461\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/001-defender-plugin-banner-1050x351.png\" alt=\"Defender Plugin\" width=\"1050\" height=\"351\" \/><figcaption class=\"wp-caption-text\">Defender Plugin<\/figcaption><\/figure>\n<p><a href=\"https:\/\/wordpress.org\/plugins\/defender-security\/\" target=\"_blank\">Defender<\/a> is a deluxe\u2014and free\u2014WordPress security plugin that protects your site from a laundry list of malicious acts. Brute force attacks, SQL injections, cross-site scripting (XSS) and more don\u2019t stand a chance with this armory in place.<\/p>\n<p>It\u2019s also extremely effective at filtering out spam. In addition to using Google reCAPTCHA, Defender\u2019s <a href=\"https:\/\/wpmudev.com\/blog\/stop-hackers-with-defender-wordpress-security-plugin\/#geor-wordpress-security-plugin\/#geo\" target=\"_blank\"><strong>Geolocation IP Lockout<\/strong><\/a> allows you to cut off registrations based on location and country\u2014very helpful if there is a known regional source of spambots.<\/p>\n<p>To use the IP Banning feature in Defender:<\/p>\n<ol>\n<li>You\u2019ll first need to get an account with <a href=\"https:\/\/www.maxmind.com\/en\/geolite2\/signup\" target=\"_blank\">MaxMind <\/a>(it\u2019s free), to gain access to the <em>GeoLite2 Database<\/em> (also free). Once your account is created and confirmed, generate a license key, then copy it for the next step.<\/li>\n<li>From the WordPress Dashboard, navigate to <strong>Defender &gt; Firewall &gt; IP Banning<\/strong>, then scroll down to the <strong>Locations <\/strong>section.<\/li>\n<li>Paste your key in the <strong>License key<\/strong> field, then click the <strong>Download <\/strong>button.(Wait 5-10 minutes for your license to fully activate, or you will likely get an <em>invalid license key<\/em> error message.)<\/li>\n<\/ol>\n<p>Now you can click the field with the global icon, beneath <em>Blocklist Banned countries<\/em> or <em>Allowlist<\/em> <em>Allowed countries,<\/em> and select those from the dropdowns that you want to ban or permit. (Your home country is added to the <em>Allowlist <\/em>by default.)<\/p>\n<figure id=\"attachment_205482\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205482\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/019-Defender-IP-banning-country-list-dropdown-1050x674.png\" alt=\"IP banning\" width=\"1050\" height=\"674\" \/><figcaption class=\"wp-caption-text\">IP banning is a quick &amp; effective method to block known spam sources.<\/figcaption><\/figure>\n<p>There is yet another additional spam protection built into Defender: <strong>User Agent Banning<\/strong>. The User-Agent request header it is a string that is shared with a server when a request is made, to identify visitors browser application name and version, and the host operating system &amp; language.<\/p>\n<p>To activate this feature from the WP Dashboard, head to <strong>Defender &gt; Firewall &gt; User Agent Banning<\/strong>, and click the blue <strong>Activate<\/strong> button. From here, you can add User Agents to the <em>Blocklist<\/em> or <em>Allowlist<\/em>, permanently preventing or permitting them access to your site. (By default, WPMU DEV includes several known bad user agents in the blocklist.)<\/p>\n<p>One last trick in <strong>Defender<\/strong>, for even more effective results. Scroll down to <strong>Empty Headers<\/strong>, and toggle the button on for <b>Block IP addresses with empty Referrer and User-Agent headers<\/b> (it will go from gray to blue).\u00a0There are still a lot of bots that uses empty HTTP referrer, and these are almost always malicious, so it&#8217;s a good idea to enable it.<\/p>\n<figure id=\"attachment_205951\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-205951 size-ratio-full\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/0001-defender-user-agent-banning-blocklist-1050x777.png\" alt=\"Defender user agent banning\" width=\"1050\" height=\"777\" \/><figcaption class=\"wp-caption-text\">The User Agent allow &amp; block lists in Defender are powerful allies in the fight against spam.<\/figcaption><\/figure>\n<p>Your access logs are viewable at any time, here: <strong>Defender &gt; Firewall &gt; Logs.<\/strong> A point of clarification: If the same bot or user agent appears in both the allow and block lists, <em>Allow<\/em> will always override <em>Block<\/em>.<\/p>\n<p>There is also a <a href=\"https:\/\/wpmudev.com\/project\/wp-defender\/\" target=\"_blank\">Pro<\/a> version of this plugin, which adds more features, such as: white labeling 2FA, and best-in-class, real-time support.<\/p>\n<figure id=\"attachment_205462\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205462\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/002-forminator-plugin-banner-1050x351.png\" alt=\"Forminator Plugin\" width=\"1050\" height=\"351\" \/><figcaption class=\"wp-caption-text\">Forminator Plugin<\/figcaption><\/figure>\n<p><a href=\"https:\/\/wordpress.org\/plugins\/forminator\/\" target=\"_blank\">Forminator<\/a> is a free, easy-to-use WordPress form builder plugin that protects your forms from spam at all times with your choice of Captcha (ReCAPTCHA or hCaptcha), <em>plus<\/em> Honeypot, and Akismet integrations.<\/p>\n<p>Spammers know that the default WordPress registration page is <em>\/register<\/em>, so it\u2019s an oft-used target. Forminator knows this, and puts smart tools in place to prevent spam from barreling through on registration pages.<\/p>\n<p>Enabling spam protections in Forminator is a breeze; check out this <a href=\"https:\/\/wpmudev.com\/blog\/prevent-form-comment-spam-forminator\/\" target=\"_blank\">tutorial<\/a> for a complete walk-through.<\/p>\n<p><a href=\"https:\/\/wpmudev.com\/blog\/get-the-most-out-of-forminator\/\" target=\"_blank\">Forminator does much more<\/a> than put the kibosh on registration spam. It\u2019s a comprehensive form creator (contact forms, order forms, polls &amp; quizzes, and payment options) that uses a smart drag and drop visual builder, making setup in WordPress a cinch.<\/p>\n<p>There is also a <a href=\"https:\/\/wpmudev.com\/project\/forminator-pro\/\" target=\"_blank\">Pro<\/a> version, which adds an e-signature feature, along with premium, 24\/7 support.<\/p>\n<figure id=\"attachment_205463\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205463\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/003-profile-builder-plugin-banner-1050x354.png\" alt=\"Profile Builder Plugin\" width=\"1050\" height=\"354\" \/><figcaption class=\"wp-caption-text\">Profile Builder Plugin<\/figcaption><\/figure>\n<p><a href=\"https:\/\/wordpress.org\/plugins\/profile-builder\/\" target=\"_blank\">Profile Builder<\/a> is another free plugin which allows you to restrict content based on user role or logged in status.<\/p>\n<p>It uses invisible support for Google\u2019s reCAPTCHA for WordPress default forms, and content restrictions based on current user roles or logged in status.<\/p>\n<p>To customize registration form fields:<\/p>\n<ol>\n<li>From the WP dashboard, navigate to <strong>Profile Builder<\/strong> &gt; <strong>Form Fields<\/strong>.<\/li>\n<li>From the uppermost <strong>Field <\/strong>row, click the dropdown for <em>Select an option<\/em>; start typing <em>reCAPTCHA <\/em>(it\u2019s under <em>Advanced),<\/em> then select it.<\/li>\n<\/ol>\n<figure id=\"attachment_205464\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205464\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/004-profile-builder-settings-1-1050x536.png\" alt=\"Profile builder settings\" width=\"1050\" height=\"536\" \/><figcaption class=\"wp-caption-text\">Using search to access the reCAPTCHA settings in Profile Builder\u2019s form fields.<\/figcaption><\/figure>\n<ol>\n<li>Choose the <strong>reCAPTCHA<\/strong> you prefer from the dropdown menu.<\/li>\n<li>Enter your <strong>API keys<\/strong> \u2013 <em>Site <\/em>&amp; <em>Secret.<\/em><\/li>\n<li>Check the desired options under <strong>Display on PB forms<\/strong> and <strong>Display on default WP forms<\/strong>.<\/li>\n<li>Copy the <em>shortcode <\/em>from the right sidebar menu that corresponds with your selection.<\/li>\n<li>Paste the shortcode where you would like the custom form to be displayed on your site.<\/li>\n<\/ol>\n<p><figure id=\"attachment_205465\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-205465 size-ratio-full\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/005-profile-builder-settings-2-1050x839.png\" alt=\"Profile builder settings 2\" width=\"1050\" height=\"839\" \/><figcaption class=\"wp-caption-text\">We\u2019ve chosen PB &amp; Default WP Register here, so would use the shortcode <em>[wppb-register]<\/em>.<\/figcaption><\/figure>There is a premium version as well, which offers extra user fields, custom redirects, advanced add-ons, as well as the ability to require admin approval for new registrations.<\/p>\n<figure id=\"attachment_205466\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205466\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/006-user-registration-plugin-banner-1050x353.png\" alt=\"User Registration Plugin\" width=\"1050\" height=\"353\" \/><figcaption class=\"wp-caption-text\">User Registration Plugin<\/figcaption><\/figure>\n<p>The <a href=\"https:\/\/wordpress.org\/plugins\/user-registration\/\" target=\"_blank\">User Registration<\/a> plugin is free, lightweight, and highly responsive. It offers spam protection with Google reCaptcha <strong>and <\/strong>Honeypot.<\/p>\n<p>When you install the <em>User Registration <\/em>plugin, it will give you an option to automatically create a custom registration page, using this URL: <em>yoursite.com\/registration<\/em>.<\/p>\n<p>You could also do one of the following:<\/p>\n<p>Require Admin Approval<\/p>\n<ol>\n<li>Navigate to the <em>General &gt; General Options<\/em> tab on the plugin Dashboard.<\/li>\n<li>From the <em>User login<\/em> dropdown menu, select <em>Admin approval after registration<\/em>.<\/li>\n<\/ol>\n<figure id=\"attachment_205467\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205467\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/007-user-registration-settings-1-1050x523.png\" alt=\"Choosing the option for Admin approval after registration.\" width=\"1050\" height=\"523\" \/><figcaption class=\"wp-caption-text\">Choosing the option for <em>Admin approval after registration<\/em>.<\/figcaption><\/figure>\n<p>Enable reCAPTCHA<\/p>\n<ol>\n<li>Navigate to the <em>Integration <\/em>tab on the plugin Dashboard.<\/li>\n<li>Enter your API keys \u2013 <em>Site Key<\/em> &amp; <em>Secret Key.<\/em><\/li>\n<\/ol>\n<figure id=\"attachment_205468\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205468\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/008-user-registration-settings-2-1050x585.png\" alt=\"Site and secret key APIs are needed to use reCAPTCHA in the User Registration plugin.\" width=\"1050\" height=\"585\" \/><figcaption class=\"wp-caption-text\">Site and secret key APIs are needed to use reCAPTCHA in the <em>User Registration<\/em> plugin.<\/figcaption><\/figure>\n<p>To enable reCAPTCHA on a specific registration form, you will need to edit that form and enable it from within.<\/p>\n<p>There is a premium version of <em>User Registration<\/em> as well, which lets you integrate with WooCommerce, and adds the ability to import users.<\/p>\n<p>Next, we\u2019ll look at using Cloudflare in the fight against registration spam.<\/p>\n<h2><a id=\"post-1352-_3ym1rl3bdzrz\" target=\"_blank\"><\/a>Cloudflare Capable<\/h2>\n<p><a href=\"https:\/\/www.cloudflare.com\/\" target=\"_blank\">Cloudflare<\/a> is best known as a Content Delivery Network (CDN). Through its massive network of servers, Cloudflare helps speed up and protect websites from malicious attacks, while caching across 165+ data centers the world over to supercharge the performance of your website.<\/p>\n<p>By cutting off location\/country-based registrations from known bot sources, Cloudflare offers spam protection in two forms: <em>IP Block<\/em>, and <em>Firewall Rules<\/em>.<\/p>\n<p>Their <em>IP Block<\/em> feature is only available under the Enterprise plan, which comes with an Enterprise-level ($$$) price.<\/p>\n<p>But worry not; <em>Firewall Rules<\/em> can be used on any plan. Firewall Rules can block by location, IP address, user agent, and more. You\u2019re allowed up to five active Firewall Rules under the free plan, then progressively more as you go up in the paid tiers.<\/p>\n<p>Regardless of plan type, creating an account is required to partake in any of Cloudflare\u2019s features. You will also need to <a href=\"https:\/\/developers.cloudflare.com\/automatic-platform-optimization\/get-started\/change-nameservers\" target=\"_blank\">point your existing DNS servers<\/a> (aka, Nameservers) to the ones provided by Cloudflare. This provides a better browsing experience for your users, so there is <a href=\"https:\/\/wpmudev.com\/blog\/cloudflare-cdn-wordpress-definitive-guide\/\" target=\"_blank\">additional value<\/a>.<\/p>\n<p>Once done, you can get to creating your Firewall rules, as follows.<\/p>\n<ol>\n<li>Log in to your Cloudflare account.<\/li>\n<li>Select one of your websites.<\/li>\n<li>From the left sidebar menu, select <strong>Firewall Rules<\/strong>.<\/li>\n<li>From the main page, click on the blue <strong>Create a Firewall rule<\/strong> button.<\/li>\n<\/ol>\n<figure id=\"attachment_205469\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205469\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/009-CF-firewall-rules-01-1050x489.png\" alt=\"Cloudflare firewall rules\" width=\"1050\" height=\"489\" \/><figcaption class=\"wp-caption-text\">Cloudflare\u2019s free plan permits you to have up to five active Firewall rules.<\/figcaption><\/figure>\n<ol>\n<li>Enter a name in the <strong>Rule name<\/strong> text field.<\/li>\n<li>Beneath <strong>When incoming requests match\u2026<\/strong>, select the desired options from the corresponding dropdown menus for <strong>Field<\/strong>, <strong>Operator<\/strong>, and <strong>Value<\/strong>.<em>Optional<\/em>: add additional parameters to this rule by clicking the <strong>And \/<\/strong> <strong>Or <\/strong>buttons; then select the corresponding options in the resultant row.<\/li>\n<li>The following row shows the <strong>Expression Preview,<\/strong> which is editable by clicking the <strong>Edit expression<\/strong> link above the open text field. (Action not required.)<\/li>\n<li>From the dropdown menu under <strong>Then\u2026<\/strong>, choose an option.<\/li>\n<li>Click on the <strong>Deploy <\/strong>button to save the rule.<\/li>\n<\/ol>\n<figure id=\"attachment_205470\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205470\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/010-CF-firewall-rules-02-1050x903.png\" alt=\"Cloudflare firewall rules 2\" width=\"1050\" height=\"903\" \/><figcaption class=\"wp-caption-text\">Creating a rule in Cloudflare\u2019s Firewall settings.<\/figcaption><\/figure>\n<p><strong>IMPORTANT<\/strong>: Your rule isn\u2019t active yet. To make it so, you must return to your<strong> Firewall Rules<\/strong> list, and toggle the button ON (it goes from gray-with-an-X to green-with-a-check-mark).<\/p>\n<h3><a id=\"post-1352-_182csg751kp2\" target=\"_blank\"><\/a>Managing Firewall Rules in CF<\/h3>\n<p>At any time, you can <em>Edit <\/em>a rule (click on the wrench button), <em>Delete <\/em>it (click on the X button), or make it <em>Inactive <\/em>(toggle the green-with-a-check-mark button, turning it to gray-with-an-X).<\/p>\n<p>You can also change the order of the rules by either clicking and dragging the up-down arrows at the far left of each rule row, or by clicking on the <strong>Ordering <\/strong>button.<\/p>\n<figure id=\"attachment_205471\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205471\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/011-CF-firewall-rules-03-1050x420.png\" alt=\"Cloudflare firewall rules 3\" width=\"1050\" height=\"420\" \/><figcaption class=\"wp-caption-text\">Firewall Rules summary page in Cloudflare.<\/figcaption><\/figure>\n<p>Curious what kind of activity any rule has had? Simply look at the <strong>Activity last 24 hr<\/strong> column on the <em>Firewall rules<\/em> page.<\/p>\n<p>To add more Firewall rules, repeat the above process. Or, click here for more nitty gritty on <a href=\"https:\/\/developers.cloudflare.com\/firewall\/cf-firewall-rules\/actions\" target=\"_blank\">Firewall rules in Cloudflare<\/a>.<\/p>\n<p>A quick sidebar on CDN\u2019s\u2026WPMU DEV also offers CDN in our <a href=\"https:\/\/wpmudev.com\/hosting\/\" target=\"_blank\">managed hosting<\/a>, which integrates smoothly with Cloudflare (as well as our optimization plugins\u2014<a href=\"https:\/\/wordpress.org\/plugins\/wp-smushit\/\" target=\"_blank\">Smush<\/a> &amp; <a href=\"https:\/\/wordpress.org\/plugins\/hummingbird-performance\/\" target=\"_blank\">Hummingbird<\/a>).<\/p>\n<p>It is important to note that it\u2019s best not to serve content from <a href=\"https:\/\/wpmudev.com\/docs\/getting-started\/content-delivery-network-cdn\/#how-to-activate-the-wpmu-dev-cdn\" target=\"_blank\">two different CDNs<\/a>, as it\u2019s sure to cause issues.<\/p>\n<p>With Cloudflare wrapped, that leaves us with one more solution in the war against spam registrations\u2026 the all-mighty WAF.<\/p>\n<h2><a id=\"post-1352-_eazoacrck2a\" target=\"_blank\"><\/a>WAF Wisdom<\/h2>\n<p>A Web Application Firewall (WAF), is a security layer between end-users and applications. It inspects traffic coming from and returning to web applications, filtering all access between them.<\/p>\n<p>This differs from a standard firewall, which provides a barrier between external and internal network traffic. A network firewall protects a secured network from unauthorized access to prevent the risk of attacks and malicious bots. Its primary objective is to separate a secured zone from a less secure zone, and control communications between the two.<\/p>\n<p>In general, a firewall is deployed near the edge of a network, making it an effective barrier between known, trusted networks and unknown, possibly unsafe ones. Standard firewalls are designed to deny or permit access to networks, or deny access to specific areas (folders, websites, etc) without the proper credentials.<\/p>\n<p>WAFs complement standard network firewalls by protecting the application infrastructure and its users, focusing on HTTP\/HTTPS applications and servers to prevent threats like SQL Injection, DDOS attacks, and cross-site scripting attacks (XSS).<\/p>\n<p>WAFs not only passively monitor activity but also proactively shore up weaknesses in web applications. Because they constantly scan the vulnerabilities, WAFs often observe the weaknesses in the network and patch them, long before the user notices. The patch is a short term resolution that provides time to fix the issue and prevent potential breaches in the network.<\/p>\n<p>See this article for a <a href=\"https:\/\/wpmudev.com\/blog\/what-is-a-waf\/\" target=\"_blank\">deeper dive into WAFs<\/a>.<\/p>\n<p>Suffice it to say when it comes to filtering out spam registrations, WAFs shine.<\/p>\n<h3><a id=\"post-1352-_kaoiffxq08i3\" target=\"_blank\"><\/a>The Best Hosts Have WAF(fles)<\/h3>\n<p>If you have a quality WordPress host, chances are good that they\u2019ve incorporated WAFs into their ecosystem.<\/p>\n<p>Here at WPMUDEV, WAFs are included in all of our hosting plans. Which means with a few clicks, you can put spam registration woes in your rear view mirror.<\/p>\n<p>One of our members had this to say about using our WAF to cut down on his spam registrations:<\/p>\n<p>\u201cAfter consulting with wpmudev support, I changed the page through which spam registrations were made on my site to be blocked by WAF, and to my surprise, the malicious bots have now taken to their heels! No more excitement seeing \u201c200 new visits\u201d, \u201c200 new leads\u201d only to discover they were spam sign ups.\u201d<\/p>\n<p>To show you how easy it is to get this feature locked and loaded, we\u2019ll do a quick walk-through of the WAF settings via our all-in-one dashboard, <a href=\"https:\/\/wpmudev.com\/hub-welcome\/\" target=\"_blank\">The Hub<\/a>.<\/p>\n<p>Navigate to The <strong>Hub<\/strong>, and click on the website you\u2019d like to manage.<\/p>\n<p>Click on the <strong>Security <\/strong>header tab, then under <strong>Firewall<\/strong>, click the gear icon for <strong>Hosted WAF<\/strong>.<\/p>\n<figure id=\"attachment_205472\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205472\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/012-hub-WAF-click-gear-icon-1050x380.png\" alt=\"Settings for WAF via The Hub\u2019s security tab.\" width=\"1050\" height=\"380\" \/><figcaption class=\"wp-caption-text\">Settings for WAF via The Hub\u2019s security tab.<\/figcaption><\/figure>\n<p>Toggle the <strong>Protect Site<\/strong> button to <strong>ON <\/strong>(it will go from gray to blue).<\/p>\n<figure id=\"attachment_205473\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-205473\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/013-waf-toggle-on.png\" alt=\"One-click switch protects your site with WAF.\" width=\"893\" height=\"786\" \/><figcaption class=\"wp-caption-text\">One-click switch protects your site with WAF.<\/figcaption><\/figure>\n<p>This will bring up a selection of <strong>Allowlists <\/strong>and <strong>Blocklists<\/strong> for <strong>IPs<\/strong>, <strong>User Agents<\/strong>, <strong>URLs<\/strong>, and <strong>Disabled Rule IDs<\/strong>.<\/p>\n<figure id=\"attachment_205474\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205474\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/014-waf-manual-entries-1050x1275.png\" alt=\"WAF customize rules\" width=\"1050\" height=\"1275\" \/><figcaption class=\"wp-caption-text\">You can customize rules to your heart&#8217;s content with the options in WAF.<\/figcaption><\/figure>\n<p>You can set as many specific settings as you\u2019d like here, then click <strong>Save <\/strong>\u2013 or simply hit the gray <strong>Close <\/strong>button to apply our predefined rules.<\/p>\n<figure id=\"attachment_205475\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-205475\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/015-waf-save-settings.png\" alt=\"WAF save settings\" width=\"898\" height=\"174\" \/><figcaption class=\"wp-caption-text\">Specify your settings before hitting Save, or apply the predefined rules with Close.<\/figcaption><\/figure>\n<p>Once done, you can see in the summary view that the firewall is activated and protecting your site.<\/p>\n<figure id=\"attachment_205476\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205476\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/016-waf-summary-its-on-1050x557.png\" alt=\"WAF summary -- on\" width=\"1050\" height=\"557\" \/><figcaption class=\"wp-caption-text\">WAF is active and on duty!<\/figcaption><\/figure>\n<h3><a id=\"post-1352-_5zdckh44ws5u\" target=\"_blank\"><\/a>WAF Log<\/h3>\n<p>We have a smart built-in feature in our WAF that records Rule ID\u2019s and errors, called (appropriately enough) \u2013 the <strong>WAF Log.<\/strong><\/p>\n<p>To view the log, select a site, then navigate to <strong>The Hub &gt; Hosting &gt; Logs &gt; WAF Log<\/strong>.<\/p>\n<figure id=\"attachment_205477\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-full wp-image-205477\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/017-WAF-log-1050x421.png\" alt=\"WAF log reveals all\" width=\"1050\" height=\"421\" \/><figcaption class=\"wp-caption-text\">The WAF log reveals all to those who seek it.<\/figcaption><\/figure>\n<p>Where attacks are coming from, what requests were blocked, and what rules those requests triggered, are all recorded here, readily providing the info needed to minimize false alarms.<\/p>\n<p>If you scroll to the bottom of the Allow &amp; Block lists, you\u2019ll see <strong>Disable Rule IDs<\/strong>. Enter any Rule ID (from the log) that\u2019s causing problems, and boom\u2014it\u2019s immediately disabled.<\/p>\n<figure id=\"attachment_205478\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-205478\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2022\/02\/018-disable-rule-ids.png\" alt=\"Disabled Rule Ids \" width=\"875\" height=\"209\" \/><figcaption class=\"wp-caption-text\">Put a stop to problematic attacks by putting them into the <em>Disabled Rule Ids<\/em> field.<\/figcaption><\/figure>\n<p>When active, the WPMU DEV WAF engages a forcefield (a custom set of rules) so attacks and malicious traffic are repelled before they can even hit.<\/p>\n<h2><a id=\"post-1352-_fahi87o3jlfz\" target=\"_blank\"><\/a>Taking Control<\/h2>\n<p>Registration spam on your WordPress site can become an overwhelming annoyance. But you can lessen or even completely rid your site of it with a few simple maneuvers.<\/p>\n<p>One possibility is adding a dedicated WordPress registration plugin that requires additional steps (like CAPTCHA), or admin approval for new users. These can help, but aren\u2019t always the most efficient, as they seem to allow some creep through over time. If your traffic is light, it could suffice for you.<\/p>\n<p>Another choice is using Cloudflare, and creating Firewall rules specific to each spam registration type (IP or country of the source). The catch here will be if you have a paid plan, as free membership limits the number of these that you can have active at a time.<\/p>\n<p>Last but not least, is the option of using a strong and reliable WAF. If you Host with us, then you\u2019ve already got this powerhouse tool in your WordPress shed. (If you don\u2019t \u2013 signing up is quick and easy, and you can <a href=\"https:\/\/wpmudev.com\/hosting\/\" target=\"_blank\">try us for free<\/a>, satisfaction unconditionally guaranteed!)<\/p>\n<p>A shout out to our member, Chris Chukwunyere from <a href=\"http:\/\/gzi.me\" target=\"_blank\">Gzi<\/a>, who contributed the seed that germinated into this article.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spammers are getting sneakier all the time, making it easy for your site to be quickly overcome with fake comments and bogus sign-ups. Trying to outmaneuver this never-ending influx can feel like a futile effort. Leaving it makes your site look messy, and clutters your database. Deleting it takes chunks of your valuable time, on [&hellip;]<\/p>\n","protected":false},"author":915455,"featured_media":205460,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"blog_reading_time":"","wds_primary_category":0,"wds_primary_tutorials_categories":0,"footnotes":""},"categories":[263,11260],"tags":[],"tutorials_categories":[],"class_list":["post-205458","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","category-wpmu-dev-products"],"_links":{"self":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/205458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/users\/915455"}],"replies":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/comments?post=205458"}],"version-history":[{"count":30,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/205458\/revisions"}],"predecessor-version":[{"id":218083,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/205458\/revisions\/218083"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media\/205460"}],"wp:attachment":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media?parent=205458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/categories?post=205458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tags?post=205458"},{"taxonomy":"tutorials_categories","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tutorials_categories?post=205458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}