WordPress Security Checklist: 12 Steps to Lock Down Your Site
A hacked site rarely looks like a movie. Usually it is a quiet bot guessing passwords at 3 a.m., or an outdated…
Blocks brute-force logins, request floods and comment spam — with two-factor authentication, a firewall and hardening in one free plugin. Nothing leaves your server.
100% free · GPL v2 · no account required
One button on first run turns on the sensible defaults, skipping anything that could lock you out. Everything stays adjustable from a single settings page.
TOTP codes from Google Authenticator, Authy or 1Password, a QR setup screen, and ten one-time recovery codes. Works with no internet connection.
Failed attempts are counted per IP and locked out automatically. Error messages never reveal which half of the login was wrong, and a hidden honeypot catches bots in silence.
SQL injection, XSS, path traversal and RCE patterns are blocked before WordPress loads. Per-IP rate limiting slows the floods and aggressive crawlers behind them.
Modern security headers on every response, plus XML-RPC off, the file editor disabled, the WordPress version hidden and user enumeration blocked.
Comment honeypot and link limits, with optional reCAPTCHA or hCaptcha on the login and comment forms using your own key pair.
Behind Cloudflare or a load balancer, every visitor would otherwise share one address and break per-IP blocking. Tell the plugin, and it sees the real one.
Start free. Upgrading keeps every setting you already chose — Pro is the same plugin with the scanners and the recovery tools switched on.
Need 5 sites? Write to us and we will send a link.
Install, activate, and press one button — the recommended protection is on. Everything else lives under Settings → Security Guard.
Release notes, hardening tips, and answers to common questions.
A hacked site rarely looks like a movie. Usually it is a quiet bot guessing passwords at 3 a.m., or an outdated…
It’s 3:12 a.m. Your customers are asleep. A bot in another country just found the outdated plugin you meant to update last…