Best WordPress Security Checklist [Ultimate Guide]
If you want to secure your WordPress site, you will find a lot of advice online, some of which is good, and some outright damaging, albeit well-meaning.
When it comes to WordPress security, you need to be able to trust your sources and find information that is not only credible, but also feasible and applicable. In 2020 alone, malware attacks grew by over 150% and the numbers don’t seem to be slowing down anytime soon. Therefore, securing your WordPress site needs to be your number one priority.
The best way to secure your WordPress site is to install a security plugin and let it handle the heavy lifting. But even without one, you can still secure your website to a large degree by following the WordPress security checklist discussed below.
TL;DR: Secure your WordPress site with MalCare, and avoid regular security-related maintenance. WordPress security is a labyrinth of gaps that you need to patch. Refer to our WordPress security checklist to ensure that you do not miss out on anything crucial.
The easiest method to secure your WordPress site
As we said, the best way to secure your WordPress site is to use a security plugin, specifically, MalCare. MalCare not only takes care of the WordPress security checklist automatically, it does so without you having to worry about keeping a track of every little detail.
MalCare has several features that work together to keep your site secure. But its top three features ensure that your site remains malware-free—scanning, firewall, and cleanups. With MalCare, you can schedule automated scans on your WordPress site and get alerts if anything suspicious is detected. MalCare also protects your site with an intelligent firewall that keeps out most of the attacks. And most importantly, if your site were to get hacked—given that no site can be foolproof, MalCare cleans up your site within minutes with a single click of a button.
Another reason why you should opt for MalCare, is that with manual security measures, there is always a chance of human error. But errors in security can cause you more than just a few dollars. If hacks get worse, they can lead to data theft, website defacement, customer loss, and most importantly the loss of trust that your business suffers.
The Ultimate WordPress Security Checklist
There are so many elements to a WordPress site that keeping track of everything can become overwhelming. We have compiled a WordPress security checklist for you based on the frequency of time that you need to take care of the task.
For everyday security
Website security is a constant process and cannot be a one-time commitment. But there are ways in which you can automate daily tasks. These tasks ensure that your site is secured from any unpredicted issues or threats.
Scan your site
It is important to scan your site for malware every day. A website gets hacked every 38 seconds on the internet, and there is a good chance that your might be one of them. Scanning your site regularly ensures that you are the first one who knows of any threats or malware on your site and helps you take action before the attacker can cause any damage to your site.
If scanning your site every day manually seems tedious to you, you can opt for a security solution like MalCare, which allows you to schedule automated scans daily, so that you don’t have to worry about missing a scan or having to personally run them.
Backup your website
There are several reasons why you should backup your WordPress website, but the most important of them is security. If not detected in time, malware can cause havoc with your WordPress site and consequently lead to data loss or website defacement. Often, web hosts delete sites from their servers if they are infected, and unless you have an independent backup of your site, you will have to start from scratch.
It is important to backup high-value websites every day, so that nothing important is lost. This is especially true for WooCommerce sites which need real-time backups. A handy solution like BlogVault can make this process very easy. BlogVault allows you to schedule backups daily, or in real-time, depending on your requirements, and stores these backups on an external server so that even if your website server is hacked, the backups still remain secure.
For monthly security
Check activity log
Hacks and installation of malware, adware, or other kinds of malicious programs usually occur secretly. Often, the only visible trace can be found in your site’s activity log, a chronological record of activities performed and changes made. As a result, it’s a good idea to perform a monthly check of your site’s activity log to look for any inconsistencies or suspicious activity. It can help you trace a number of important details in case your site gets hacked, like what IP addresses were involved, and how it may have happened.
If yours is a high production site i.e. you publish content on a daily or weekly basis, checking the activity log once a month might get overwhelming because there are a lot of changes on the site. In which case, you can check the activity log once a week or once a fortnight.
WordPress doesn’t offer an activity log by default so you will have to rely on a plugin for it. Alternatively, MalCare gives you a detailed and easy-to-understand activity log along with complete WordPress security.
Update your website
Ideally, you should be updating your WordPress site as soon as new updates are released, but performing monthly updates works as well. By keeping to a monthly update schedule, you can be sure that your site is well protected, and any new vulnerabilities are patched.
Updates are often scary because they have been known to break sites. But if you use a plugin like BlogVault, you can test your updates on a staging site and merge the changes seamlessly with your live site.
Check Search Console
Adding your WordPress site to Google’s Search Console has a number of SEO-related benefits, but it can also help your site’s security. Google’s Search Console has a Security Issues tab that flags any malware it detects on your site, so checking it from time to time can help you detect malware.
If you scan your site with MalCare regularly, you will have already detected the malware on your site. But it is still a good practice to see if Google thinks there is any suspicious activity ongoing on your site.
Remove unused themes and plugins
Removing old and unused themes and plugins serves two purposes. The first is to speed up your site, as too many files can cause bloat and server slowdowns. The second is to make sure that your site cannot be attacked through them. Unused themes and plugins are often ignored and not updated, creating vulnerabilities that can be easily taken advantage of. So make sure to run a monthly check on all the themes and plugins you use and remove those that have served their purpose.
Note: Also check for any fake plugins on your site. Malware is often hidden as a plugin folder but fake plugins only have one or two files, can’t be located on the WordPress repository and have weird names like ‘azzz’ or ‘tiff’.
Update your credentials
Using the same credentials for too long or reusing them across multiple accounts is a major risk. To protect your WordPress site, update your passwords at least once a month. This ensures that any hacker who may have acquired your password cannot use it, and it also logs you out of your account on all devices. While slightly inconvenient, it ensures that you can control access to your website.
Check user roles and privileges
The user accounts on your WordPress site are as important as the admin account. If a hacker gets access to any account, they can infect your site, upgrade their role privileges, and even lock you out of your own site.
Make sure that every user on the site has only the necessary privileges, and old user accounts are deleted. Also check if any user privileges have been escalated without your authorization, it could be a sign of malware.
Block malicious IPs
Blocking or restricting malicious IPs can make life significantly easier for you. If you are getting hacked, you can trace the IP address it’s happening from, and simply block it. This stops anyone with that IP address from accessing your site. This method is used to combat hackers, stop bots or trolls, and keep unauthorized users out. If you use a firewall, it will automatically block malicious IPs for you.
You can also block an entire geographical area, if you are experiencing repeated attacks coming from the region.
Test your backups
If the worst should happen and your WordPress site goes down, you can rely on your backups to get it up and running again. But you need to make sure that your backups are safe as well. In case your backups have already been hacked, restoring them will be pointless. Similarly, you also need to test if they’re functional, or else you’ll be restoring a broken site. You can test your backups easily if you use BlogVault, and make sure that they are reliable.
Update WordPress salts
WordPress uses salts as part of its encryption process. A salt is a random string of characters that is added to a password before encryption. The resulting string is a hash, and that is what is stored in the database. That way, if a hacker is able to get the hashed passwords out of the database, AND decrypt them, they still don’t know what part of the password is actually the password and what is the salt. The only way they would know this is if they get access to the salts and security keys in the config file.
It is similar to how passwords are stored in browser cookies. The reason you can stay logged into any site is that the session information is stored in cookies. But if plaintext passwords were stored there, it would be dangerous. So WordPress stores the salted and hashed version instead. Having access to the salt doesn’t mean you can decrypt hashes, but it does reduce the level of security. Therefore, it is important to updates your WordPress salts periodically.
For long term security
SSL is a security protocol designed to encrypt any communication to and from your website server. This stops attackers from accessing, reading, or changing any information that is being transferred.
Usually, you secure your site with SSL when getting your domain or hosting plan. However, SSL certificates expire approximately every two years, and you need to ensure that it is renewed at the earliest. This is doubly important if users perform transactions on your website, as any security breach can lead to credit card details or bank account details getting leaked.
Check hosting plans
If you forget to renew your hosting plan on time, your WordPress account will be suspended. This can cause a number of issues. Your site traffic will take a hit, you’ll lose customers, and you might even wind up losing data. Checking your hosting services regularly also allows you to analyze your site traffic and server usage. Overly high server usage is a common symptom of a brute force attack, and catching such attacks earlier stands a better chance of stopping them. When you are alerted to a brute force attack early, you can act and secure your site before the hackers gain access to your site.
One-time measures for complete security
While WordPress security needs to be reviewed constantly, there are some measures that you can take once and not have to update constantly.
Invest in a strong firewall
A firewall protects your WordPress site by filtering out malicious traffic, and stopping most attacks before they can infect your website. There are several kinds of firewalls, like web application firewalls, network firewalls, or cloud-based firewalls. A strong web application firewall such as MalCare’s allows you to filter your website traffic, and block visitors by the number of login attempts or geographic location.
Implement HTTP Authentication
HTTP Authentication is a protocol that allows access to a web resource only to those who are meant to access it. HTTP authentication restricts access by asking for a username and password when a certain web page is requested. Now obviously, you cannot do this for your entire website, but implementing it for your admin dashboard or login page can significantly reduce the number of bot attacks.
Use Two-Factor Authentication
Two-factor authentication is a method that requires a user to present two separate keys to access an account. For example, if you are trying to access your email, usually you need to provide the username and password, but when you implement two-factor authentication, you will also have to provide a key that is created in real-time such as a one-time password or PIN. This lowers the number of login attempts and does not overwhelm your website server with login requests. It also protects your website against brute force attacks. You can use a plugin like 2FA to enable two-factor authentication for your site.
Limit login attempts
We’ve already talked about how login attempts need to be limited. WordPress, by default, allows unlimited login attempts, and this offers a ripe opportunity for hackers to try accessing your WordPress account with brute force attacks. The easiest way to limit login attempts is to use a security plugin like MalCare, or you can add custom code to your function.php file.
Similar to WP REST API, XML-RPC is a WordPress feature that allows you to publish content remotely. It is useful if you use the WordPress app or need to enable trackbacks and pingbacks but otherwise, it can be exploited by hackers to gain access to your site through brute force attacks. The easiest solution here is to disable it with a plugin or manually.
Disable Directory Browsing
When your server doesn’t find an index file for a website, it shows an index of the contents of the directory. If a hacker can access this information, they can check if you have any files that are vulnerable on your website. This opens your website to major security risks.
In order to avoid this, you can disable directory browsing by adding a line of code to your .htaccess file. Follow these steps to disable directory browsing on your WordPress site.
- Download the .htaccess file on your site through an FTP client.
- Open the file and add the following code to the bottom of the file:
Options All -Indexes
- Now save the file, and reupload it. You will have to delete the original file from your site first.
Restrict File Permissions
The file permissions on your site determine who can access what parts of your site and who can modify them. Usually, your web host configures all of this information for you. But it is still a good practice to understand file permissions and ensure that they are configured optimally.
If you want to understand how file permissions work and how you can optimize them for your site security, go through our guide which is detailed and beginner-friendly.
Hide wp-config file
The wp-config file on your website is full of sensitive information such as passwords, keys, and salts. If hackers gain access to the file, it will be like rolling a red carpet to the website for them. The wp-config file is located in the public_html folder by default, so hackers know where to look for it. But you can change the location of the file, and it still functions just as well, while hiding sensitive information effectively.
Disabling PHP Execution in Specific Folders
Hackers can upload PHP files on your site disguised as core WordPress files and gain access to your site. Some folders like wp-uploads shouldn’t have PHP files at all. So what do you do in this case?
You can disable PHP execution in these folders so that even if hackers manage to get in these files through any backdoors, they cannot gain access to your site.
Why Website Security is Important
WordPress is a secure platform, but it is very popular and attracts all sorts of attention. Some of which are nefarious. In order to make sure that hackers can’t gain access to your site, you need to ensure that your website security is up to date, or else you could face dire consequences like:
- Loss of customers
- Data loss
- Leaked private credentials
- Revenue loss
- Legal issues
- Hit to the brand reputation
- Loss of trust
WordPress security is not a mystery. If you take a few steps to secure your site, you will be able to fend off attacks and malware, and avoid any damages. We hope that this WordPress security checklist helps you tighten your security measures.
If you want a hassle-free solution that does not compromise your security, MalCare is the only option. With automated scans, an advanced firewall, and one-click cleanups, MalCare is a 360 degree solution that protects your site.
How do I secure my WordPress site?
The easiest method to secure your WordPress site is to install a security plugin like MalCare. MalCare scans your website everyday to ensure that your website is safe, and protects your website with its advanced firewall. It also offers a one-click cleanup in case there is a hack.
Does WordPress have security issues?
WordPress is a secure platform used by over half of the websites on the internet. However, it is because of this popularity that it attracts the attention of hackers. You can secure your WordPress site with a security plugin to ensure that your site is safe from these elements.
How do I secure my WordPress site without plugins?
If you wish to secure your site without using plugins, you need to perform several security checks regularly. You will have to perform site scans, take backups, look for suspicious behavior in the site’s activity log, and manually clean up any malware that you may detect. The list of ways hackers can get into your site is endless, and the only way you can secure your site without having to constantly be on alert is to use a security plugin.
Preeti is a WordPress enthusiast, and enjoys sharing their experience with fellow enthusiasts. On the MalCare blog, Preeti distils the wisdom gained from building plugins to solve security issues that admins face.