WordPress Security Hardening Checklist: Prevent the Next Hack

WPSecureGuard
WordPress Security Hardening Checklist: Prevent the Next Hack

Why Hardening Works

Attacks against WordPress aren't exotic, and that's good news. Year after year, the overwhelming majority of compromised sites fall to the same few causes: vulnerable or abandoned plugins, stolen or brute-forced credentials, and unpatched software. Attackers run automated scanners against millions of sites — they aren't targeting you personally, they're targeting anything that answers with a known weakness.

That means a systematic hardening pass removes you from almost every attack that will ever reach your site. The numbers back this up: Sucuri found that over 90% of infected sites were running outdated software, and Wordfence reports that brute-force login attacks make up roughly 40% of attempted breaches. Both are almost entirely preventable.

Here's the checklist, ordered by impact. You can work through it in an afternoon.

The Critical Layer (Do These First)

  • Update everything, automatically where possible. WordPress core, every plugin, every theme. Enable automatic core updates. Delete anything you're not using — inactive plugins are still exploitable. This one step addresses the single most common cause of compromise.
  • Enforce strong authentication. A strong, unique password on every account, plus two-factor authentication on all admin accounts. Even if a password leaks in a data breach elsewhere, 2FA keeps the attacker out.
  • Limit login attempts. Lock out bots after a few failed tries. Combined with 2FA, this makes credential attacks effectively useless.
  • Run daily offsite backups. Keep at least 30 days of history. A tested, restorable backup turns any future incident into a single restore instead of a crisis.
  • Enforce SSL. Baseline in 2026 — encrypt all traffic to and from the site.

The Hardening Layer

  • Lock down wp-config.php. Set its permissions to 600, and move it or protect it so it's not web-accessible. It holds your database credentials and security keys.
  • Disable file editing from the dashboard. Add define('DISALLOW_FILE_EDIT', true); so a compromised admin account can't inject code through the built-in editor.
  • Set correct file permissions. Directories to 755, files to 644, wp-config.php to 600. Wrong permissions are an instant risk.
  • Apply least-privilege user roles. Give each person the minimum role they need — most contributors need Author, not Administrator. If an Editor account is compromised, it shouldn't be able to install plugins.
  • Disable XML-RPC unless you specifically need it (Jetpack, some mobile apps). Attackers use it to multiply brute-force attempts.

The Monitoring Layer

  • Add a firewall (WAF). A web application firewall blocks malicious traffic before it reaches your site.
  • Enable file integrity monitoring. Tools like Wordfence and Sucuri alert you the moment core files change, so you catch an infection within hours instead of discovering it weeks later when Google flags you.
  • Run a modern, supported PHP version. Old PHP versions have known, unpatched vulnerabilities.

Keep It Hardened

Security isn't a one-time setup — it's a habit. New plugin vulnerabilities are disclosed every week, so a site that was secure three months ago may have an unpatched hole today. A practical rhythm:

  • Weekly: apply updates (or automate core updates).
  • Monthly: confirm backups are running and restorable.
  • Quarterly: audit user accounts, remove anyone who no longer needs access.
  • Continuously: file integrity monitoring, alerting you immediately to changes.

When You'd Rather Not Do It Yourself

This checklist is designed to be doable in an afternoon if you're comfortable in the WordPress dashboard, the file system, and PHP configuration. But many of these steps — SSL provisioning, automatic updates, file permission enforcement, server-level firewalls, daily backups, and continuous monitoring — are exactly the kind of ongoing work that's easy to set up once and then forget to maintain.

That's what an ongoing maintenance plan is for. At WPSecureGuard, with 25+ years of WordPress and PHP experience, we handle hardening, updates, monitoring, and backups continuously — so your site stays in the secure 5%, not the 95% running on an unpatched weakness.

If you'd rather have your site hardened and kept that way without doing it yourself, see our protection plans. →

Frequently Asked Questions

What is the most important WordPress security hardening step?

Keeping everything updated is the single highest-impact step. According to Sucuri's research, over 90% of infected WordPress sites were running outdated software at the time of compromise — outdated core, plugins, or themes. Enable automatic updates for WordPress core, update plugins and themes promptly, and delete anything you're not actively using, since inactive plugins are still exploitable. After updates, the next most valuable steps are strong authentication (a strong password plus two-factor authentication on every admin account) and daily offsite backups. These three alone — updates, 2FA, backups — remove you from the large majority of automated attacks.

Do I need a security plugin to harden WordPress?

A security plugin helps but isn't the whole answer. A good firewall plugin (WAF) blocks malicious traffic before it reaches your site, and file integrity monitoring alerts you when core files change — letting you catch an infection within hours instead of weeks. But plugins are one layer, not a complete defense. Real hardening is defense in depth: strong credentials and 2FA, prompt updates, correct file permissions, a locked-down wp-config.php, disabled file editing from the dashboard, least-privilege user roles, and offsite backups. A plugin can automate several of these, but the underlying configuration still has to be right. No single measure is sufficient on its own.

How do I stop brute-force attacks on my WordPress login?

Brute-force login attacks account for roughly 40% of attempted WordPress breaches, per Wordfence, so the login page is a priority. The most effective measures: enforce strong, unique passwords on every account; enable two-factor authentication, which makes a stolen password useless on its own; limit login attempts so bots are locked out after a few tries; and consider disabling XML-RPC, which attackers use to multiply login attempts (it's only needed for Jetpack, some mobile apps, and specific integrations). Together these make credential-based attacks effectively useless against your site, even if a password leaks in a data breach elsewhere.

How often should I review my WordPress security?

Security is an ongoing process, not a one-time setup. A practical rhythm: check for and apply updates weekly (or automate core updates), review user accounts quarterly to remove anyone who no longer needs access and enforce least-privilege roles, and confirm your backups are actually running and restorable monthly. File integrity monitoring should run continuously and alert you immediately to changes. The reason for the cadence is simple: new plugin vulnerabilities are disclosed every week, so a site that was secure three months ago may have an unpatched hole today. Ongoing discipline is what keeps a hardened site hardened.

Keeping a WordPress site secure requires constant monitoring, updates and vulnerability management.

See our WordPress protection plans →

Stop worrying about WordPress. Start growing your business.

Get started today