Security Ninja is a lightweight
WordPress security plugin that helps protect your site from common attacks and security mistakes — without turning your dashboard into a cockpit.
Free includes a basic Web Application Firewall (WAF) (based on the 8G ruleset) to block common malicious requests, plus 50+ security checks, a full vulnerability scanner, and a core integrity scanner to spot risky settings and unexpected file changes.
Upgrade to Pro if you need deeper protection like advanced malware scanning/cleanup, stronger WAF controls (e.g. country blocking), and more automation/alerting.
This plugin can be downloaded for free without any paid subscription from
the official WordPress repository.
Why Security Ninja
Included for free
- Basic Firewall (8G-based) – Blocks common malicious requests and bot noise before it becomes a problem.
- 50+ Security Tests – Fast audit of common WordPress security misconfigurations.
- Vulnerability Scanner – Highlights known issues in plugins/themes so you can patch faster.
- Core Scanner – Detect modified or unexpected files in WordPress core folders.
-
Basic Events Logger – Logs firewall events and login attempts (successful/failed).
Pro adds
-
Advanced Malware Scanner – Detect and clean malicious code and suspicious files.
- Advanced Firewall/WAF controls – e.g. country blocking, stronger rules and automation.
- Secure Login & 2FA – Add stronger authentication and login protections.
- Automation & reporting – Scheduled scans, reports, and advanced tracking.
Key Features
Security Ninja is a lightweight
WordPress firewall plugin and security toolkit designed to protect your website from hackers, malware, brute-force attacks, and known vulnerabilities — without slowing it down.
Comprehensive WordPress Security Testing
Security Ninja performs 50+ advanced security tests to identify vulnerabilities before hackers exploit them. This includes:
- Brute-force protection – Blocks unauthorized login attempts to prevent forced entry.
- File integrity monitoring – Detects unauthorized changes to WordPress core files, themes, and plugins.
- Database security checks – Identifies weak database permissions and potential SQL injection threats.
- User role audits – Ensures no unauthorized administrator accounts exist.
- Security misconfiguration scans – Identifies and fixes weak settings that could compromise security.
Enhanced Vulnerability Scanner
- Stay Ahead of Threats – Our vulnerability scanner proactively alerts you to known vulnerabilities, allowing you to address potential threats before they exploit your website.
- Comprehensive Protection – Security Ninja not only checks and warns for common issues but also checks for known vulnerabilities in plugins and themes.
- Peace of Mind – Knowing your site is monitored for the latest vulnerabilities means you can focus on what matters most, growing your business and creating content, worry-free.
Core Scanner – Comprehensive Protection for Your WordPress Installation
The Core Scanner module adds a critical layer of security by ensuring your WordPress installation remains untampered and free of unauthorized files.
- Full Core File Integrity Check: Every file in your core WordPress folders is scanned to ensure it hasn't been modified or compromised.
- Detection of Unknown Files: The scanner flags any extra or unknown files in your core WordPress directories, alerting you to potential threats.
- Built-in File Viewer: Review flagged files directly within your WordPress dashboard using the integrated file viewer for a clear and easy inspection.
- Restore Core Files: If a core WordPress file has been altered, you can quickly restore it with a single click, ensuring your site is running the official version.
- Easy File Management: For unknown or suspicious files, you have the option to delete them right from the interface, keeping your WordPress installation clean and secure.
Advanced Malware Scanner – Detect & Remove Malware Instantly (PRO)
Security Ninja includes a high-performance malware scanner that automatically checks your WordPress core, plugins and themes for:
- Malicious scripts and backdoors – Identifies hidden malware and harmful injections.
- Trojan and virus detection – Scans for suspicious PHP and JavaScript entries.
- One-click malware removal – Instantly quarantine and delete infected files.
WordPress Firewall & Real-Time Threat Protection
Security Ninja includes a
basic firewall for free (8G-based) to block common malicious requests. Upgrade to Pro for more advanced WAF controls.
- Basic protection (Free) – Blocks common exploit patterns and bad requests.
- Advanced protection (Pro) – Country blocking, stronger controls, and additional intelligence/automation.
- Brute-force & bot mitigation – Reduce noisy and abusive traffic hitting WordPress.
Login Security & Two-Factor Authentication (2FA) (PRO)
Your WordPress login page is a primary target for hackers. Security Ninja enhances login security with:
- Two-Factor Authentication (2FA) – Requires additional verification for safer logins.
- Brute-force attack protection – Limits failed login attempts to block unauthorized access.
- Rename login - Getting a lot of requests to your login form? Hide it for spammers.
One-Click Security Fixes & WordPress Hardening (PRO)
Manually fixing security issues is time-consuming. Security Ninja provides one-click hardening to:
- Disable XML-RPC – Blocks common DDoS attacks and brute-force exploits.
- Restrict file editing – Prevents unauthorized theme and plugin modifications.
- Hide PHP error messages – Stops hackers from exploiting sensitive error details.
And many more fixes to harden your WordPress security!
Events Logger / Activity Tracking
Security Ninja includes a
basic events logger for free so you can see what’s happening on your site.
- Free: firewall events + login attempts (successful/failed).
- Pro: deeper tracking, alerting, and reporting.
- Export security logs for audits and compliance reports.
- Includes webhook functionality so you can integrate with other services (e.g. Slack/Discord/webhooks).
Automated Security Scans & Reports (PRO)
Security Ninja performs scheduled security scans and sends reports directly to your inbox.
- Set up daily, weekly, or monthly security scans.
- Receive email alerts about vulnerabilities and malware infections.
- Analyze detailed reports to keep your website secure.
Block Spam & Malicious Bots Instantly (PRO)
Hackers and spammers use bots to exploit WordPress websites. Security Ninja prevents:
- Fake registrations and spam comments – Stops bots from even getting to your site.
- Malicious bot attacks – Blocks scripts attempting to hack your site.
- Unwanted traffic – Reduces server load by preventing unnecessary bot access.
Join thousands of satisfied users who trust Security Ninja to keep their websites safe. Start protecting your online presence today and help yourself to peace of mind.
Why Security Ninja is Best WordPress Security Plugin
Security Ninja is the best WordPress security plugin because it provides a comprehensive, lightweight, and easy-to-use solution to protect your website from hackers, malware, and vulnerabilities. With 50+ security tests, an advanced malware scanner, a firewall, and two-factor authentication (2FA), it ensures complete website protection without slowing down performance.
Unlike bloated security plugins, Security Ninja is optimized for speed and efficiency. It offers one-click security fixes, automated scans, real-time threat detection, and login protection, making it ideal for beginners and advanced users alike. Trusted since 2011, it keeps thousands of websites secure while offering proactive protection against cyber threats.
Installing from WordPress
- Open WordPress admin, go to Plugins, click Add New
- Enter "Security Ninja" in search and hit Enter
- Plugin will show up as the first on the list, click "Install Now"
- Activate & go to Tools - Security Ninja to make your site more secure
Installing Manually
- Download the plugin.
- Unzip it and upload to wp-content/plugin/
- Open WordPress admin - Plugins and click "Activate" next to the plugin
- Activate & go to Security Ninja to make your site more secure
5.267
- 2026-02-13
- IMPROVED: Litespeed servers - Added documentation and in-app notices for all security headers (CSP, X-Frame-Options, X-Content-Type-Options, Strict-Transport-Security, Referrer-Policy, Permissions-Policy). LiteSpeed users can add headers directly to .htaccess using the examples in each test description. Thank you Tom for the feedback.
- FIX: Events Logger, Overview, and Visitor Log – Country flags now correctly show the event/visitor IP's country instead of the logged-in admin's IP when the site is behind Cloudflare or similar proxies.
- Improved: Core Scanner - Interface loads faster with tabs lazy-loading content in different tabs.
- IMPROVED: Firewall – When "Block IP Network" is enabled, known social and link-preview crawlers (e.g. Facebook, LinkedIn, Twitter) are no longer blocked by default. Link previews when you share your site on social networks now work without having to whitelist IPs.
5.266
- 2026-02-10
- Improvement: Logging details for 404 Guard.
- FIX: Login Protection – Banned IPs expired entries are removed immediately instead of waiting for the prune job.
- IMPROVED: Login Protection – Prune job for banned IPs now runs hourly.
- FIX: Cloud Firewall IP Management – "Locally Banned IPs" list now shows only currently banned IPs (expired bans are excluded).
- FIX: Cloud Firewall – Test IP and "Clear list of banned IPs" functionality fixed.
- Updated language file for translations.
5.265
- 2026-02-09
- Tested up to WP 6.9.1
- FIX: Issues with 2FA for some user.
- IMPROVED: Vulnerability list updating faster and consume less memory.
5.264
- 2026-01-31
- FIX: Fixed wpdb::prepare() error during plugin uninstallation when dropping database tables.
- FIX: Vulnerability scanner no longer blocks wp-admin after deactivating and reactivating the plugin. If the vulnerability data files are missing or unreadable (e.g. after reactivation or server changes), the plugin now recovers automatically: it shows the vulnerability count as zero until the data is restored in the background, and the dashboard continues to load normally.
- IMPROVED: Vulnerability module now recreates and re-downloads its data files when they are missing, so you no longer need to reinstall the plugin to fix a "JSONL file not readable" error.
- FIX: Hardened vulnerability JSONL file handling: guard fclose() on stream and catch all errors when counting records, so missing or unreadable files never cause a fatal in wp-admin.
- FIX: Login Protection - "Failed login warnings" toggle now correctly saves when disabled (was reverting to enabled because unchecked checkbox is omitted from form POST).
- FIX: 2FA – Disabling 2FA in settings now persists correctly; toggle uses a hidden input so unchecked state is saved.
5.263
- 2026-01-25
- Improved bandwidth usage getting vulnerabilities for all users.
- Improved: Vulnerability scanner now reads vulnerability feeds in a streaming, memory-efficient way to reduce peak memory usage.
5.262
- 2026-01-20
- NEW: Free users now benefit from the firewall based on the excellent 8G Firewall by Jeff Star.
- NEW: Events logger now part of free version, basic event monitoring and logging for your site. More advanced tracking in premium version available.
- NEW: Core Scanner - Added ability to ignore specific files and patterns from scan results using the securityninja_core_scanner_ignore_files filter. Ignored files are displayed in a separate section for transparency. https://wpsecurityninja.com/docs/core-scanner/how-to-ignore-files/ - Thank you Gary.
- IMPROVED: Events Logger - All modules are now included in email reports by default. Users can deselect specific modules in settings.
- FIX: Events Logger - Prevented excessive memory usage by skipping translation hooks and reducing repeated license checks during audit logging.
- NEW: Quick firewall stats in the sidebar.
- Improved: Added 'php_errorlog' to the list of allowed files to view by the file viewer.
- Improved: Added firewall events to the overview page for free users.
- FIX: Fixed CIDR notation matching in IP whitelist - CIDR ranges now correctly match IPs within the range - Thank you Dirk.
- FIX: 2FA generation now uses your site's URL—rather than the site name—for labeling in authenticator apps, ensuring greater clarity and consistency.
- FIX: Refactor local request check in Wf_Sn_Tests class by introducing a dedicated method. Thank you Jean.
- Tested up to WP 6.9
5.261
- 2025-11-17
- Fixed: 2FA - Changed key name format from "site_url (username):email" to "site_url:username" - Thank you Davina.
- Fixed: Compatibility warning with WordPress 6.7 regarding translation loading timing
- Fixed: Server security restriction warning when checking wp-config.php file location
- Fixed: Fixed critical bug where database prefix changer added an extra underscore when updating wp-config.php, causing WordPress to look for non-existent tables with double underscores (e.g., wp_12345__posts instead of wp_12345_posts). Thank you Tchai.
- Fixed: Database prefix changer to properly update option names and meta keys when changing from custom prefixes (not just "wp_").
- IMPROVED: Database prefix changer now works with any prefix, not just the default "wp_". Can now rename tables when changing from one custom prefix to another. All plugin tables are automatically included in the renaming process.
5.260
- 2025-11-12
- NEW: Failed login email warnings - administrators receive email notifications when someone attempts to log in with their username and fails. Can be enabled in Login Form Protection settings.
- NEW: Admin IPs are automatically whitelisted on plugin activation and successful admin login to prevent administrators from being blocked. Thank you Val.
- FIX: Fixed country blocking to respect "only block backend" setting when enabled. Thank you Guru for the tip.
- IMPROVED: Secret access URL processing has been moved up in the request cycle to make sure IP whitelisting happens before any ban checks, so blocked visitors should be able to get back on the site more reliably.
- IMPROVED: wp-config.php backups are stored in encrypted format (AES-256-CBC) to ensure data security. Each backup uses a unique encryption key and initialization vector. This was introduced in a previous release, but was not added to the changelog.
- Update 3rd party libraries - Freemius SDK 2.13.0 among others.
5.259
- 2025-11-07
- IMPROVED: Made the dashboard widget visible when white label mode is enabled. Previously the widget was hidden instead. Thank you for the suggestion, Dmitry.
- IMPROVED: Added count-based limit (5000 entries) to visitor log pruning to prevent database bloat on high-traffic sites.
- IMPROVED: Removed deprecated X-XSS-Protection header from REST API - modern browsers ignore this header and Content-Security-Policy is the recommended replacement. Thank you Dmitry for the suggestions.
- IMPROVED: More information on CSP in our knowledgebase.
- FIX: Fixed typo in Permissions-Policy description (explitly → explicitly).
- FIX: Updated Permissions-Policy documentation link from Feature-Policy to Permissions-Policy URL.
- FIX: Corrected Nginx example in Content-Security-Policy test descriptions (was showing X-Frame-Options instead of CSP).
- Preparing for plugin rewrite -> improving the free version and streamlining the premium and free feature set.
5.258
- 2025-11-06
- NEW: Enhanced username enumeration protection - Now prevents username discovery via REST API /wp-json/wp/v2/users endpoint and oEmbed API, in addition to existing ?author=N scan protection. Thanks Allen.
5.257
- 2025-10-22
- Removed duplicate 2FA login requests to prevent error flashes. Thanks to Eric for spotting this.
- Added try-catch to prevent problems with corrupted IP location database, thank you Wan.
5.256
- 2025-10-09
- Fix for recommendation engine "wp-config.php not found in the wordpress root directory" - now properly checks for when the config file has been moved up on level. Thank you Eric.
- Fix - 2FA email, user reported emails were sent twice with two different codes. Thank you Eric.
- Improved 2FA setup page stability and performance across different WordPress configurations.
- 2FA - naming of the accounts are now a little more intuitive. Thank you Davina.
5.255
- NEW: Added XML-RPC protection feature. This update enhances your site's security by allowing you to easily enable or disable XML-RPC access.
- Improved: Malware signatures tweaked and improved, thank you users for suggestions.
5.254
- NEW: Add secret key display and copy functionality to 2FA module in frontend and backend. Allowing users to easier add the key to their system.
- FIX: Installation issues that pop up occasionally has been fixed.
- FIX: Timezone on Overview page was incorrect, thank you for spotting Ivar.
- FIX: Resolved JavaScript conflicts that prevented 2FA functionality from working with ARMember and other plugins
- FIX: 2FA QR code/key generation now works reliably across all site configurations, even if other scripts have errors. "Skip for now" link, "Generate new QR code" button, code input validation, and temporary secret usage during setup all function correctly.
- FIX: 2FA setup UI and logic are now robust—QR code generation.
- IMPROVED: Enhanced 2FA JavaScript with robust error handling and DOM ready protection
- IMPROVED: Added inline JavaScript handlers as fallback to ensure 2FA works even when external scripts fail
- IMPROVED: Better error messages and user feedback during 2FA setup process
5.253
- NEW: Setting up 2FA for users in admin pages
- Fix for coupon protection in WooCommerce modern block cart and checkout page - Thank you Priit.
5.252
- Fixes for REST API warnings.
- Updated internal libraries (PHP enums, WordPress SDK, and PHP_CodeSniffer tooling) to latest patch versions for improved stability, coding standards checks, and compatibility. No breaking changes.
5.251
- Fix: Removed extra whitespace in "import/export".
- Fix: Improved "Fixes" features proper loading when doing import/export.
5.250
- Remove translated messages for errors logging in, creating a loop trying to present translated messages using WP's translation engine.
- Fix: Fixed database prefix renaming to properly handle option names containing embedded prefixes. Thank you Chris!
- Enhanced: Improved custom login URL security with proper access control and error handling
...
Entire changelog can be seen here:
changelog