Jetpack 101

How to Conduct a WordPress Security Audit in 17 Steps

WordPress is one of the most popular content management systems (CMS) in the world, powering over 40 percent of all websites on the internet. But, like with any type of software, it’s not impervious to attacks. Therefore, you’ll want to take the necessary steps and precautions to protect your website.

Conducting a WordPress security audit can help you identify vulnerabilities, prevent potential attacks, and ensure that your site remains safe. You don’t need to hire a security expert to do all of these things — there are plenty of plugins that can automate some of the work for you. 

In this guide, we’ll take a closer look at why you should carry out regular WordPress security audits. Then, we’ll walk you through a 17-step process to effectively audit your site’s security. So, let’s dive right in!

Why conduct a WordPress security audit?

You might be wondering if conducting a WordPress security audit is really necessary, especially if you have a very small business or online shop. 

Well, here are some reasons why this procedure is important, regardless of the type of website you run. 

To identify vulnerabilities and malware

Any software that you have on your site may have vulnerabilities. This applies to plugins and themes as well as the WordPress Core software.

When developers identify a security issue in a plugin or theme, they release an update to fix it. But sometimes, it may take a while for a vulnerability to become known, and by then, hackers would have had time to exploit it. 

The primary goal of a WordPress security audit is to identify and address vulnerabilities before they can be exploited by attackers. For instance, you might discover an outdated plugin on your website, or a recent theme update that has some security flaws. 

But vulnerabilities can also include weak passwords, improperly configured settings, or even malware that has already infiltrated your site. By conducting a thorough audit, you can uncover these issues and take corrective action to fortify your site’s defenses.

To safeguard against future threats

Cybersecurity threats are constantly evolving, and a security measure that was effective last year might not be sufficient today. For instance, advancements in AI technology enable hackers to use more sophisticated software for carrying out brute force attacks

Regular security audits will help you stay ahead of emerging threats. This proactive approach can prevent costly breaches and downtime, keeping your site running smoothly and securely.

To protect user data and brand reputation

A security breach can have devastating consequences for your business. Hackers may steal all of your data or even delete it. 

This is a huge problem if your site contains sensitive user information like credit card numbers and passwords. Data breaches can land you in legal hot water, which, in addition to the financial burden, will damage your brand’s reputation and destroy customer trust. 

A WordPress security audit helps ensure that your site complies with data protection regulations and that your users’ information is secure.

A step-by-step guide to conducting a WordPress security audit

Now that you understand the importance of a WordPress security audit, let’s dive into the 17 steps you can take to conduct a thorough audit of your site.

As you’ll see, most of these measures are quite easy to implement. Plus, there are plugins you can use to protect your website. 

1. Make sure WordPress is up-to-date

The first step in any WordPress security audit is to ensure that your WordPress installation is up-to-date. WordPress regularly releases updates that include security patches, bug fixes, and new features. 

Running an outdated version of WordPress can leave your site vulnerable to known security exploits. 

To check if your WordPress installation is up-to-date, navigate to Dashboard → Updates in the admin panel.

Updates screen on a WordPress website's admin/dashboard showing no updates required.

If an update is available, you’ll see a notification. Before you update WordPress, you’ll want to make sure your site is backed up. This way, if there’s a compatibility issue with plugins or themes resulting from the update, you can immediately restore your site to its previous state.

We’ll show you how to perform backups later in the post.

2. Update outdated themes and plugins

Outdated themes and plugins are among the most common sources of vulnerabilities in WordPress sites. Developers frequently release updates to patch security flaws and improve functionality. Therefore, run these updates as soon as they’re available. 

If you go to Dashboard → Updates, you can see a list of all themes and plugins that need updating:

Plugin section of update screen on a WordPress website's admin/dashboard showing a needed update for Jetpack Boost.

If you have a lot of plugins on your site, check for updates daily. Alternatively, you can enable auto-updates.

Simply go to the Plugins or Themes page, and click on Enable auto-updates next to the plugin or theme.

Plugin list screen on a WordPress website's admin/dashboard showing Jetpack and Jetpack Boost.

Due to possible compatibility issues, you may prefer to run updates manually. It’s also a good idea to try them on a staging site first. Then, if everything goes well, you can run the updates on the live site. 

3. Remove unused themes and plugins

Unused themes and plugins can pose a security risk even if they’re inactive. Hackers can exploit vulnerabilities in inactive themes and plugins to gain unauthorized access to your site. 

The risk is greater if you have themes or plugins that haven’t been updated in a long time, or are no longer maintained by the developers. 

