✦ Free SEO tool

Website Malware & Security Checker

Scan any website for malware, injected scripts, hidden iframes, SEO spam, blacklisting and weak security settings. Free, from the outside, no installation.

Fetching and analysing the page…

5 of 5 free checks left today. Create a free account for unlimited checks.

Website Malware & Security Checker - results and guide

What the Website Malware & Security Checker checks

  • Injected and obfuscated JavaScript: eval and unescape chains, fromCharCode sequences, escaped blobs, obfuscator output
  • Hidden iframes and code placed before or after the HTML document
  • Cryptocurrency miners, scripts loaded from raw IP addresses, free domains or PHP files
  • Redirects to other domains, including conditional JavaScript redirects that only hit visitors from Google
  • Card skimmers and phishing kits: forms with password or card fields that submit to another site
  • SEO spam: pharma, casino and counterfeit keywords, hidden link farms and the Japanese keyword hack
  • Defacement text and known WordPress malware file paths
  • Google Safe Browsing blacklist status for malware, phishing and unwanted software
  • TLS certificate validity, issuer and expiry, HTTP to HTTPS redirect, HSTS and mixed content
  • Security headers: Content-Security-Policy, X-Content-Type-Options, clickjacking protection, Referrer-Policy, Permissions-Policy and cookie flags
  • Version disclosure in the Server, X-Powered-By and generator tags
  • Publicly readable .env, .git and wp-config backups; XML-RPC, readme.html and user enumeration on WordPress

What a website malware checker can see

This checker looks at a site the way an outside scanner, a search engine or a visitor's browser does. It downloads the page from our servers, follows every redirect, and reads the HTML and the response headers that come back. Then it compares what it finds against the patterns that infected sites share: code that decodes itself before it runs, frames that visitors cannot see, forms that quietly send passwords elsewhere, spam keywords that have nothing to do with the site, and scripts pulled in from places no legitimate site would use.

It also looks at the things that make an infection more likely or more damaging. An expired certificate, a missing Content-Security-Policy, a server that announces its exact version, or a .env file that anyone can download are not malware, but they are how malware gets in and how it gets found. Each result explains what was found, why it matters and what to change, so you can act on it without being a security specialist.

Because the scan reads what the server sends, it is safe to run on any public site, including one you suspect is already compromised: nothing is executed and nothing is installed. For the same reason, run it on a few different pages, not only the home page. Infections are often limited to one template, one plugin or one directory.

What it cannot see, and what to do about that

A remote scan reads the page as delivered. It does not log in to the server, so it cannot see a backdoor sitting in a file the page never references, a modified core file whose output looks normal, or a cron job that reinstalls the infection every night. It also does not run JavaScript, so a payload that only assembles itself in the browser is seen in its encoded form, which is exactly what the obfuscation checks are for.

Treat a clean result as "nothing visible from outside", not as proof that a site is clean. If visitors report redirects you cannot reproduce, Google flags the site, or pages appear in search results that you never wrote, follow up with a server-side scan: compare the installed files with the originals (WordPress users can run wp core verify-checksums), look for files changed in the last few days, and search the code for base64_decode and eval. A suspicious result here tells you where to start looking.

After a clean-up, run the check again and then keep an eye on the site. A compromised site usually goes down, slows down or starts redirecting before anyone notices the cause, so pair this scan with uptime monitoring and SSL monitoring, and use the HTTPS Redirect Checker and Redirect Checker when a redirect looks wrong.

How the risk level is worked out

Every finding has a weight. A sign of infection (injected code, a blacklisting, a skimmer form) weighs most, a serious exposure (a readable secrets file, an invalid certificate, a site served over plain HTTP) comes next, and a hardening gap (a missing header, a leaked version number) weighs least. The risk level follows: Low means nothing more than optional hardening was found, Medium means several hardening gaps, High means a problem that leaves the site open to attack, and Critical means there is evidence that the site is already compromised or blacklisted.

The list at the top of the report holds only the findings that need action, worst first. Every check, including the ones that passed, is repeated in its section further down so you can see what was covered. The table of external scripts lists every third-party domain the page runs code from; a domain you do not recognise is the quickest lead there is.

How to use the Website Malware & Security Checker

  1. Enter the domain or page address you want to check. You can leave out https://.
  2. Press Scan website. The page is fetched from our servers, the way a search engine crawler would fetch it.
  3. Read the findings from top to bottom: problems first, then warnings. Each one says what to change.

Common problems and how to fix them

Obfuscated JavaScript or a hidden iframe was found

Take a full backup first, then find the code in the page source and trace it to its origin: a theme file (footer.php, functions.php), a plugin, a database option or post, or a core file. Replace infected files with fresh copies from the official source rather than editing them. Change every password (hosting, database, CMS admins, FTP, email) and update everything. Then rescan.

Flagged by Google Safe Browsing

Clean the site completely first; a review on a site that is still infected is rejected and delays the next one. Then open Google Search Console, go to Security issues, confirm that the problem is fixed and request a review. Most reviews finish within a few days.

The certificate is invalid or expired

Renew the certificate, or if it is new, check that the full chain is installed and that the name on it matches the address. With Let's Encrypt, run the renewal command (certbot renew) and make sure the timer or cron job that renews it is active.

Missing security headers

Add them in the web server or at the CDN. A safe starting set: Strict-Transport-Security: max-age=31536000; includeSubDomains, X-Content-Type-Options: nosniff, X-Frame-Options: SAMEORIGIN, Referrer-Policy: strict-origin-when-cross-origin, and a Content-Security-Policy that starts in report-only mode.

A .env or .git directory is public

Block the paths in the web server (deny /.env and /.git in Nginx or Apache), or move the application root one level above the public folder. Then rotate every secret those files contain: database passwords, API keys, the application key. Assume they have been read.

XML-RPC, readme.html or user enumeration on WordPress

Disable xmlrpc.php unless Jetpack or the mobile app needs it, delete readme.html and license.txt from the web root, and restrict /wp-json/wp/v2/users with a security plugin or a small filter on rest_endpoints. Keep WordPress, themes and plugins updated and remove the ones you do not use.

Frequently asked questions

Is this website malware checker free?
Yes. Without an account you can run a limited number of checks per day across all our tools; a free Upmonora account removes the limit and keeps a history of your scans.
Does it scan the files on my server?
No. It is a remote scan: it reads the pages and headers your server sends to visitors, the way a browser or a search engine does. A server-side file scan from your hosting panel or a security plugin complements it.
Is it safe to scan a site that may be infected?
Yes. The page is downloaded and read on our servers. Nothing is executed and nothing is installed, so neither your computer nor the site is affected by the scan.
What does a Critical risk level mean?
It means the scan found evidence of an existing compromise: injected or obfuscated code, a skimmer form, a blacklisting by Google, or a secrets file that is publicly readable. Treat the site as hacked until the findings are explained.
Why does the report say the blacklist was not checked?
The Google Safe Browsing lookup needs an API key on the server running the check. When it is not configured, the report says so and points you to Google's own Safe Browsing site status page instead.
Will the scan tell me how the site was hacked?
It tells you what the infection looks like from outside and where in the page it sits, which is where to start. Finding the entry point (an outdated plugin, a weak password, a vulnerable form) needs the server logs and a file-level review.
Monitor Today. Stay Ahead.

SEO gets visitors to your site. Uptime keeps them there.

Monitor 5 websites free forever and get alerted the moment one goes down. No credit card required.