WordPress Security

What WordPress "Security Hardening" Actually Means

Almost every managed WordPress plan lists "security hardening" as a feature. Almost none of them say what that actually is. Here's the real checklist.

Quick Answer: "Security hardening" on a WordPress site means a specific list of configuration changes — hiding the version number, blocking username enumeration, masking login errors, disabling the file editor, adding security headers, rate-limiting logins, blocking known attacker IPs, disabling XML-RPC, requiring strong passwords, and requiring two-factor authentication for admins. None of it patches an actual vulnerability. What it does is close off the easy, automated ways attackers get in, so whatever's actually wrong with the site is harder to find and slower to exploit.

Not Sure What's Actually Hardened on Your Site?

Tell us about your current setup and we'll walk you through what's covered and what isn't.

"Security Hardening" Doesn't Mean Anything Until Someone Tells You What's In It

I get asked some version of this a few times a month: "what does security hardening actually mean?" Usually from someone comparing a couple of managed hosting quotes that both list "security hardening" as a bullet point, with nothing behind it. Fair question — it's one of those phrases that's used constantly and defined almost never.

Hardening isn't a single feature. It's a batch of small configuration changes, and each one shuts off one specific way attackers commonly poke at a WordPress site. Individually, none of them sound like much. Together, they're most of what separates a site that gets left alone from one that gets hit the week a new plugin vulnerability makes the rounds.

What's Actually In It

This is the list we apply to every site we manage. Not a marketing version of it — the actual settings:

  • Hide the WordPress version. Attackers scan for known vulnerabilities by version number — if they can't see it, they can't target it.
  • Block username enumeration. WordPress will hand out valid usernames through author pages and the REST API if you let it. We shut that door.
  • Mask login error messages. A failed login shows the same generic message every time, so nobody can tell if they guessed a real username.
  • Disable the file editor. WordPress lets admins edit theme and plugin code right from the dashboard. If that account is ever compromised, we don't want that door open too.
  • Add security headers. A few extra HTTP headers tell browsers to block clickjacking and content-sniffing attacks before they start.
  • Rate-limit login attempts. Too many failed logins from one source and it gets throttled — brute-force attacks stop being worth the time.
  • Block known attacker IPs. If an IP has already been caught attacking other sites, it doesn't get a chance at yours.
  • Disable XML-RPC when it's safe to. This old WordPress feature is a favorite for brute-force and DDoS abuse. We turn it off — unless a site actually needs it for Jetpack or the mobile app.
  • Require strong passwords. Every account has to meet a minimum strength standard, so a weak password doesn't undo everything else.
  • Require two-factor authentication for admins. A password alone isn't enough — every admin needs a second step to log in.

What This Doesn't Do

I want to be straight about this, because it's easy to oversell: none of the above fixes a real vulnerability. If a plugin on your site has an actual security hole, hardening doesn't patch it — an update does. What hardening buys you is a smaller, less obvious target in the meantime, and one less way in if that vulnerability sits unpatched for a few days before you or your host catch it. Hardening and staying current on updates are two different jobs. You need both. Neither one covers for the other.

Why Nobody Explains This

Because it's boring to explain and there's nothing to show for it. None of these settings produce a dashboard graph or a screenshot worth putting in a sales deck — they're just configuration flags that either exist or don't. So "security hardening" becomes shorthand, and most buyers never push past the phrase to ask what's actually turned on. The honest answer is that you mostly notice this stuff working by what doesn't happen — no defaced homepage, no "your site has been compromised" email at 2am, nothing to point at.

How We Handle It

This is the baseline on every site we manage through our managed WordPress plan — not an add-on, not something you have to ask for. Version hiding, enumeration blocking, masked login errors, the file editor turned off, security headers, rate-limited logins, known-attacker IPs blocked, XML-RPC off unless a site actually needs it, strong passwords enforced, and two-factor required for every admin. If your site is the kind where downtime or a breach is a real problem — not just an inconvenience — the Managed Stability plan layers ongoing monitoring on top of all of this.

If you're comparing this against your current hosting, two related questions are worth asking: does your current host's "security" actually cover any of this, and if you're running a security plugin already, whether it's covering the same ground as hardening, or something different entirely.

Martin Van Den Boogerd
Martin Van Den Boogerd
Founder & Owner, CriticalWP — background in cybersecurity and municipal government infrastructure
More about Martin →

Common Questions

Concretely, it includes hiding the WordPress version number, blocking username enumeration, masking login error messages, disabling the theme and plugin file editor, sending hardening HTTP headers, rate-limiting login attempts, blocking known attacker IPs, disabling XML-RPC where it's not needed, and requiring two-factor authentication for administrators.
Attackers scan sites for the WordPress version in the page HTML and RSS feeds specifically to find version-specific vulnerabilities to exploit. Hiding the version number doesn't fix an unpatched vulnerability, but it removes an easy way for automated scanners to target a site.
Username enumeration is when a bot lists valid usernames on a site through author archive pages, the REST API, or the sitemap. It's usually the first step before a brute-force login attack, since the attacker needs a valid username before guessing passwords. Blocking it removes that first step.
Not always. XML-RPC is commonly abused for brute-force amplification and pingback DDoS attacks, so disabling it is a reasonable default. But some sites depend on it for the WordPress mobile app or Jetpack, so it should only be disabled after confirming the site doesn't rely on it.
Yes. Weak and reused passwords remain one of the most common ways WordPress accounts get compromised. Enforcing a minimum password strength at account creation and on password changes removes the easiest way in, and pairs directly with two-factor authentication as the two account-level protections that matter most.
Yes, for any site where an admin account compromise would be a real problem — which is most business sites. A stolen or guessed password alone shouldn't be enough to get into wp-admin, and two-factor authentication is one of the highest-impact, lowest-friction protections available.

Know exactly what's protecting your site.

A real hardening checklist, applied by default — not a vague line item on a features page.