It’s a good practice to delete any themes or plugins that you no longer need. Just navigate to Appearance →Themes and select the Delete option for the theme you want to remove. For plugins, go to Plugins → Installed Plugins. Find the one you’re looking for and choose Deactivate → Delete

4. Check if a security plugin is installed

A reliable security plugin is your first line of defense against cyber threats. Ideally, choose a plugin that includes a range of features, including malware scanning, firewall protection, and login security. 

If you haven’t already installed a security plugin, now is the time to do so. And, if you do have a security plugin installed, it might be a good idea to review its features and switch to a more powerful solution if needed. 

Jetpack Security is a comprehensive solution to protect your site. Features include a web application firewall, spam protection, automated malware scanning, real-time backups, brute force attack protection, downtime monitoring, and more.

Jetpack Security plugin page hero section on jetpack.com with title, paragraph, and "Secure you site" call to action.

We’ll take a closer look at these features over the next few steps.

5. Scan for malware and vulnerabilities

Another important step in your WordPress security audit is to scan your website for malware and vulnerabilities. For this, you’ll need a plugin that automates the process.

When you purchase the Jetpack Security plan, you’ll get access to Jetpack Scan (which can also be accessed via the dedicated Jetpack Protect plugin).

Jetpack Scan plugin page hero section on jetpack.com with title, paragraph, and "Get Jetpack Scan" call to action.

Jetpack scans for known WordPress vulnerabilities in your plugins, themes, and other site files. You’ll get an instant email notification if it detects malware or vulnerabilities on your site, along with one-click fixes to help you resolve most issues. 

Jetpack scans your website every day, and the process is automated. You can also initiate a scan manually. 

6. Audit user roles and permissions

User roles and permissions define what specific people can and cannot do on your WordPress site. For example, a user with the administrator role will have total control over the site. Ideally, there should only be one administrator per site.

Improperly-configured roles can lead to security risks, especially if users have more privileges than necessary. And, if someone hacks into that user’s account, they’ll be able to wreak havoc on the site.

If you run an online store or a multi-author blog, you likely have many users on your site, including customers, shop managers, authors, and subscribers. But, for a variety of reasons, some may have been assigned the wrong role and therefore have more permissions than they should.

To review these roles, navigate to Users → All Users. Here, you can check that each user has the appropriate level of access. You may also want to consider removing or downgrading any users who no longer need access to certain features.

7. Remove inactive user accounts

Inactive user accounts can be a significant security risk, especially if their passwords haven’t been updated in a long time. Hackers often target inactive accounts because they’re less likely to have strong passwords. 

You’ll want to regularly review and remove any inactive user accounts on your site. This can be done in the Users section of your WordPress dashboard.

You might want to email inactive users to let them know that their accounts will be deleted if they don’t take action within a certain time. You could also require them to change their passwords. 

8. Review password strength and policies

Weak passwords are a leading cause of security breaches. If you have several users on your site, then the risks are greater. 

You’ll want to ensure that everyone is using strong passwords. Ideally, they should contain a mix of letters, numbers, and special characters. Passwords that are at least eight characters long are harder to crack.

You can enforce strong passwords by installing a plugin like WP Password Policy Manager. This tool also lets you set up auto password resets and expiry dates so that users are regularly updating their passwords. 

Additionally, consider implementing two-factor authentication (2FA). This adds an extra layer of security to user logins and further protects your site against brute force attacks.

Brute force attacks involve trying a large number of username and password combinations to gain access to a website. Hackers use sophisticated software to generate these login credentials. 

But if they do get the right credentials, 2FA will stop them from logging into the website. This is because they will need to provide a code that was sent to the user’s mobile phone or inbox, which the hacker won’t have access to. 

When you use Jetpack, you can set up WordPress.com two-factor authentication.

WordPress.com login settings in Jetpack plug with all options toggled 'on'.

Users will be asked to provide their phone numbers to verify their identity. They can do this via SMS or an authenticator app like Duo, Authy, or Google Authenticator.

9. Assess database security measures

Your WordPress database contains all the content, settings, and user data for your site, making it a desirable target for attackers. Therefore, you’ll need to make sure that it’s fully protected.

You can start by checking that the database password is strong and unique. Then, consider changing the default database prefix (wp_) to something custom. This will make it more difficult for attackers to launch SQL injection attacks.

To change the prefix, you’ll need to access your wp-config.php file. You can do this via the File Manager in your hosting account, or by using a Secure File Transfer Protocol (SFTP) client. 

