Hardening
The WordPress Security Checklist
Fourteen items, ordered by how much risk each one removes per minute spent.
WPDeeply
Hardening
The WordPress Security Checklist
Ordered by return on effort. If you only do the first five, you have removed most of the realistic risk to a small WordPress site.
Do these first
- Update WordPress core, plugins and themes — and confirm the versions afterwards rather than trusting the notification.
- Delete every plugin and theme you do not use. Deactivated is not removed.
- Remove administrator accounts that do not need to be administrators. Editors can edit.
- Enable two-factor authentication on every administrator account.
- Run a vulnerability scan so you know what is actually installed.
Then these
- Set
DISALLOW_FILE_EDITto disable the built-in theme and plugin editor. - Move
wp-config.phppermissions to 400 or 440 and check the rest of your permissions. - Regenerate the salts in
wp-config.php— this logs everyone out, including anyone with a stolen cookie. - Take backups that leave the server, and restore one to prove it works.
- Use a password manager. Reused administrator passwords defeat everything above.
Then these, if it applies to you
- Turn off
WP_DEBUGin production. - Disable XML-RPC unless something you use needs it.
- Restrict access to
wp-login.phpby IP if your team is small and static. - Set security headers at the server or CDN level.
Nothing on this list stops a vulnerable plugin from being vulnerable. Patching does that. The list limits what an attacker reaches once they find one.
Hardening reduces the damage. Patching removes the hole. Scan your site free to see what still needs patching.