How to Add Two-Factor Authentication to WordPress (Best Plugin)

It’s a scary world out there, and lots of people would love to get their hands on your precious WordPress login credentials.

iThemes The Best WordPress Security Plugin to Secure & Protect WordPress

That’s why, according to Wordfence’s survey of people who knew how hackers got into their sites, brute force attacks and password issues accounted for about ~20% of the hacked sites.

Two-factor authentication is one way to absolutely lock down your login page. This is the same security mechanism used by banks and other security-conscious organizations, and I’m going to show you how to add WordPress two-factor authentication functionality to your WordPress site for free.

How Does WordPress Two-Factor Authentication Work?

You’ve probably already encountered two-factor authentication in your life, so I won’t go too deep here.

Basically, two-factor authentication adds an extra layer of security to your login process by requiring users to enter an extra code generated by text or a smartphone app when they go to log in.

The idea is that logging in requires both something you know (your password) as well as something you physically hold in your possession (typically a phone – either by text or app, though you can also use hardware keys).

So, after you implement the WordPress two-factor authentication tutorial that I’ll lay out in this post, here’s how your WordPress login process will work:

First, you’ll go to your regular login page and log in like you usually would by entering your username and password:

Normal login

However, after you enter your username and password, you aren’t into the WordPress admin dashboard quite yet.

Instead, the next screen will prompt you to enter a code (you have a few different options for how/where this code is generated). You’ll only be able to access your WordPress dashboard after entering this code:

WordPress two-factor authentication code

If you enter an incorrect code, it will boot you back to the initial log in screen and you’ll need to repeat the process:

Failed code

Simple, right? Here’s how to set up WordPress two-factor authentication at your site.

The Best WordPress Two-Factor Authentication Plugin

While there are several quality WordPress two-factor authentication plugins, I like the creatively named Two Factor Authentication plugin, which is available for free at WordPress.org.

Here’s why I like it. It…

  • Comes from the same developers of the popular UpdraftPlus backup plugin, so it’s not a fly-by-night operation.
  • Supports TOTP + HOTP protocols, which lets you use smartphone apps like Google Authenticator, Authy, etc. This is more secure than text message while also being the most accessible method because pretty much everyone has a smartphone nowadays.
  • Lets you enable two-factor on a user role or individual user basis. With the premium version, you can even force certain types of users to use two-factor authentication.
  • Lets you set up trusted devices, so that you only need to enter a two-factor code if you try to log in from a new device. This is a little more convenient. This is a premium feature, though.

One thing to note is that this plugin does not support FIDO/Universal 2nd Factor (U2F). This is the protocol used by physical hardware security keys like YubiKey or Google Titan.

If you specifically want to use FIDO, another good option to check out is the free Two-Factor WordPress plugin, also available at WordPress.org.

How to Add Two-Factor Authentication to WordPress

To get started, install and activate the free Two Factor Authentication plugin that I detailed above.

Then, here’s how to go about setting it up…

1. Set Up Sitewide Basics

To get started, go to Settings → Two Factor Authentication. Here, you can choose which user roles have the option to use two-factor authentication.

With the free version of the plugin, it’s just that – an option. That is, enabling it for a user role does not force them to use two-factor, it only enables the two-factor settings for them. If you want to force certain user roles to use two-factor, you’ll need the premium version of the plugin:

WordPress two-factor authentication global settings

Further down, you can choose whether to require two-factor for XMLRPC requests. Requiring it is more secure, but it might also break access to the app using XMLRPC because most of them do not support two-factor.

2. Get Two-Factor Code for Your Account

Once you’ve set up the sitewide settings, go to the new Two Factor Auth area in your WordPress dashboard to configure two-factor authentication for your own WordPress account.

Here, you’ll see a QR code, as well as a private key. Keep this page handy because you’ll need it in the next step:

WordPress two-factor authentication qr code

3. Download Smartphone App and Scan QR Code

Now, you’ll need to hop over to your smartphone and download an app. You can use any app that supports the TOTP protocol. Good options are:

  • Google Authenticator app
  • Authy
  • Duo

Personally, I use Google Authenticator as it comes from Google and gets the job done.

If you use Google Authenticator, all you need to do is click the plus icon in the top-right corner and select Scan barcode. Then, scan the barcode in your WordPress dashboard (the one that you saw in Step 2).

Once you scan the barcode, you should see a new option in the app for your site’s domain name, along with a six-digit code.

4. Activate Two-Factor Authentication

To finish things out, make sure that the six-digit code you see in your smartphone app matches the Current one-time password that you see in your WordPress dashboard. This code will change every ~15 seconds or so, so make sure you’re looking at the most recent version.

If they match, go ahead and Enable two-factor authentication in your WordPress dashboard and save your changes:

WordPress two-factor authentication enable for user

Now, to test things, you can log out of your WordPress dashboard and then try to log in again.

Once you enter your username and password, you should be prompted to also enter your two-factor code:

WordPress two-factor authentication code

With the free version of the plugin, each user at your site will need to manually complete steps 2-4 to activate two-factor authentication for their accounts.

Again, with the premium version, you can force people to activate two-factor authentication, and also get access to other helpful features.

What If I Lose My Phone and Lock Myself Out of WordPress?

As long as you have access to your WordPress site’s server via FTP or cPanel File Manager, it’s impossible to lock yourself out of WordPress with two-factor authentication.

If you lose the ability to access your two-factor code, you can connect to your WordPress server and rename the folder for the Two Factor Authentication plugin. This will deactivate the plugin and let you log in again. Our guide on being locked out of WordPress has more details.

This is also something important to remember:

You need to keep your hosting/FTP credentials locked down as well – otherwise people can bypass your WordPress two-factor authentication setup (or just generally attack your site in lots of other malicious ways once they have access to your server).

In addition to this manual method, the premium version of the plugin also lets you download one-time use backup codes that you (or other users) can use in case of an emergency.

Set Up WordPress Two-Factor Authentication Today!

With WordPress two-factor authentication, you can rest easy knowing that your WordPress login page is safe and secure.

Have any questions about how to set things up? Ask away in the comments and we’ll try to help!

Colin Newcomer

Colin Newcomer

Colin Newcomer is a freelance writer and long-time Internet marketer. He specializes in digital marketing, WordPress and B2B writing. He lives a life of danger, riding a scooter through the chaos of Hanoi. You can also follow his travel blog.

Related Articles

Coupons

1 thought on “How to Add Two-Factor Authentication to WordPress (Best Plugin)”

  1. Hi Colin

    Thanks for the valuable info. Security is a major concern for me as I’ve had 2 websites hacked with malware in the past year. What hackers are doing is they inject code into your files and make your money pages redirect to a page that looks exactly the same but has their PayPal buttons. Really sad that people are going through this and have to take all these extra measures.

    I’m looking for more ways to make it even harder for them. 2 factor auth might be a good additional messure. I’ll check out ithemes. I just want to make it does not affect site speed as I’m trying to reduce it as much as I can to decrease bounce rates.

    Appreciate your advice.

    Mozie

Comments are closed.

learn wordpress wplift icon

Learn The Inner Workings Of WordPress,

Even If You Don’t Know How to Code...

Join Our 30,000+ WordPress Aficionados, From Newbies To Experts, And Power-Up. Your WordPress Site With The Best Plugins, Techniques and Tricks.