Once you’re inside your site’s directory, open the wp-config.php file and look for the line that reads $table_prefix = “wp_”;

You can change wp_ to any value you want (or you could just add a number or letter to it). Remember to save your changes when you’re ready.

Now, you’ll need to access phpMyAdmin through the cPanel in your hosting account. Here, you’ll want to change the prefix of all default WordPress tables. 

Doing this manually, one table at a time, will be time-consuming. So instead, click on the SQL tab at the top and enter the following SQL query:

RENAME table `wp_commentmeta` TO `wp_a123z_commentmeta`;

RENAME table `wp_comments` TO `wp_a123z_comments`;

RENAME table `wp_links` TO `wp_a123z_links`;

RENAME table `wp_options` TO `wp_a123z_options`;

RENAME table `wp_postmeta` TO `wp_a123z_postmeta`;

RENAME table `wp_posts` TO `wp_a123z_posts`;

RENAME table `wp_terms` TO `wp_a123z_terms`;

RENAME table `wp_termmeta` TO `wp_a123z_termmeta`;

RENAME table `wp_term_relationships` TO `wp_a123z_term_relationships`;

RENAME table `wp_term_taxonomy` TO `wp_a123z_term_taxonomy`;

RENAME table `wp_usermeta` TO `wp_a123z_usermeta`;

RENAME table `wp_users` TO `wp_a123z_users`;

Remember to change the prefix to the one you set in the wp-config.php file. In the example above, we changed the prefix to wp_a123z.

10. Review login page security measures

The WordPress login page is a common target for brute force attacks, so it’s definitely worth spending some time to secure your WordPress login. As mentioned earlier, hackers use specialized software to generate thousands of login credentials to try to access a website. 

You can also change the default WordPress login URL, which is usually /wp-admin and /wp-login.php. This way, hackers won’t be able to find your login page. You can find detailed instructions on how to do this in our article — WordPress Login URL: How to Find, Change, and Hide It.

Just remember to bookmark your new login URL for easy access — you won’t be able to log into your site via the old URL once you’ve changed it. 

11. Ensure the use of HTTPS protocol

The HTTPS protocol encrypts the data transmitted between your visitors’ browsers and your web server. This way, it makes it very difficult for attackers to intercept sensitive information.

If your site is not already using HTTPS, you’ll need to obtain a secure sockets layer (SSL) certificate and install it on your site. 

You can check whether your site is using HTTPS by viewing the site information next to the URL in the browser.

Webpage located at Jetpack.com/features/security with security options view in web browser showing that the connection is secure.

Here, you should see a notification that the website is secure. If a site doesn’t use HTTPS or has an invalid SSL certificate, the browser will display a warning to visitors.

Most reputable hosting providers include a free SSL certificate in their plans. If this isn’t offered by your web host, you can get a free SSL certificate through Let’s Encrypt.

Let's Encrypt webpage hero section with title, paragraph, as well as "Get Started" and "Sponsor" calls to action.

Note that some certificates are only valid for one or two years. Therefore, you’ll need to remember to renew them before they expire. 

Security

We guard your site. You run your business.

Jetpack Security provides easy‑to‑use, comprehensive WordPress site security, including real‑time backups, a web application firewall, malware scanning, and spam protection.

Secure your site

12. Make sure a WAF is installed

A web application firewall (WAF) is an essential security tool that filters out malicious traffic before it reaches your site. When configured properly, a firewall can block a wide range of attacks, including SQL injections, cross-site scripting (XSS), and brute force attacks.

Jetpack Security includes a WAF as part of its feature set, which you can simply enable from the WordPress dashboard.

Jetpack Security plugin settings with Web Application Firewall options selected.

This firewall monitors every request to your site and blocks suspicious ones. Plus, the Jetpack team is constantly updating the firewall’s rules to stay ahead of new threats.

You also have the option to block specific IP addresses from your site.

13. Check if a CDN is installed

A content delivery network (CDN) is a collection of servers distributed across multiple locations. Typically, a CDN is used to boost site speed. This is because it serves a site’s content from the server that’s closest to the visitor, thus reducing latency.

But a CDN can also protect your site against distributed denial-of-service (DDoS) attacks. These attacks occur when a malicious actor makes a large volume of requests to a site. If a website is unable to handle this spike in traffic, it will likely crash and become unavailable. 

CDNs are equipped for traffic spikes. Since they redistribute traffic across multiple servers, your site will not go down if it gets loads of requests at the same time. 

Some hosting providers offer a CDN in their plans. Jetpack also includes an image CDN that automatically resizes images based on the visitor’s device and takes a significant load off your servers. 

