WPScan – WordPress Security Scanner


The WPScan WordPress Security Scanner plugin scans your system on a daily basis to find security vulnerabilities listed in the WPScan WordPress Vulnerability Database. It shows an icon on the Admin Toolbar with the total number of security vulnerabilities found.

The WPScan WordPress Vulnerability Database is a WordPress vulnerability database, which includes WordPress core vulnerabilities, plugin vulnerabilities and theme vulnerabilities. The database is maintained by the WPScan Team, who are 100% focused on WordPress security.

To use the WPScan WordPress Security Plugin you will need to use a free API token by registering here.

The WPScan WordPress Security Plugin will also check for other security issues, which do not require an API token, such as:

  • Check for debug.log files
  • Check for wp-config.php backup files
  • Check if XML-RPC is enabled
  • Check for code repository files
  • Check if default secret keys are used
  • Check for exported database files

What does the plugin do?

  • Scans the WordPress core, plugins and themes for known security vulnerabilities;
  • Does additional security checks;
  • Shows an icon on the Admin Toolbar with the total number of security vulnerabilities found;
  • Notifies you by mail when new security vulnerabilities are found.

Further Reading


  • List of vulnerabilities and icon at Admin Bar.
  • Notification settings.
  • Site health page.


  1. Upload wpscan.zip content to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Register for a free API token
  4. Save the API token to the WPScan settings page or within the wp-config.php file


  • How many API calls are made?

    There is one API call made for the WordPress version, one call for each installed plugin and one for each theme. By default there is one scan per day. The number of daily scans can be configured when configuring notifications.

  • How can I configure the API token in the wp-config.php file?

    To configure your API token in the wp-config.php file, use the following PHP code: define( 'WPSCAN_API_TOKEN', '$your_api_token' );

  • How do I disable vulnerability scanning altogether?

    You can set the following PHP constant in the wp-config.php file to disable scanning; define( 'WPSCAN_DISABLE_SCANNING_INTERVAL', true );.

  • Why is the “Summary” section and the “Run All” button not showing?

    The cron job did not run, which can be due to:

    • The DISABLE_WP_CRON constant is set to true in the wp-config.php file, but no system cron has been set (crontab -e).
    • A plugin’s caching pages is enabled (see https://wordpress.stackexchange.com/questions/93570/wp-cron-doesnt-execute-when-time-elapses?answertab=active#tab-top).
    • The blog is unable to make a loopback request, see the Tools->Site Health for details.

    If the issue can not be solved with the above, putting define('ALTERNATE_WP_CRON', true); in the wp-config.php could help, however, will reduce the SEO of the blog.


October 14, 2020
A tiny plugin that timely reports vulnerable themes and plugins installed on your website. Effective and very easy to use - must have!
October 5, 2020
This plugin is waste of time when used with free API token (50 requests per 24 hours). Tested in single-site environment with 1 theme and 18 plugins. It partly works, but the problem is - it will check only half of the plugins and then stop, it will never complete at least one full scan report... I believe the demo version should be somewhat more functional than that.
Read all 17 reviews

Contributors & Developers

“WPScan – WordPress Security Scanner” is open source software. The following people have contributed to this plugin.


“WPScan – WordPress Security Scanner” has been translated into 8 locales. Thank you to the translators for their contributions.

Translate “WPScan – WordPress Security Scanner” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Improve WPScan API error handling
  • Add status URL on WPScan API errors
  • Delete doing_cron transient on plugin activation
  • Replace the xmlrpc_encode_request() PHP function
  • Blur API token setting input box


  • Fix bug: case statement should ‘break’


  • Fix bug: Handle 404 API errors


  • Code Refactoring
  • Adds Security Check System
  • Check for debug.log files
  • Check for wp-config.php backups
  • Check if XMLRPC is enabled
  • Check if default keys are used in wp-config.php
  • Check for code repo files .svn and .git
  • Create a Vulnerabilities to Ignore meta-box
  • Fixes Theme closed incorrect message and position in report
  • Show message if API is not working
  • Timeout cron jobs
  • Fix 404 error in devtools


  • Change references of wpvulndb to wpscan.com


  • Add WPSCAN_DISABLE_SCANNING_INTERVAL constant to disable automated scanning
  • Add an option in the settings to ignore items
  • Add an option in the settings to set the scan time
  • Show a not found in database message
  • Other minor bug fixes


  • Add scanning interval option to settings page
  • Some other small improvements


  • Show severity ratings for Enterprise users
  • Show Plugin Closed label
  • Add PDF report download
  • Add account status meta box
  • Add support for API token constant in wp-config.php file
  • Show vulnerabilities in Site Health
  • Update menu icon to monochrome


  • Updated text and messages to reduce confusion
  • Removed WPScan_JWT class as no longer required


  • Use the new slug helper method on all items on the page


  • Better slug detection before calling the API


  • Prevent multiple tasks to run simultaneously
  • Check Now Button disabled and Spinner icon displayed when a task is already running
  • Results page automatically reloaded when Task is finished (checked every 10s)


  • Use the /status API endpoint to determine if the Token is valid. As a result, a call is no longer consumed when setting/changing the API token.
  • Trim and remove potential leading ‘v’ in versions when comparing then with the fixed_in values.


  • Add notice about paid licenses


  • Warn if API Limit was hit


  • First release.