Every check we run
The full list, the exact score weight of each finding, and why it weighs that much.
Checks: 113Version 2.99.22The certificate is the foundation of the connection: if it is missing, expired or untrusted, every other protection is moot — traffic can be intercepted. Hence the heaviest weights (−10); "expiring soon" is softer because it is a warning, not yet a failure.
| Could not verify the SSL/TLS certificate | -10 | Free scan |
| Certificate expiring soon (<14d / <30d) | -5…-10 | Free scan |
| Certificate has expired | -10 | Free scan |
| Certificate chain is not trusted | -10 | Free scan |
| Weak RSA key (<2048 bits) | -10 | Free scan |
| Legacy TLS protocols supported (1.0/1.1) | -8 | Free scan |
| No CAA record (who may issue certificates) | -2 | Verified owner |
Headers are the cheapest protection on the web: one server setting blocks whole classes of attack. HSTS weighs most (−10) because without it even the first visit can be hijacked. CSP (−8) guards against injected code. The rest scale down by how much real damage the absence causes.
| Missing HSTS | -10 | Free scan |
| Missing Content-Security-Policy | -8 | Free scan |
| Cookies without Secure / HttpOnly | -7 | Free scan |
| Missing X-Frame-Options (clickjacking) | -6 | Free scan |
| Insecure cookies (expanded check) | -5 | Verified owner |
| Missing X-Content-Type-Options | -4 | Free scan |
| Missing Referrer-Policy | -3 | Free scan |
| Weak HSTS policy (max-age too short) | -2 | Verified owner |
| HSTS not preload-ready | -1 | Free scan |
Outdated software is the most common cause of real breaches — the flaws are publicly documented and the tooling is automated. A plugin with a known CVE carries the heaviest weight in the whole system (−12): that is not a theoretical risk but a working attack path.
| Plugin with a known vulnerability (CVE) | -12 | Free scan |
| PHP version end-of-life | -10 | Free scan |
| Severely outdated WordPress | -10 | Free scan |
| Outdated WordPress (minor version) | -8 | Free scan |
| Outdated JavaScript library | -5 | Verified owner |
| Server discloses software versions | -5 | Free scan |
| readme.html publicly accessible | -3 | Free scan |
| Plugins disclose versions (?ver=) | -2 | Free scan |
| Components with a disclosed version (check CVEs) | informational | Free scan |
If the domain or server IP is already flagged as phishing or malicious, that is no longer a risk but a fact — browsers and mail systems start blocking. Hence −10. Important distinction: a block by CONTENT filters (family, ads) costs nothing, because that is the filter's categorisation choice, not a flaw in your site.
| AbuseIPDB abuse score | -2…-10 | Verified owner |
| Domain blocked by security filters | -10 | Free scan |
| Domain in a phishing database | -10 | Free scan |
| Google Safe Browsing: malware | -10 | Free scan |
| Google Safe Browsing: phishing | -10 | Free scan |
| Server IP on reputation lists (DNSBL) | -6…-10 | Free scan |
| Google Safe Browsing: unwanted software | -8 | Free scan |
| Domain blocked by content filters | informational | Free scan |
DNS is the address directory: if it can be forged, visitors land somewhere else even with the correct address. DNSSEC (−5) is mid-weight because such attacks take effort. Domain age is shown to everyone but only penalises very new domains (−4), which are disproportionately used for fraud.
| Possible subdomain takeover | -8 | Verified owner |
| DNSSEC not enabled | -5 | Free scan |
| Sensitive subdomains in CT logs | -5 | Verified owner |
| Domain registered <30 days ago (RDAP/WHOIS) | -4 | Free scan |
| No IPv6 (AAAA record) | -2 | Free scan |
| Subdomains found in CT logs (overview) | -2 | Verified owner |
| robots.txt exposes sensitive paths | -2 | Free scan |
| HTTP/3 (QUIC) not supported | informational | Free scan |
| Look-alike domains (brand protection) | informational | PRO |
| Registered look-alike (typosquat) domains | informational | Verified owner |
Without these records anyone can send mail in your name — to clients, partners, accounting. It is one of the most real threats to small business, so missing fundamentals weigh −6…−8. An overly permissive SPF (+all) is punished harder (−8) than a missing one: it actively authorises impersonation.
| No SPF record | -8 | Extended |
| Mail server IP on blocklists | -8 | Extended |
| Overly permissive SPF (+all) | -2…-8 | Extended |
| No DKIM signature | -6 | Extended |
| No DMARC record | -6 | Extended |
| SPF exceeds the 10-lookup limit | -6 | Extended |
| Weak DMARC policy (p=none) | -4 | Extended |
| No DANE/TLSA for mail servers | -2 | PRO |
| No MTA-STS | -2 | Verified owner |
| No TLS-RPT | -2 | Verified owner |
| Mail server without reverse DNS (PTR) | -2 | Extended |
| SPF without "-all" / "~all" | -2 | Extended |
| DMARC without a reporting address (rua) | -1 | Extended |
| DMARC not applied to all mail (pct<100) | -1 | Extended |
| Spoofing protection: open (summary) | informational | Extended |
| Spoofing protection: partial (summary) | informational | Extended |
| No BIMI record (logo in inbox) | informational | PRO |
| No MX record (domain receives no mail) | informational | Extended |
| Mail-authentication baseline gaps (summary) | informational | Extended |
This looks for files and panels left online that open a direct path in: .env with passwords, .git with the whole codebase, database backups, phpMyAdmin. Finding one is not a risk but an open door — hence critical weights (−10). The whole group is capped at −30 combined so a single false positive cannot zero the score.
| Webshell detected | -10 | Verified owner |
| Exposed Spring Boot Actuator | -10 | Verified owner |
| Cloud credentials in code | -10 | Verified owner |
| File with secrets (SSH key, .htpasswd) | -10 | Verified owner |
| PHPUnit remote code execution flaw | -10 | Verified owner |
| Secret key in public page code | -10 | Verified owner |
| Public backup / DB dump | -10 | Verified owner |
| Public wp-config backup | -10 | Verified owner |
| Public .env file (secrets) | -10 | Verified owner |
| Public .git directory (full source) | -10 | Verified owner |
| Public CMS config file | -10 | Verified owner |
| Public credential dotfile (.netrc, .pgpass) | -10 | Verified owner |
| Exposed pgAdmin | -8 | Verified owner |
| Exposed phpMyAdmin | -8 | Verified owner |
| Risky ports open (DB, RDP, SSH) | -8 | Verified owner |
| Public .svn directory | -8 | Verified owner |
| Public debug.log | -8 | Verified owner |
| Public phpinfo() page | -8 | Verified owner |
| Unrestricted Google API key | -6 | Verified owner |
| Usernames exposed (REST API) | -5 | Free scan |
| Usernames exposed (expanded) | -5 | Verified owner |
| Open redirect | -5 | Verified owner |
| Exposed control / CI panel | -5 | Verified owner |
| GraphQL introspection enabled | -5 | Verified owner |
| HTTP not redirected to HTTPS | -5 | Verified owner |
| Mixed content (http and https) | -5 | Verified owner |
| CORS misconfiguration | -2…-5 | Verified owner |
| Risky HTTP methods (PUT, DELETE) | -5 | Verified owner |
| Public log file | -5 | Verified owner |
| XML-RPC enabled (xmlrpc.php) | -5 | Verified owner |
| Directory listing enabled | -5 | Verified owner |
| Exposed webmail login | -2 | Verified owner |
| No security.txt | -2 | Verified owner |
| Publicly visible API docs | -2 | Verified owner |
| Public VCS / CI config files | -2 | Verified owner |
| Public source / build files | -2 | Verified owner |
These findings mean foreign code is most likely already running on the site: a crypto-miner, a hidden iframe, or a password form posting to another domain. They are signs of compromise, not configuration gaps — hence −10. An independent urlscan.io verdict is treated just as strictly.
| Crypto-miner on the page | -10 | Verified owner |
| Password form posts to a foreign domain | -10 | Verified owner |
| urlscan.io: malicious site | -10 | Verified owner |
| urlscan.io: phishing | -10 | Verified owner |
| urlscan.io: suspicious site | -8 | Verified owner |
| Hidden external iframe | -7 | Verified owner |
| Obfuscated script | -6 | Verified owner |
| Suspicious external script | -4 | Verified owner |
| Auto-redirect to a foreign domain | -3 | Verified owner |
| Script injected via document.write | -3 | Verified owner |
| Third-party script inventory | informational | Verified owner |
These are not breach risks, so the weights are small. Trackers without consent (−3) are a GDPR-compliance matter rather than a security one. Sitemap and indexing are included because they decide whether customers find you at all — but they never weigh as much as a real vulnerability.
| No XML sitemap found | -3 | PRO |
| Trackers without visitor consent (GDPR) | -3 | PRO |
| Invalid API key in the page | -2 | Verified owner |
| Sitemap not listed in robots.txt | -1 | PRO |