14. Assess current backup and recovery solutions

Backups do not prevent attacks. But they offer peace of mind should your site experience a security threat. In the event of data loss, you can restore your site to its most recent version.  

Therefore, the next step in this WordPress security audit is to review your backup solution and implement a new one if necessary. 

Ideally, you should have real-time backups so everything is constantly saved. If you have a site that rarely changes, a daily backup solution may be fine. 

It’s also important that your backups are stored off site — meaning, in a place other than your server or hosting account. Otherwise, if your server goes down or is targeted by hackers, you can lose your website as well as its backups. 

You’ll also want to ensure that you can easily restore your content if the need arises. This will help minimize downtime. 

Since backups are so important, they need to be automated so you always have a recent copy at your disposal. If things get busy, you could easily forget to back up your content. 

Jetpack VaultPress Backup works in real time. This means that every time you make a change to your website, it’s automatically saved.

Jetpack VaultPress Backup plugin webpage hero with title, paragraph, and "Get Vaultpress Backup" page.

Jetpack also stores your backups off site, in secure cloud-based locations. It also offers one-click restores that are also accessible via an app, so if your site does go down, you can have it up and running again without delay — even if you’re not at your computer or can’t access your site at all.

15. Evaluate your hosting provider’s security features

Your hosting provider plays a critical role in the security of your WordPress site. If their server environment is not secure, it can have a negative impact on any website that’s hosted on it.

During your audit, evaluate the security tools offered by your hosting provider. These may include features like server-side firewalls, DDoS protection, and malware scanning. 

If you log into your hosting account, you should be able to see what tools are available. You could always reach out to your hosting provider and ask them if they have any prevention measures in place. 

If you find that your hosting plan lacks several security essentials, you might consider switching to a more secure host. Jetpack has a list of trusted hosting providers that take site security seriously. You may also want to think about managed WordPress hosting providers, which often take care of many security measures on your behalf.

16. Document issues found during the audit

As you conduct your security audit, document any issues or vulnerabilities you discover. This information will serve as a reference point for addressing problems and can help you track your progress over time. 

Include details like the severity of each issue, the steps needed to resolve it, and any tools or plugins used in the process. This will help you ensure that nothing is overlooked and that all vulnerabilities are properly addressed.

Plus, if you decide to hire a WordPress expert to secure your site, they’ll have a good idea of what needs to be done, thanks to your findings. This way, you can avoid any delays in implementing the necessary measures.

17. Create a roadmap for addressing security issues

Once you’ve identified and documented the security issues on your site, the next and final step is to create a roadmap for resolving them. 

Prioritize issues based on their severity and the potential impact on your site (as noted in the previous step). Problems like outdated software or malware infections should be addressed immediately, while less severe issues can be tackled at a later date.

Having a clear roadmap will help you systematically improve your site’s security, starting with the most critical issues. 

Frequently asked questions

In this post, we covered all the security essentials for your WordPress website. But you might still have some questions about some of the measures in the audit, or the threats that WordPress sites face. 

Let’s answer some of the most common questions. 

What is a WordPress security audit?

A WordPress security audit is a comprehensive review of your site’s security measures. It’s designed to help you identify vulnerabilities and problems on your site, and take the necessary steps to mitigate potential threats. 

An audit should encompass all aspects of your WordPress site, including software updates, user permissions, database security, login passwords, and more. The goal is to ensure that your site is as secure as possible and to protect it from cyberattacks.

How often should I conduct a WordPress security audit?

The frequency of your security audits will depend on the size and complexity of your site. You’ll want to consider how often you make changes to your content.

It’s generally recommended to conduct a security audit at least once every quarter. Of course, if you have a largely static website, and you’re the sole user with access to the backend, then an annual or bi-annual audit should be enough. 

Some of the steps listed in this WordPress security audit should be done more frequently. For instance, every time you install a new theme or plugin, or publish a new post, you should make a backup of your site. 

Similarly, you’ll want to check your website for updates on a daily or weekly basis, rather than waiting until the next security audit.

What are the most common vulnerabilities in WordPress sites?

Some of the most common vulnerabilities in WordPress sites include:

  • Outdated software. Running outdated versions of WordPress, themes, or plugins can leave your site vulnerable to known exploits.
  • Weak passwords. Weak or easily guessable passwords are a common entry point for attackers.
  • Unsecured login pages. The default WordPress login page is a frequent target for brute force attacks.
  • Poorly configured user roles. Assigning excessive permissions to users can increase the risk of accidental or malicious changes.
  • Unprotected databases. Databases with weak passwords or default prefixes are vulnerable to SQL injection attacks.

