Passive security scan for public WordPress sites. Checks HTTP security headers, HTTPS, WordPress exposure, and common information disclosure issues.
Running safe passive checks…
Paste your URL and get a free WordPress security scan in seconds. This online security audit tool inspects your HTTP security headers, HTTPS setup, WordPress exposure and common information leaks, then turns everything into a risk score with plain-English fixes. It’s passive and safe, with no plugin to install and no account to create.
A WordPress security checker is an online tool that looks at your website from the outside, the same way a visitor or an automated bot would, and flags weak spots in its public configuration. It answers questions like: Is HTTPS set up properly? Are modern browser protections switched on? Is WordPress telling strangers its version number or your usernames?
This is a free website security audit aimed at the everyday misconfigurations that attackers look for first. Most WordPress compromises don’t start with a clever exploit. They start with something simple: an outdated component, a guessable username, or a missing safeguard. A quick WordPress security check shows you those gaps before anyone else finds them, which makes it a practical first step in any free cyber security audit of your site.
The scanner sends a small number of ordinary requests to your public URL, reads the responses, and compares what it finds against security best practices. It never logs in, never tries passwords, and never attempts an exploit. Here’s the process:
Each scan runs 25 checks grouped into five categories, so you can see at a glance where your site is strong and where it needs attention.
| Category | What it looks for | Why it matters |
|---|---|---|
| HTTP security headers | Content-Security-Policy, Strict-Transport-Security (HSTS), X-Content-Type-Options, clickjacking protection, Referrer-Policy, Permissions-Policy, and the newer Cross-Origin policies (COOP, CORP, COEP) | Headers tell browsers how to treat your pages, which blocks whole classes of attacks like clickjacking and script injection. |
| SSL / HTTPS | HTTPS in use, obvious mixed content, login page served over HTTPS | Encryption protects logins and visitor data in transit, and browsers flag insecure pages. |
| WordPress exposure | WordPress detection, public REST API and user listing, author-archive user enumeration, XML-RPC, Application Passwords, login page | Exposed endpoints help attackers find usernames and plan login attacks. |
| Information disclosure | Public WordPress version, readme.html, wp-config variants, .env, .git, phpinfo, directory listing |
Leaked details shorten an attacker’s research and sometimes hand over secrets. |
| General | Overall posture, plus signs of a WAF or CDN such as Cloudflare in front of the login path | A firewall layer adds protection even when other settings are imperfect. |
Every report opens with an overall risk score. Unlike a school grade, a lower number is better, because the score measures risk. Beneath it you’ll see counts of passed checks, warnings and failures, a score for each of the five categories, and a detailed list of findings.
| Status | Meaning | What to do |
|---|---|---|
| Pass | The check looks healthy. | Nothing needed. Keep it that way after updates. |
| Warning | A recommended safeguard is missing or a setting is weaker than ideal. | Fix soon, starting with the highest risk value. |
| Fail | A clear problem, such as a sensitive file being publicly readable. | Fix immediately. |
| Info | A neutral observation, such as WordPress being detected or the REST API being reachable. | Review. It’s often normal, but worth understanding. |
Each finding also shows a risk value, the evidence the scanner saw (for example, the exact header it found) and a recommendation written for site owners, not just security specialists.
HTTP security headers are short instructions your server sends along with every page. Browsers read them and switch on built-in protections. They’re one of the cheapest, highest-impact ways to harden a site, and a missing header is one of the most common findings in any WordPress security scan. The OWASP Secure Headers Project is a good reference for recommended values.
| Header | What it does | Typical value |
|---|---|---|
Strict-Transport-Security |
Forces browsers to use HTTPS for your domain (HSTS). | max-age=31536000; includeSubDomains |
Content-Security-Policy |
Controls which scripts, styles and frames may load. This is your best defense against cross-site scripting. | Site-specific. Avoid unsafe-inline and unsafe-eval where you can. |
X-Content-Type-Options |
Stops browsers from guessing file types. | nosniff |
X-Frame-Options / frame-ancestors |
Prevents other sites from framing yours, which blocks clickjacking. | SAMEORIGIN |
Referrer-Policy |
Limits how much URL information is shared with other sites. | strict-origin-when-cross-origin |
Permissions-Policy |
Turns off browser features you don’t use (camera, microphone, geolocation). | Site-specific. |
Cross-Origin-Opener / Resource / Embedder-Policy |
Newer headers that isolate your pages from other origins. | Add carefully, since they can break embeds and pop-ups. |
If you want to go deeper on any individual header, MDN’s documentation on the Content-Security-Policy header explains every directive.
The simpler headers can be added in one go. For Apache, place this in your .htaccess (the mod_headers module must be enabled):
<IfModule mod_headers.c> Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "SAMEORIGIN" Header always set Referrer-Policy "strict-origin-when-cross-origin" </IfModule>
On Nginx, the equivalent is add_header lines in your server block. Many managed hosts and security plugins also have a one-click toggle for these.
These are the findings you’re most likely to meet in the WordPress exposure and information-disclosure categories. For a wider list of hardening steps, the official Hardening WordPress guide is the place to start.
WordPress adds a generator tag to your page source that reveals your version. Removing it reduces information leakage, but it is not a substitute for updating. An up-to-date site is safe even when the version is visible.
// Add to a small custom plugin or your child theme's functions.php remove_action( 'wp_head', 'wp_generator' ); add_filter( 'the_generator', '__return_empty_string' );
Visiting /?author=1 or /wp-json/wp/v2/users can reveal real login names, handing attackers half of a credential pair. If you don’t need public author pages or a public users endpoint, close them:
// Hide the users REST endpoints from logged-out visitors
add_filter( 'rest_endpoints', function ( $endpoints ) {
if ( ! is_user_logged_in() ) {
unset( $endpoints['/wp/v2/users'] );
unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
}
return $endpoints;
} );
// Stop ?author=1 style username probing
add_action( 'template_redirect', function () {
if ( ! is_admin() && isset( $_GET['author'] ) ) {
wp_safe_redirect( home_url(), 301 );
exit;
}
} );
If xmlrpc.php is reachable and you don’t use it, disable it, since it’s a popular target for brute-force attempts. Delete or block readme.html, and make sure files like wp-config.php backups, .env and .git are never served. Turn off directory listing in your server config.
The login page and Application Passwords are normal parts of modern WordPress, so the scanner marks them as informational. Limit Application Passwords to accounts that need them, use strong unique passwords with two-factor authentication, and consider a firewall or CDN in front of wp-login.php. A good WordPress security plugin can handle login limits, two-factor authentication and firewall rules in one place.
“Security scanner” can mean several different things, so it helps to know what each type does and doesn’t do. Used together, they cover far more than any single tool.
| Passive security checker (this tool) | Active enumeration scan | Plugin & theme CVE scanner | |
|---|---|---|---|
| Focus | Headers, HTTPS, public exposure, information leaks | Probes many paths to list plugins, themes and users | Matches detected versions against known vulnerabilities |
| Impact on your server | Minimal, a few normal requests | Can create many 404 log entries | Varies |
| Signup needed | No | Often for deeper scans | Often for full reports |
| Best for | Quick configuration audit and hardening checklist | Mapping your attack surface | Finding outdated, vulnerable components |
This checker is deliberately a configuration audit. It isn’t a WordPress vulnerability scanner that tests each plugin for known CVEs, and it doesn’t scan for malware. Keep WordPress, plugins and themes updated, and pair this audit with a reputable security plugin or monitoring service. Our roundup of the best WordPress security plugins compares your options.
Find missing headers and leaky settings before attackers or automated bots do.
Nothing to install on your site and no account to create. Enter a URL and go.
Every finding explains the risk and how to fix it, without security jargon.
Fix, rescan and watch your risk score drop. It’s a simple way to prove hardening work to clients.
Passive checks don’t attack your site or fill your logs with noise.
Run it as often as you like: after updates, plugin installs or hosting changes.
Who is it for? Site owners who want a quick health check, agencies auditing client sites before handover, developers testing a launch or staging environment, and anyone who has just changed hosting, CDN or SSL settings. After a server or database move, rescan to make sure nothing got undone. If you work with the underlying data too, our PHP to JSON converter helps you read the serialized PHP arrays WordPress stores in its options table, and the MySQL to Postgres converter is handy for planning database migrations on other projects.
admin username.It’s an automated review of your site’s public security configuration: HTTP security headers, HTTPS, exposed WordPress endpoints and information leaks. The result is a risk score and a list of fixes.
You enter a public URL, and the tool makes a small number of ordinary requests, reads the responses, and evaluates 25 checks across five categories. It then shows a score, the evidence it found and a recommendation for each finding.
Yes. You can run the scan for free, without creating an account or installing anything.
Yes. It uses passive, non-intrusive checks. It doesn’t try to log in, run exploits or probe invasively, so it won’t lock you out or flood your logs.
You can scan public websites. Private, local and reserved network addresses are blocked. Please only test sites you own or have permission to assess.
They are instructions your server sends with each page that tell browsers how to protect visitors, for example, forcing HTTPS, blocking framing and limiting which scripts can run.
Lower is better. The score reflects risk, so a falling number after you apply fixes shows your site is getting harder to attack.
No. It’s a configuration and exposure audit rather than a full WordPress vulnerability scanner or malware scanner. Keep plugins updated and add a security plugin or monitoring service for those jobs.
It’s good practice to reduce information disclosure, but updating WordPress is far more important. Do both.
Run it after every major update, plugin or theme change, hosting or CDN change, and at least monthly for important sites.