WordPress Security: A Practical Guide for Business Sites
Most WordPress hacks are automated and boringly preventable. Here is what actually stops them, in order of value.

Short answer
Most WordPress sites are compromised through outdated plugins or themes, or through weak and reused passwords. The measures that matter most are keeping everything updated, removing unused plugins, two-factor authentication on every admin account, few admin users, decent hosting, a firewall, and off-site backups you have tested. Obscurity tricks add little.
WordPress security for a business site is mostly about doing a handful of unglamorous things consistently. The overwhelming majority of compromises are automated: bots scan the internet for sites running a plugin version with a known hole, or try leaked passwords against login pages. Neither is personal, and both are preventable.
This guide covers how WordPress sites actually get compromised, the security measures worth your time in order of value, and the popular ones that add very little.
How do WordPress sites actually get hacked?
Understanding the routes in tells you where to spend effort.
| Route | How it works | What stops it |
|---|---|---|
| Vulnerable plugin or theme | A flaw is published; bots scan for sites still running the old version | Prompt updates; fewer plugins |
| Abandoned plugin | The flaw is found but never fixed because the developer has moved on | Removing and replacing abandoned plugins |
| Stolen or weak passwords | Passwords leaked elsewhere are tried against your login | Unique passwords plus two-factor authentication |
| Nulled (pirated) themes or plugins | Downloaded "free" copies of paid software with a backdoor included | Only installing from the official directory or the vendor |
| Compromised hosting or FTP | Old FTP credentials, shared server neighbours, weak hosting controls | SFTP, good hosting, rotated credentials |
| Former staff or suppliers | Accounts nobody removed | Regular user reviews |
WordPress core itself is rarely the weak point. It has a dedicated security team and, by default, installs minor security releases automatically. The risk sits in the plugins, themes and people around it.
The measures that matter, in order
If you only do the first five, you have covered most of the realistic risk.
1. Keep everything updated
Plugins, themes, WordPress core and the PHP version on the server. Security fixes are only useful once they are installed, and the window between a vulnerability being published and bots scanning for it can be short.
The trade-off is that updates can break things, so the process matters: staging first, backup before going live, then a check. How to update WordPress safely covers the routine. Security releases deserve to go on quickly rather than waiting for the monthly pass.
2. Remove what you do not use
Every installed plugin is code that can be exploited, even when it is deactivated — the files are still on the server. If a plugin is not doing a job today, delete it. The same goes for unused themes: keep the active theme and one default theme as a fallback, and remove the rest.
Also look for plugins that are installed and active but have not been updated by their developer in more than a year. Those need replacing, not just updating.
3. Two-factor authentication on every admin account
Passwords leak. Two-factor authentication (an authenticator app code on top of the password) means a leaked password alone is not enough. It is free, takes a couple of minutes per user to set up, and closes off the credential-stuffing route almost entirely.
Pair it with a password manager so every account has a long, unique password.
4. Fewer people with admin rights
WordPress has roles for a reason. Someone who writes blog posts needs Editor or Author, not Administrator. Review users quarterly, remove former staff and suppliers, and check that nobody has quietly been promoted.
| Role | Can do | Give it to |
|---|---|---|
| Administrator | Everything, including installing plugins and adding users | The owner, and whoever maintains the site |
| Editor | Publish and edit anyone's content | Someone who manages content |
| Author | Publish their own posts | Regular contributors |
| Contributor | Write but not publish | Occasional guest writers |
| Shop manager (WooCommerce) | Manage orders and products | Staff running the shop |
5. Off-site backups you have tested
Backups do not prevent a hack, but they decide how bad it gets. A clean backup from before the compromise turns a disaster into an afternoon. What a proper backup strategy looks like explains how often, where, and for how long.
6. Decent hosting
Good hosting isolates your site from other customers on the same server, keeps PHP current, runs a server-level firewall and malware scanning, and offers SFTP or SSH rather than plain FTP. Cheap shared hosting is not automatically insecure, but the variation between hosts is large. Choosing web hosting for a UK small business covers what to ask.
7. A web application firewall
A firewall filters malicious requests before they reach WordPress — blocking known exploit patterns and limiting repeated login attempts. It can run at the host, at a DNS-level service such as Cloudflare or Sucuri, or as a WordPress plugin such as Wordfence. One layer, configured properly, is the goal.
8. Monitoring for changes you did not make
File integrity monitoring compares your core files against the official versions and flags anything altered. Combined with alerts for new admin users, it catches a compromise early, before Google or a customer does.
Hardening settings worth applying
These are small configuration changes, usually done once:
- Disable the built-in file editor (the DISALLOW_FILE_EDIT setting in wp-config.php), so a compromised admin account cannot edit theme and plugin code from the dashboard.
- Force HTTPS across the whole site, including the admin area.
- Set correct file permissions, so the web server cannot write to files it has no reason to change.
- Block PHP execution in the uploads folder, where it has no legitimate reason to run.
- Disable XML-RPC if nothing on the site uses it (some apps and Jetpack features do; check first).
- Limit login attempts, at the firewall or with a plugin.
What is mostly security theatre
These get recommended often and do little against how sites are actually compromised.
| Measure | Why it adds little |
|---|---|
| Changing the database table prefix | Exploits that reach the database usually discover the prefix anyway |
| Hiding the WordPress version number | Bots test for vulnerable plugins directly rather than reading the version |
| Moving the login URL | Cuts log noise; does nothing about vulnerable plugins |
| Renaming the admin username | Two-factor authentication solves the same problem properly |
| Installing three security plugins | They conflict, slow the site and duplicate each other |
None of these are harmful in themselves. The problem is when they take the place of updates, two-factor authentication and backups.
Where plugin quality fits
A large share of WordPress security is decided when plugins are chosen. Before installing anything, check:
- When it was last updated, and whether it supports your WordPress version
- Active installs and the developer's track record
- Whether there are open, unpatched entries in a vulnerability database such as WPScan, Patchstack or Wordfence Intelligence
- Whether a single plugin is doing a job that a few lines of theme code could do
If you are commissioning custom plugins, WordPress plugin development security best practices covers what a developer should be doing in the code itself.
Security and personal data
If your site collects personal data — enquiry forms, accounts, orders — a compromise may also be a personal data breach under UK GDPR. If a breach is likely to put people's rights at risk, the ICO generally needs to be told within 72 hours of you becoming aware of it. The ICO's guidance on personal data breaches explains how to judge whether a report is needed. It is another reason to keep form submissions out of the WordPress database if you do not need them stored there.
A one-hour security pass for an existing site
If you have inherited a site, or simply never looked, this is a sensible first hour. Take a backup before you start.
- List the administrators. Users, filtered by Administrator. Downgrade or remove anyone who does not need it.
- Turn on two-factor authentication for every remaining administrator, starting with your own account.
- Open the plugins page. Delete anything deactivated. Note anything active that has not been updated by its developer in a year.
- Apply pending updates, ideally on staging first. If there is no staging, at least take a fresh backup and update one plugin at a time, checking the site between each.
- Check Site Health (Tools, then Site Health) for the PHP version and any critical warnings. PHP versions out of security support need upgrading via the host.
- Check where backups go. If they only live on the same server, set up off-site storage today.
- Check Search Console for any security issues or manual actions.
- Set up an uptime monitor and file change alerts so you hear about problems first.
That hour will not make a site invulnerable, but it closes the routes most automated attacks rely on.
Why security is a process, not a product
Security plugins and firewalls are sold as if installing one ends the matter. It does not. A firewall cannot protect a plugin that has a published flaw and no update applied; a scanner cannot help if nobody reads its alerts; a backup cannot save you if it has been failing silently for three months.
What keeps a site secure is somebody doing the routine — reading the alerts, applying the updates, reviewing the users — every month, including the months when nothing seems wrong. That is the real cost of security, and it is time rather than software.
A realistic WordPress security routine
| Frequency | Task |
|---|---|
| Continuous | Firewall, malware scanning, uptime and file change alerts |
| As released | Security updates for plugins, themes and core |
| Monthly | Routine updates on staging, review login and security logs |
| Quarterly | User and role review, plugin audit, restore test |
| Annually | Hosting and PHP version review, password rotation for shared logins |
If the worst has already happened, go straight to how to fix a hacked WordPress site. For the wider picture of keeping a site healthy, the website maintenance guide puts security alongside everything else. And if you would rather this ran without you having to think about it, security monitoring and updates are part of the website maintenance service.
Worked examples
Related services
Related reading
Maintenance & Security
Website Maintenance: The Complete Guide for Business Owners
What keeping a business website healthy actually involves, which jobs matter most, and how to decide who should do them.
Maintenance & Security
How to Fix a Hacked WordPress Site
A calm, ordered recovery plan for a compromised WordPress site — including the step most clean-ups miss, which is why so many sites get re-hacked.
Maintenance & Security
How to Update WordPress Safely (Core, Plugins, Themes)
Updates fix security holes and occasionally break sites. This is the routine that gets you the first without the second.
Maintenance & Security
Website Backups: What a Proper Backup Strategy Looks Like
Having backups and being able to recover are different things. Here is how to make sure you have the second.
