WordPress Core File Integrity: How to Know Your Site Hasn't Been Tampered With -- WPFixAgent WordPress repair workspace
All WordPress guides

Security

WordPress Core File Integrity: How to Know Your Site Hasn't Been Tampered With

A plugin scan checks for known bad patterns. A core integrity check answers a different, more absolute question: does every core file match what WordPress.org actually shipped?

Updated August 19, 20266 min read

A different kind of check than malware scanning

Most security scanning looks for known-bad patterns: signatures of known malware, suspicious code structures, files sitting somewhere they shouldn't. That approach is powerful but inherently reactive -- it can only catch what it's been built to recognize. Core file integrity checking asks a completely different, more absolute question: does this exact file, byte for byte, match what WordPress.org actually published for this version?

That distinction matters because a sufficiently careful attacker doesn't need to introduce an obviously suspicious file. A single modified line in a legitimate-looking core file -- one that doesn't trip any pattern-based scanner -- can be enough to create a backdoor. Checksum verification catches that regardless of how well the modification is disguised, because it doesn't care what the change looks like, only whether the file matches the official original.

How the checksums actually work

WordPress.org publishes an official release archive for every version, and a checksum -- a short cryptographic fingerprint -- can be computed for every file inside it. Two files are identical if and only if their checksums match; even a single-character change produces a completely different checksum. Building a checksum manifest directly from the official release archive, rather than trusting a list from a third party, means the comparison is always against the real, unmodified source.

A full scan checks every core file against this manifest and reports exactly three things: files present but modified, files that should exist but are missing, and unexpected PHP files sitting inside core directories that shouldn't contain any custom code at all. That last category catches a specific, common attacker pattern -- dropping a malicious file into a WordPress core folder where an admin is unlikely to look, since core directories are assumed to only ever contain official files.

What a failed check means, and what to do about it

A core file failing its checksum doesn't automatically mean compromise -- a failed or interrupted WordPress update can leave a file in an inconsistent state too, and that's worth ruling out first by checking whether an update was recently attempted. But a modified core file with no corresponding recent update, especially one paired with other findings like an unfamiliar admin account or a suspicious file elsewhere on the site, is a strong signal that something is genuinely wrong.

Because the WordPress.org release archive contains the exact correct version of every core file, the fix is a real repair, not a guess: download the matching official release and replace only the files that failed verification, leaving everything else untouched. WPFixAgent runs this exact check on a schedule and, when it finds a failure, can perform that precise repair automatically -- after taking a restore point first, so the repair itself is reversible if anything about the finding turns out to be more complicated than a simple modified file.

This guide provides general operational information. Complex security, hosting, database, or custom-code failures may require a qualified specialist.

Continue learning

Related WordPress reliability guides

Critical errors

How to Fix a WordPress Critical Error Without Making It Worse

Recover from the WordPress critical error screen with a controlled process that protects evidence, creates a restore point, isolates the cause, and verifies the result.

Read guide

Plugin conflicts

WordPress Plugin Conflict Detection: A Safer Troubleshooting Guide

Find conflicting WordPress plugins systematically using evidence, reversible isolation, and tests that prove the affected workflow works again.

Read guide

Emergency recovery

How to Recover WordPress When wp-admin Will Not Load

Use a recovery path that loads before normal plugins when wp-admin is unavailable, then verify the site before returning it to service.

Read guide

Free 14-day trial · no card required

Give every WordPress site a safer path from incident to verified recovery.

Install the connector, pair with a one-time token, and start monitoring in minutes -- upgrade whenever you're ready.

Start Free Trial