You can read our full guide on WordPress security issues and vulnerabilities to learn more about these problems and how to fix them. 

What tools are recommended for a WordPress security audit?

There are several tools and plugins that you can use for your WordPress security audit. But ideally, you’ll opt for an all-in-one solution like Jetpack Security. This way, you won’t need to install and configure multiple plugins to protect your site.  

Jetpack includes multiple security features, including a malware and security scanner. It also performs real-time cloud backups of your site, with one-click restores. Other features include a web application firewall, spam protection, and more.

Are there automated tools that can strengthen my WordPress site’s security?

Yes! Jetpack Security offers tools to detect and solve a variety of the most common issues. It includes automated malware scanning, firewall protection, and brute force attack protection. It continuously monitors your site for potential threats and can take automatic action to mitigate them. You’ll also get automated backups, performed in real time. 

How can I monitor user activity on my WordPress site?

Monitoring user activity is an important part of maintaining your site’s security. By keeping track of what users are doing on your site, you can identify any suspicious behavior and take action if necessary. 

Of course, you can’t be watching your site all the time. You’ll need a tool that records user activity for you. 

Jetpack offers an activity log that records every action taken on your site by users. It provides detailed information on each event, as well as a timestamp.

This way, if your site encounters an error or security issue, you can refer to the activity log and look for the user action that could have triggered it. 

How can I determine if my WordPress site has been hacked?

There are several signs that your WordPress site may have been hacked. These include:

  • Unfamiliar or unauthorized content on your site
  • Unexplained increases in traffic, especially from unusual sources
  • A noticeable slowdown in your site’s performance without any changes to your server or content
  • The appearance of new, unauthorized user accounts in your admin panel
  • Warnings from search engines indicating that your site may be compromised

Of course, there could be other culprits behind these issues. For instance, another administrator may have added a user without your knowledge. Or, they may have installed a heavily-coded plugin that has slowed down your site. 

If you’re the sole administrator, and no one else has access to your site’s backend, then the issues listed above may be a greater cause for concern. 

If you suspect that your site has been hacked, you’ll want to take immediate action. You can follow our guide on what to do if your WordPress site is hacked.

How do I fix a hacked WordPress site?

If your WordPress site has been hacked, it’s important to act quickly to minimize damage. 

The first step is to identify the source of the breach. Jetpack’s activity log can help you with this.

Once the culprit has been identified, you should remove any malicious code, update all passwords, and ensure that your software is up-to-date. If a user is behind the breach, you’ll want to delete their account and possibly blocklist their IP address.

Check out this detailed guide on how to clean a hacked WordPress site.

What steps can I take after a security audit to maintain ongoing security?

After completing a security audit, it’s important to implement ongoing security practices to keep your site secure. These practices include some of the steps covered in this guide:

  • Keep WordPress, themes, and plugins up to date
  • Use activity logs to monitor for suspicious behavior
  • Implement policies that require strong, unique passwords
  • Ensure that your site is backed up regularly, and that backups are stored off site
  • Use two-factor authentication to add an extra layer of security to user logins
  • Schedule regular security audits to identify and address new vulnerabilities

By following these steps, you can maintain a high level of security for your WordPress site and protect it from potential threats.

Jetpack Security: Real-time WordPress security scans and backups

Jetpack Security offers a comprehensive suite of tools to help you secure your WordPress site. These include real-time malware scanning, real-time backups, and brute force attack protection. Most of these processes are automated, making it easier to keep your site safe. 

You’ll also get a web application firewall and comment and form spam protection. Plus, Jetpack’s activity log will help you identify any actions or events on your site that triggered an error or led to a security breach. 

Are you ready to boost your site’s security? Get started with Jetpack Security today!  

This entry was posted in Security. Bookmark the permalink.
Security

Jen Swisher profile

Jen Swisher

Jen is a Customer Experience Specialist for Jetpack. She has been working with WordPress and Jetpack for over a decade. Before starting at Automattic, Jen helped small businesses, local non-profits, and Fortune 50 companies create engaging web experiences for their customers. She is passionate about teaching others how to create on the web without fear.

Security

We guard your site. You run your business.

Jetpack Security provides easy‑to‑use, comprehensive WordPress site security, including real‑time backups, a web application firewall, malware scanning, and spam protection.

Secure your site

Have a question?

Comments are closed for this article, but we're still here to help! Visit the support forum and we'll be happy to answer any questions.

View support forum