Is your WordPress
infected?
we disinfect, harden and monitor.
Full WordPress malware cleanup and security hardening
Redirects to illegal pharmacy, casino popups, Chrome showing “Deceptive site ahead”, suspicious PHP files, phantom admins: the malware is in your code. We clean the infection, close the doors, and install the monitoring that will prevent the next attack.
The 7 signs of active malware
By severity. The more you tick, the more advanced the infection.
Notification “Site contains harmful content” or “Malware detected” in GSC, Security & manual actions section. Level: red. Without cleanup, your rankings drop within 7 days.
Google Safe Browsing warning page instead of your site. Your visitors see “The site ahead contains harmful programs”. Traffic divided by 10 instantly.
Your visitors are redirected to illegal pharmacy, casino, adult content sites or downloads. Often only from Google (not on direct access) or only on mobile — the malware targets specific referrers.
Inspect the page source (Ctrl+U). Presence of <script src="https://random-cdn-xyz.tk/...">, eval(base64_decode(...)) in PHP templates, or invisible iframes pointing to unknown domains.
In Users > All Users, presence of admin accounts with strange names (admin_backup, wp_admin, support_wp) or random Gmail/ProtonMail emails. These are attacker backdoors.
/wp-content/uploads/
The uploads folder should never contain .php. Presence of uploads/2024/12/wp.php, uploads/cache.php = uploaded backdoor. Detection via find /wp-content/uploads/ -name "*.php" over SSH.
Your site is suddenly twice as slow, server CPU stuck at 80-100%, your host warns of a CPU quota overrun. Likely cause: the malware is cryptomining (Monero, usually) on your server resources in the background.
Our method in 6 steps
Always in this order. No improvising, no shortcuts that bring the infection back.
eval(base64_decode, preg_replace.*\/e, str_rot13). Results cross-checked to miss nothing.
/xmlrpc.php, /wp-login.php, /wp-content/plugins/...vulnerability.../. Identification of the exploited vulnerable plugin / theme / WordPress version.
find + diff against clean WordPress install). (b) Cleanup of injections in core files (diff against official WordPress checksum). (c) DB cleanup: removal of rogue accounts, malicious auto-load options, injected posts/comments.
DISALLOW_FILE_EDIT in wp-config.php. xmlrpc.php disabled. Strict filesystem permissions (chmod 644 / 755). Wordfence or Sucuri in continuous monitoring.
Pricing stated up-front
Free scan. For the cleanup, you know exactly what it costs before we touch the code.
Scan + diagnostic
- Scan Sucuri + Wordfence + manual SSH
- Inventory of infected files + rogue accounts
- Firm quote sent immediately
- You decide if we continue
Cleanup + hardening
- Forensic backup before cleanup
- Cleanup of files + DB + rogue accounts
- Hardening (updates, permissions, passwords, monitoring)
- Google review request if blacklisted
- 30-day warranty · re-intervention if recurrence
Security maintenance
- Daily Wordfence scan · alert on suspicious pattern
- Daily backups automatically externalised
- WordPress + plugin updates within 48 h of CVE publication
- Priority intervention on incidents
“WordPress malware” is not...
“Hacked” covers any intrusion (admin access compromised, defacement, data theft). “Malware” is the malicious code left behind. The two interventions overlap but our pages detail different angles.
Hacked WP page → ❌ Not a critical errorIf WordPress displays “There has been a critical error”, it's a PHP bug, not necessarily malware. Different diagnostic.
Critical error page → ❌ Not just a slow siteIf the site is slow but with no signs of infection (no Google alert, no redirect, no foreign PHP files), it's an ordinary performance issue. Dedicated page.
Slow WP page →WordPress malware — frequently asked questions
/wp-content/uploads/ (never normal), (7) degraded performance (cryptomining consuming CPU). Tools: free Sucuri SiteCheck, Wordfence, MalCare.DISALLOW_FILE_EDIT), Wordfence/Sucuri monitoring. At this level, reinfection rate < 5% over 12 months. Without continuous monitoring, warranty expires after 30 days.Other issues I handle
Suspected infection on your WordPress?
Free 30 min scan: we measure the exact scope, we quote. Quote within 24 business hours. 30-day warranty on the cleanup.