WordPress Security: A Critical Issue for Every Business
WordPress powers over 43% of all websites worldwide, making it the most widely used CMS but also the most attractive target for attackers. According to the Sucuri 2025 report, 96.2% of infected CMS sites analysed by the company ran on WordPress. This does not mean WordPress is inherently insecure: it means that, given its dominance, it is the most rewarding target for attackers.
The good news is that the vast majority of attacks exploit known and preventable vulnerabilities: unpatched plugins, weak passwords, misconfigured settings, and a lack of basic protective measures. With the right precautions, a WordPress site can be as robust as any other platform.
This comprehensive guide covers the most common threats, the best security plugins, a practical hardening checklist, and an action plan should the worst already have happened. Whether you manage a business blog, a corporate site, or an e-commerce store, this guide will give you the tools to protect your digital investment.
The Most Common WordPress Vulnerabilities
To protect yourself effectively, you first need to understand how attacks happen. Here are the most exploited vulnerabilities in 2025–2026:
Vulnerable Plugins and Themes
Plugins represent the number-one attack vector, responsible for approximately 56% of WordPress breaches. The reason is straightforward: WordPress has an ecosystem of over 60,000 plugins, many developed by individual programmers without security audits. When a vulnerability is discovered in a popular plugin, attackers can exploit it across millions of sites before administrators apply the update. In 2025, critical vulnerabilities in plugins such as WPForms, Elementor, and LiteSpeed Cache exposed millions of sites.
Weak Credentials and Brute Force
Brute-force attacks attempt thousands of username/password combinations per minute against the login page. Common usernames such as “admin” and weak passwords make these attacks trivial. According to a Wordfence analysis, WordPress sites receive an average of 4,800 brute-force attempts per day. Using “admin” as a username is still common on a significant proportion of WordPress sites worldwide.
Cross-Site Scripting (XSS)
XSS vulnerabilities allow an attacker to inject malicious JavaScript code into site pages, which is then executed in visitors’ browsers. This can lead to session cookie theft, redirects to fraudulent sites, or malware installation. XSS vulnerabilities are the most common type after outdated plugins.
SQL Injection
An SQL injection attack exploits unsanitised inputs to inject SQL commands into the WordPress database. The attacker can read, modify, or delete data from the database, including user credentials. Plugins that handle forms, searches, or custom filters without adequate input sanitisation are the most common vectors.
Malware and Backdoors
Once a site is compromised, attackers install backdoors (hidden access points) that allow them to re-enter even after an initial clean-up. Backdoors can be hidden in seemingly legitimate theme files, fake plugins, or even the database. 60% of hacked WordPress sites are re-compromised within six months if the clean-up was not thorough.
Security Plugins: The Best Options for WordPress
A dedicated security plugin is the first line of defence. Here is a detailed comparison of the leading solutions:
Wordfence Security
Price: Free (premium from $119/year per site)
Active installs: 4+ million
Key features: Application-level WAF firewall, malware scanner, brute-force protection, integrated 2FA, real-time traffic monitoring, country IP blocking. The free version is already very comprehensive; premium adds real-time firewall rules (the free version has a 30-day delay), IP reputation scanning, and priority support.
Pros: Intuitive interface, highly effective firewall, excellent malware scanner.
Cons: Can consume significant server resources on shared hosting; application-level WAF is less effective than a DNS-level WAF.
Sucuri Security
Price: Free plugin, Firewall from $199/year, Platform from $299/year
Key features: Remote malware scanner, blacklist monitoring, automatic hardening, activity audit log. Premium service includes a cloud-based DNS-level WAF, integrated CDN, and malware removal service with guaranteed response within 12 hours (Business plan: 4 hours).
Pros: DNS-level firewall is superior from a performance standpoint (no burden on the server), clean-up service included in premium plans, integrated CDN.
Cons: The free plugin is more limited than free Wordfence; premium pricing is higher.
iThemes Security (now SolidWP Security)
Price: Free (Pro from $99/year)
Active installs: 1+ million
Key features: One-click WordPress hardening, file change detection, brute-force protection, 2FA, security dashboard, scheduled database backups (Pro version). Does not include a true WAF firewall, so it pairs well with an external firewall such as Cloudflare.
Pros: Lightweight, simple to configure, good automatic hardening.
Cons: Lacks a WAF firewall and advanced malware scanner in the free version.
Which Should You Choose?
For most business sites, we recommend free Wordfence + free Cloudflare as a base combination. For e-commerce or sites handling sensitive data, Sucuri Platform or Wordfence Premium + Cloudflare Pro offer enterprise-grade protection at accessible costs.
WordPress Hardening Checklist: 20 Concrete Actions
Hardening is the process of reducing the attack surface. Here are the actions to implement, ordered by priority:
Critical Priority
- Keep WordPress, themes, and plugins updated: Maintain everything at the latest version. Enable automatic minor WordPress updates (active by default). For plugins, consider automatic updates for trusted ones (Wordfence, Rank Math) and manual updates for critical plugins (WooCommerce, Elementor) that require testing before updating.
- Use strong, unique passwords: Every WordPress account must have a password of at least 16 characters, mixing uppercase, lowercase, numbers, and symbols. Use a password manager (Bitwarden — free; 1Password — from €3/month). Never reuse the same password across multiple services.
- Enable two-factor authentication (2FA): Require 2FA for all accounts with Administrator or Editor roles. Wordfence and iThemes Security include 2FA. Alternatively, the free WP 2FA plugin supports authenticator apps (Google Authenticator, Authy) and backup codes.
- Install an SSL certificate: HTTPS encrypts communications between browser and server, protecting logins, form data, and transactions. Most hosting providers offer free Let’s Encrypt certificates. After activation, force a redirect from HTTP to HTTPS.
- Delete the “admin” user: If an account with the username “admin” exists, create a new administrator account with a different username, transfer the content, and delete the “admin” account.
High Priority
- Limit login attempts: Block IPs after five failed login attempts for 30 minutes, and after 15 attempts for 24 hours. Wordfence includes this functionality; alternatively, the free Limit Login Attempts Reloaded plugin is lightweight and effective.
- Change the login URL: The default /wp-login.php URL is the primary target of automated attacks. Plugins such as WPS Hide Login (free) allow you to change it to a custom URL (e.g. /company-access). This single measure reduces brute-force attempts by up to 90%.
- Configure file permissions: Correct permissions for WordPress are: 755 for directories, 644 for files, 600 for wp-config.php. More permissive settings (777) allow any process on the server — including malware — to modify files.
- Protect wp-config.php: This file contains database credentials and security keys. In addition to 600 permissions, move it one level above the site root (WordPress will find it automatically) and add an .htaccess rule to block direct browser access.
- Disable file editing from the dashboard: WordPress allows editing of theme and plugin files from the built-in editor by default. If an attacker gains admin access, they can inject malicious code. Add
define('DISALLOW_FILE_EDIT', true);to wp-config.php.
Medium Priority
- Disable XML-RPC: The XML-RPC protocol is a vector for amplified brute-force and DDoS attacks. If you do not use the WordPress mobile app or Jetpack, disable it. Wordfence blocks it automatically; alternatively, add
add_filter('xmlrpc_enabled', '__return_false');to functions.php. - Restrict the REST API for unauthenticated users: The WordPress REST API exposes information such as the user list (/wp-json/wp/v2/users). Limit REST API access to authenticated users only, unless it is required for frontend functionality (headless WordPress, apps).
- Hide the WordPress version: The WordPress version visible in page source code helps attackers identify known vulnerabilities. Security plugins hide it automatically; alternatively, add
remove_action('wp_head', 'wp_generator');to functions.php. - Protect the wp-includes directory: Block direct access to PHP files in the wp-includes directory via .htaccess rules. This prevents the direct execution of internal scripts that should never be called via URL.
- Disable PHP execution in the uploads directory: The /wp-content/uploads/ directory is writable (to allow media uploads) and is therefore a target for uploading malicious PHP files. Add an .htaccess file to the uploads directory with a directive that blocks PHP execution.
Advanced Priority
- Implement HTTP security headers: Headers such as Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Strict-Transport-Security, and Referrer-Policy add protection against XSS, clickjacking, and other attacks. Configure them via .htaccess, Nginx config, or the Headers Security Advanced & HSTS WP plugin.
- Use WordPress Salt Keys: The Authentication Keys and Salts in wp-config.php encrypt session cookies. If you suspect a compromise, regenerate the keys from api.wordpress.org/secret-key to invalidate all active sessions.
- Configure a DNS-level Web Application Firewall (WAF): A cloud WAF such as Cloudflare or Sucuri Firewall intercepts malicious traffic before it reaches your server, protecting against DDoS, malicious bots, SQL injection, and XSS. The free Cloudflare plan offers basic protection; the Pro plan (€20/month) adds advanced WAF rules.
- Implement a Content Security Policy (CSP): A strict CSP defines which external resources (scripts, styles, images) the browser may load, blocking the injection of malicious scripts. Configuration requires thorough testing to avoid blocking legitimate resources (Google Analytics, fonts, embeds).
- Monitor file integrity (File Integrity Monitoring): An FIM system verifies the integrity of WordPress core files, themes, and plugins, alerting on unauthorised changes. Wordfence and Sucuri include this functionality. It is one of the most effective methods for detecting early compromise.
Backup Strategy: The Last Line of Defence
No security measure is 100% infallible. A robust backup system is your insurance: if everything goes wrong, you can restore the site in a few hours rather than days or weeks.
The 3-2-1 Backup Rule
The golden rule: 3 copies of data, on 2 different media, with 1 offsite (away from the server). Never store backups on the same server as the site: if the server is compromised, so are the backups.
Recommended Backup Plugins
- UpdraftPlus (free/premium from $70/year): The most popular backup plugin with 3+ million installs. Automated scheduled backups to cloud storage (Google Drive, Dropbox, Amazon S3, etc.), one-click restore, incremental backups in the premium version. The free version is sufficient for most sites.
- BlogVault (from $89/year): Real-time incremental backups (every change), integrated staging site, host-independent restore. Ideal for e-commerce where every order counts.
- Duplicator (free/Pro from $49.50/year): Excellent for migrations too. Scheduled full backups with cloud storage.
Backup Frequency
| Site Type | Recommended Frequency | Retention |
|---|---|---|
| Blog / brochure site | Weekly | Last 4 backups |
| Site with frequent updates | Daily | Last 14 backups |
| E-commerce | Daily + real-time DB | Last 30 backups |
| High-traffic / mission-critical | Real-time (incremental) | Last 60+ backups |
Testing Backups
A backup you cannot restore is useless. Test your restore process at least once per quarter on a staging environment. Verify the site works fully after restoration: pages, functionality, media, e-commerce. Many managed hosts (Kinsta, WP Engine) offer one-click staging environments where you can test restores.
Managing Updates: Balancing Security and Stability
Updates are the cornerstone of security, but blindly updating everything can cause incompatibilities and breakage. Here is a balanced approach:
Automatic Updates
- WordPress core (minor releases): Automatic. Minor releases (e.g. 6.5.1 → 6.5.2) contain only security fixes and bug patches and rarely cause problems.
- WordPress core (major releases): Manual, 1–2 weeks after release. Major releases (e.g. 6.5 → 6.6) can introduce significant changes. Wait for the community to flag any issues.
- Security plugins: Automatic. Wordfence, Sucuri, and similar must always be up to date.
- Critical plugins (WooCommerce, Elementor, page builders): Manual, after backup and staging testing. An update that breaks the layout or checkout is worse than a brief delay.
- Themes: Manual, with visual verification after updating.
Staging Environment
For business sites, a staging environment (an identical copy of the site for testing) is essential. It allows you to test updates, new plugins, and changes without risking the live site. Many managed hosts offer it built-in. Alternatively, plugins such as WP Staging (free) create a local copy for testing.
WordPress Database Security
The MySQL database is the heart of WordPress: it holds content, users, settings, and plugin data. Protecting it is critical.
Database Protection Measures
- Change the table prefix: The default
wp_prefix is well known to attackers. Changing it to something unique (e.g.x7k2_) complicates SQL injection attacks. For new sites, set it during installation. For existing sites, use the Brozzme DB Prefix plugin (with extreme caution and a prior backup). - Use a dedicated database user: Do not use the root database user. Create a dedicated MySQL user with privileges limited to the WordPress database only.
- Limit database privileges: For normal operation, WordPress requires SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, and DROP. Do not grant additional privileges such as FILE, PROCESS, or GRANT.
- Disable remote database access: The database should only be accessible from localhost (127.0.0.1), not from external IPs. This is the default configuration for most hosting providers, but verify it applies to yours.
GDPR and Security: Legal Obligations for European Businesses
The General Data Protection Regulation (GDPR) requires European businesses to protect users’ personal data with appropriate security measures. A data breach can result in fines of up to 4% of global annual turnover or €20 million.
Practical obligations for WordPress sites:
- Data breach notification: In the event of a breach involving personal data, you must notify the relevant supervisory authority within 72 hours and affected users without undue delay.
- Records of processing activities: Document what data you collect, how you protect it, and who has access to it.
- Data minimisation: Collect only strictly necessary data. Do not store contact form data indefinitely.
- Encryption: HTTPS is the minimum. For particularly sensitive data, consider encryption at the database level.
What to Do If Your Site Has Been Hacked
If your WordPress site has been compromised, act quickly and methodically. Panic is the enemy: every hasty action can worsen the situation or destroy evidence useful for tracing the source of the attack.
10-Step Action Plan
- Do not immediately delete anything: Preserve evidence for forensic analysis. If possible, create a complete copy of the compromised site before any intervention.
- Put the site in maintenance mode: This protects visitors from malware and malicious redirects while you work on clean-up.
- Change all passwords: WordPress (all admin users), database, FTP/SFTP, hosting panel. Do this from a device other than the one used to manage the site.
- Regenerate Salt Keys in wp-config.php to invalidate all active sessions.
- Scan the site with Wordfence or Sucuri to identify infected files, backdoors, and core modifications.
- Check WordPress users: Verify no unauthorised administrator accounts have been created.
- Compare core files against the originals (Wordfence does this automatically) and replace any that have been modified.
- Clean up or restore from backup: If you have a recent clean backup (and are certain it pre-dates the compromise), restoring is often faster and safer than manual clean-up.
- Update everything: WordPress, all plugins, all themes. If an outdated plugin was the attack vector, updating it closes the door.
- Request a Google review: If Google has flagged the site as “This site may have been compromised”, request a review in Search Console after clean-up.
When to Call a Professional
If the attack is complex (multiple backdoors, defacement, server-level malicious redirects), a DIY clean-up risks being incomplete. Professional malware removal services such as Sucuri (from $299/year with clean-up included), Wordfence Care ($490/year), or the support of a specialist web agency guarantee a thorough clean-up. The cost of a professional intervention (€300–800) is infinitely less than the reputational and business damage of a site that remains compromised for weeks.
Continuous Security Monitoring
Security is not a one-off action but an ongoing process. Implement a monitoring system that alerts you promptly to problems:
- Uptime monitoring: Services such as UptimeRobot (free for 50 monitors) or StatusCake check that the site is online every 5 minutes and alert you via email, SMS, or Slack on downtime.
- Scheduled malware scans: Configure Wordfence to run automated daily scans. The plugin will email you if it finds suspicious files or unauthorised changes.
- Blacklist monitoring: Periodically verify your domain is not listed on Google Safe Browsing, Norton Safe Web, McAfee SiteAdvisor, or email anti-spam blacklists. Sucuri offers a free blacklist monitoring service.
- Audit log: Plugins such as WP Activity Log (free) record every action taken in the WordPress dashboard: logins, post edits, plugin installations, settings changes. Essential for identifying suspicious activity and for GDPR compliance.
- Google Search Console: Monitor the “Security & Manual Actions” section for Google alerts about malware, hacked content, or penalties.
Frequently Asked Questions
Is WordPress really secure for a business site?
Yes, when correctly configured and maintained. The WordPress core is developed by a dedicated security team and receives rapid patches for discovered vulnerabilities. The majority of security issues stem from outdated third-party plugins, weak passwords, and misconfiguration. Sites such as the White House (whitehouse.gov), BBC America, and Microsoft News run on WordPress. With the measures described in this guide, a WordPress site can reach a security level comparable to any enterprise platform.
How much does it cost to secure a WordPress site?
With free tools (Wordfence free, Cloudflare free, UpdraftPlus free, WPS Hide Login, manual hardening practices), the cost can be zero apart from configuration time (2–4 hours). A complete professional setup with premium tools (Wordfence Premium + Cloudflare Pro + UpdraftPlus Premium + WAF configuration) costs approximately €250–400/year. A full monitoring and maintenance service from an agency such as UreTech starts at €50–150/month and includes updates, backups, 24/7 monitoring, and incident response.
Should I really change the login URL from /wp-admin?
Yes — it is one of the simplest and most effective measures available. The /wp-login.php and /wp-admin URLs are targeted by millions of automated bots. Changing the URL is not mere “security through obscurity”: it dramatically reduces the volume of brute-force attempts, lightening the server load and reducing the “noise” in security logs — making it far easier to identify genuine targeted attacks.
How often should I update WordPress and plugins?
Security patches (minor releases) should be applied within 24–48 hours of release. For major releases, wait 1–2 weeks and test on staging. Plugins should be updated within a week of new version releases. Configure email notifications so you are alerted when new updates are available. The golden rule: never delay security updates, but always test potentially disruptive updates on staging first.
Do I need a firewall if my hosting includes DDoS protection?
Yes. Hosting DDoS protection guards against volumetric attacks (traffic flooding), but not against application-level attacks such as SQL injection, XSS, and targeted brute force. A WAF (Web Application Firewall) analyses the content of requests and blocks malicious ones. They are two complementary layers of protection, not alternatives.
Are my hosting backups sufficient?
No — you should not rely exclusively on hosting backups. Reasons: hosting backups are often only daily (not more frequent), retention is limited (7–14 days), and in the event of a problem with the hosting itself (provider failure, data-centre error), you lose both the site and the backups. Always maintain a copy of your backups on an external cloud service (Google Drive, Amazon S3, Dropbox) using UpdraftPlus or an equivalent plugin.
Conclusion
WordPress security is not complicated, but it requires consistent attention and a systematic approach. The measures described in this guide — from choosing the right security plugin to server hardening, from backup strategy to update management — create a multi-layered defence that makes your site an unattractive target for attackers.
Remember: the cost of prevention is always less than the cost of recovery after an attack. A hacked site costs on average €3,000–10,000 in clean-up, restoration, lost business, and reputational damage.
If you prefer to entrust your site’s security to professionals, the UreTech team offers hardening services, continuous monitoring, and WordPress maintenance plans that include updates, backups, and emergency response. Contact us for a free security audit of your site.