Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Properly Move WordPress from HTTP to HTTPS (Beginner’s Guide)

Are you looking to move WordPress from HTTP to HTTPS and install an SSL certificate on your website?

We have received a lot of requests on this topic because Google announced back in July 2018 that the Chrome browser will mark all websites without SSL as insecure.

In this article, we will show you how to properly move WordPress from HTTP to HTTPs by adding a SSL certificate.

Moving WordPress from HTTP to HTTPS / SSL

Don’t worry, if you have no idea what SSL or HTTPS is. We’re going to explain that as well.

What is HTTPS?

HTTPS or Secure HTTP is an encryption method that secures the connection between users’ browser and your server. This makes it harder for hackers to eavesdrop on the connection.

Every day we share our personal information with different websites whether it’s making a purchase or simply logging in.

In order to protect the data transfer, a secure connection needs to be created.

That’s when SSL and HTTPS come in.

Each site is issued a unique SSL certificate for identification purposes. If a server is pretending to be on HTTPS, and its certificate doesn’t match, then most modern browsers will warn the user from connecting to the website.

Insecure website warning

Now you are probably wondering, why do I need to move my WordPress site from HTTP to HTTPS, especially if it’s a simple blog or small business website that doesn’t collect any payments.

Why do you need HTTPS and SSL?

In 2018, Google announced a plan to improve overall web security by encouraging website owners to make the switch from HTTP to HTTPS. As part of this plan, their popular Chrome web browser would mark all websites without a SSL certificate as “Not Secure.”

Chrome HTTP Not Secure

Google also said that websites with SSL will also see SEO benefits and higher rankings. Since then, a large number of websites have switched from HTTP to HTTPS.

After the announcement, Google started rolling out the “Not Secure” warning in Chrome. For example, if someone visits a HTTP website using the incognito window, it will be marked as Not Secure. If someone visits a HTTP website on regular mode and tries to fill out a contact form or another form, then the website will be marked as insecure.

When your readers and customers see this notice, it gives them a bad impression for your business.

This is why all websites need to move form HTTP to HTTPS and install SSL immediately.

Not to mention, if you want to accept payments online on your eCommerce website, then you need SSL.

Most payment companies like Stripe, PayPal Pro,, etc., will require you to have a secure connection before accepting payments.

We use SSL for our websites including WPBeginner, OptinMonster, WPForms, and MonsterInsights.

Requirements for using HTTPS/SSL on a WordPress Site

The requirements for using SSL in WordPress is not very high. All you need to do is purchase an SSL certificate, and you might already have it for free.

The best WordPress hosting companies are offering free SSL certificates for all their users:

For more details, see our guide on how to get a free SSL certificate for your WordPress website.

If your hosting company does not offer a free SSL certificate, then you’ll need to purchase an SSL certificate.

We recommend using because they offer the best SSL deal for both regular and wildcard SSL certificates.

By purchasing a SSL certificate from them, you also get a TrustLogo site seal for your website, and each SSL certificate comes with a minimum of $10,000 security warranty.

Once you have purchased an SSL certificate, you will need to ask your hosting provider to install it for you.

Setting up WordPress to Use SSL and HTTPs

After you have enabled SSL certificate on your domain name, you will need to set up WordPress to use SSL and HTTPs protocols on your website.

We will show you two methods to do that, and you can choose one that best fits your need.

Video Tutorial

Subscribe to WPBeginner

If you’d prefer written instructions, just keep reading

Method 1: Setup SSL/HTTPS in WordPress Using a Plugin

This method is easier and is recommended for beginners.

First, you need to install and activate the Really Simple SSL plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, you need to visit Settings » SSL page. The plugin will automatically detect your SSL certificate, and it will set up your WordPress site to use HTTPs.

SSL enabled on a WordPress website

The plugin will take care of everything including the mixed content errors. Here’s what the plugin does behind the scenes:

  • Check SSL certificate
  • Set WordPress to use https in URLs
  • Set up redirects from HTTP to HTTPs
  • Look for URLs in your content still loading from insecure HTTP sources and attempt to fix them.

Note: The plugin attempts to fix mixed content errors by using output buffering technique. It can have a negative performance impact because it’s replacing content on the site as the page is being loaded. This impact is only seen on first-page load, and it should be minimal if you are using a caching plugin.

While the plugin says you can keep SSL and safely deactivate the plugin, it’s not 100% true. You will have to leave the plugin active at all times because deactivating the plugin will bring back mixed content errors.

Method 2: Setup SSL/HTTPS in WordPress Manually

This method requires you to troubleshoot issues manually and edit WordPress files. However this is a permanent and more performance optimized solution. This is what we’re using on WPBeginner.

If you find this method difficult, then you can hire a WordPress developer or use the first method instead.

As part of this method, you may need to edit WordPress theme and code files. If you haven’t done this before, then see our guide on how to copy and paste code snippets in WordPress.

First, you need to visit Settings » General page. From here you need to update your WordPress and site URL address fields by replacing http with https.

Update WordPress URLs

Don’t forget to click on the ‘Save changes’ button to store your settings.

Once the settings are saved, WordPress will log you out, and you will be asked to re-login.

Next, you need to set up WordPress redirects from HTTP to HTTPS by adding the following code to your .htaccess file:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

If you are on nginx servers (most users are not), then you would need to add the following code to redirect from HTTP to HTTPS in your configuration file:

server {
listen 80;
return 301$request_uri;

Don’t forget to replace with your own domain name.

By following these steps, you will avoid the WordPress HTTPS not working error because WordPress will now load your entire website using https.

If you want to force SSL and HTTPS on your WordPress admin area or login pages, then you need to configure SSL in the wp-config.php file.

Simply add the following code above the “That’s all, stop editing!” line in your wp-config.php file:

define('FORCE_SSL_ADMIN', true);

This line allows WordPress to force SSL / HTTPs in WordPress admin area. It also works on WordPress multisite networks.

Once you do this, your website is now fully setup to use SSL / HTTPS, but you will still encounter mixed content errors.

These errors are caused by sources (images, scripts, or stylesheets) that are still loading using the insecure HTTP protocol in the URLs. If that is the case, then you will not be able to see a secure padlock icon in your website’s address bar.

Not secure

Many modern browsers will automatically block unsafe scripts and resources. You may see a padlock icon but with a notification about it in your browser’s address bar.

Insecure content blocked

You can find out which content is served through insecure protocol by using the Inspect tool. The mixed content error will be displayed as a warning in the console with details for each mixed content item.

Mixed content errors displayed in browser console

You will notice that most URLs are images, iframes, and image galleries while some are scripts and stylesheets loaded by your WordPress plugins and themes.

Fixing Mixed Content in WordPress Database

Majority of the incorrect URLs will be images, files, embeds, and other data stored in your WordPress database. Let’s fix them first.

All what you need to do is find all mentions of your old website URL in the database that started with http and replace it with your new website URL that starts with https.

You can easily do this by installing and activating the Better Search Replace plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, you need to visit Tools » Better Search Replace page. Under the ‘Search’ field, you need to add your website URL with http. After that, add your website URL with https under the ‘Replace’ field.

Search and replace

Below that, you will see all your WordPress database tables. You need to select all of them to run a thorough check.

Lastly, you need to uncheck the box next to ‘Run as dry run?’ option, and then click on ‘Run Search/Replace’ button.

The plugin will now search your WordPress database for URLs starting with http and will replace them with secure https URLs. It may take a while depending on your WordPress database size.

Fixing Mixed Content Errors in WordPress Theme

Another common culprit causing mixed content error is your WordPress theme. Any decent WordPress theme following WordPress coding standards will not cause this issue.

First, you will need to use your browser’s Inspect tool to find the resources and where they are loading from.

Using inspect tool to find mixed content error

After that, you will need to find them in your WordPress theme and replace them with https. This will be a little difficult for most beginners, as you will not be able to see which theme files contain these URLs.

Fixing Mixed Content Errors Caused by Plugins

Some mixed content resources will be loaded by WordPress plugins. Any WordPress plugin following WordPress coding standards will not cause mixed content errors.

We don’t recommend editing WordPress plugin files. Instead, you need to reach out to the plugin author and let them know. If they do not respond or are unable to fix it, then you need to find a suitable alternate.

Note: If for some reason, you’re still encountering mixed content error, then we recommend using the Really Simple SSL plugin temporarily, so your users are not impacted while you fix the issue on a staging website or hire a developer.

Submit Your HTTPS Site to Google Search Console

Search engines like Google consider https and http as two different websites. This means you will need to let Google know that your website has moved to avoid any SEO issues.

To do that, you just need to go to your Google Search Console account and click on ‘Add a Property’ button.

Add https site as a new property in Google Search Console

This will bring up a popup where you need to add your website’s new https address.

Add your https URL

After that, Google will ask you to verify ownership of your website. There are several ways to do that, select any method and you will instructions to verify your site.

Verify your website

Once your site is verified, Google will start showing your search console reports here.

You also need to make sure that both the https and http versions are added in your Search Console.

This tells Google that you want the https version of your website to be treated as the primary version. Combined with the 301 redirects that you setup earlier, Google will transfer your search rankings to the https version of your website, and you will most likely see improvements in your search rankings.

We know that we did when switched our websites from http to https.

We hope this article helped you add HTTPS and SSL in WordPress. You may also want to see our ultimate WordPress security guide with step by step instructions to keep your WordPress site secure or our expert picks of the best analytics solutions for WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

397 CommentsLeave a Reply

  1. Thank you for this informative article. I am looking into switching my blog to SSL. The web host provider is Bluehost and I am using the free Cloudflare CDN Service. I have one question. Will Cloudflare’s free service support Bluehost’s Free SSL certificate?

  2. I followed these instructions and now it has screwed my site, nothing works. I now get the ‘White screen of death’ my host won’t help as they say it is a coding error and I am left in limbo.

  3. Hi,

    Thank for you for such an detailed article on a very hot topic.

    I followed manual steps but got mixed content error. And seems because of this I’m not able to see WP login page. I tried clearing cache on dreamhost but message displayed is “Unable to connect to CloudFlare”.

    I’m using Dreamhost and Cloudflare is enabled.

    Could you please help or need more details to fix the issue? Do you also offer paid service to secure another site of my mine?

    Thank You.

  4. Hi,

    Just followed through the manual procedure without problems – Thanks!

    However, I’ve noticed that If I type the old http:// address into the browser for any page except for the homepage then the old http:// page loads.

    Then when I click a link to another page it goes to a https:// page is this normal?

    Does it indicate a problem with the redirect?

    • Hi Richard,

      No it is not. Most likely the redirects in your .htaccess file are not working. Try copying the code and adding it to your .htaccess file again and see if this resolves the issue.


      • Hi,

        Fixed It thanks. I’d originally inserted the Code at the end of the htaccess file. Moved It Up to before the WP section and everthing now works correctly.

        Thanks for your help and for the concise guide. I’d been putting this off for a while.

  5. With regard to the last step in Google Console, on the “Change of Address” page, I am getting a “no available sites” message, but I have double-checked that my http and https versions are verified. When I click on “add it now” I’m just getting verification information. What do I do?

  6. I just installed a LetsEncrypt cert on my website, and I’m getting a bunch of insecure content errors that shouldn’t be happening. Although the theme is using get_template_directory_uri() to load its styles and scripts, those styles and scripts are still being loaded via http, not https. Even if I hard-code the https url in the function to load the styles/scripts, they’re loaded via http.

    Do you have any idea what’s happening here? As far as I can tell, everything is set up properly, but it’s not working.

  7. Hi,
    I have purchase SSL and configured by my hosting. It shows https in url. when I do https under General settings in wordpress admin area, my website goes down, only homepage and after it I am not able to login the admin area too. I added the code in htaccess file too with https under settings.

    Could you help me with this?

  8. I use Bluehost for web hosting and just set up my wordpress site with their free SSL certificate through the Bluehost page. There was a page on the Bluehost site to activate it for my WordPress site. Now, it appears that my site is already set up with the https. Do I still need to install the plug in, or is mine already taken care of? Thanks so much for the help!

  9. Hi,
    I was founding this issue and you just uploaded this article. Thanks alot.
    Can you please help? I did not change my primary site on search console. I added a new property with https and then created a set for all of them. Will it work fine for ranking or I need to follow your instructions only???

  10. I don’t understand why a redirect is still necessary once the hosting service installs the certificate for the site. I’m assuming that a WordPress site initially configured with the HTTPS protocol does not require a redirect. Is it a matter of registering a domain with or without the proper protocol?

  11. The problem of buying an SSL certificate and having it installed is that you will need to also purchase a fixed IP address from your Web Host. This is an additional yearly cost on top of the yearly cost of the SSL Certificate. For each website you create you have to buy an SSL certificate and a fixed IP address. This will add up tremendously the more websites you have.

    Because of this, I prefer creating websites on hosts that Automatically give you a Free SSL certificate. These days, the ones that don’t simply want to gouge you for money.

  12. Can the internal configuration of SSL and HTTPS help to reduce the SSL loading time during a request? When I tested my website with SSL enabled and it took about 455 ms to load “the SSL separately”, but when I disabled the SSL total loading time decreased to 1.3s. So two question I want to ask you guys,

    1. Can I go without an SSL just because I have a Simple blog, no commercial stuff, and web payments?

    2. Can the configuration of SSL internally with the help of .htaccess file reduce the loading time of SSL?

    • Hi Rupam,

      1. You can but soon Google will start warning users about websites not using HTTPs, this would affect your website’s traffic.

      2. Yes, it can. You can also try to avoid plugins to fix mixed content issues. We have noticed that often such plugins increase page load time significantly.


  13. Could someone help please, I followed the direction of the first one all my pages are secure except for one on the menu. Whenever I clicked on it as a customer it says your connection to this website isn’t encrypted.

    • Not sure if you got this fixed yet, but I was having the same issue. I found that using the SSL Insecure Content Fixer plugin corrected it. Worth a shot!

  14. Hi wpbeginner,
    My website did not have ssl certificate. I changed the http to https now it is showing ssl not enabled. What do I do?

    • If you are working in WordPress then install the plugin named “really simple SSL” to force up your SSL. I hope you will get the idea. Thanks for reading.

  15. Thank you!! Finally I have my SSL certificate recognised by wordpress and I couldn’t have done it without the info provided here. So a BIG thanks for helping me out!

  16. I have added the code into the .htaccess file but when I refresh my page in WordPress it comes up with a “Your connection is not private” message. I have to click on “Back to safety” and the icon does not appear in the website url. Please help me to fix this. Thanks

  17. I followed the first step, adding the https: to the website name and immediately the webpage redirected me to a sit not secure error prompt and now I can’t access my dashboard at all to finish the process or do any bug fixes. How do I reverse the first step?

  18. I have used your site for a resource for a long time. Therefore, I was confident when I followed the directions in this article–to the letter. I used it on a client’s site. Which seemed to work perfectly. Then my own site. However, now I am locked out of both sites. I have a backup of them using the WP all-in-one migration plugin, but no way to access the dashboard.
    One site says too many redirects. Even when going to an incognito window or a browser where I’ve recently deleted all history, it still says delete all cookies. The other site says can’t connect to server.
    Any suggestions for me? I am pretty screwed at this point.

  19. Does my backlinks gets lost after change. Kindly some one clears it to me.
    As when I checked my website through semrush https is showing 0 backlinks but I actually have 1000+ backlinks.
    Please someone guide.

  20. This was really helpful. Though after doing it, it showed 404 in most pages but when I updated the paramalink…it was solved

  21. Please, I am looking for some ways that I can do to secure the WordPress website from hackers and becoming a secure site. Suggest please

    • Let me answer that. WPBeginner no need to use SSL because they don’t have a login/signup page and ecommerce.

      • But, hasn’t Google now announced that having an SSL certificate can boost your rankings in SERPS?

  22. after adding ‘s’ to the WordPress URL and site URL redirection is working properly…I removed the ‘s’ and put redirection code in my .htaccess then browser saying error too much redirection.

    If i go for first option that will be fine or not ?….how can in know my redirection working properly ?

  23. Hi,

    Is it necessary to include the code in htaccess? I am using wordpress and checked with whynopadluck and manually changed the link of the images with non https link. After that, it shows all items are secure. Do I still need to update htaccess? Doesn’t WordPress redirect http to https by itself?

  24. Cloudflare SSL or Let’s Encrypt which one is the best. I had to switch to Cloudflare SSL

    • If you are using cloudflare than you can easily switch your site to HTTPS. If you are using free plan then their are no option available for use custom SSL. If you install Let’s Encrypt SSL on origin server, Even after that browser will show Cloudflare SSL.

  25. Very helpful article. However, I am wondering if I would still be required to update the .htaccess file (per your example) if I am using the plugin: “Really Simple SSL” that you recommended in a newer article. (Also, would this plugin take care of changing the WP General Settings?)


  26. We completed step 1 and now we cannot login to our wordpress to do step 2 or 3. And the only page that works on our site it the home page. All other pages try to pull up as https and gives an error. We have to manually take the s out so it’s http before the page will show.

    We’ve undone the first step and still cannot login. We are dead in the water here.

  27. Worked great. For people with self-signed certs yeah, you will get an error. But if you get that warning, that means you followed this tutorial correctly! All you have to do now is resolve your SSL signing issue and you’re set.

  28. Hi After making the above changes I am not able to open my site, I am not even able to login to my wp- admin page to revert https to http please help.

  29. (GoDaddy)
    define(‘FORCE_SSL_ADMIN’, true);
    after adding this line then reload the website, I got error that “your connection is not private”. I am using self-signed certificate. Please help how to setup https using self-signed certificate.

    • Do a view source on your page. See anything that starts with http:// like css, js, or image files? Those will have to be changed in your content or template.

    • Do not use self-signed-certificate. You can choose Let’s Encrypt SSL, Free Comodo Certificate or Cloudflare SSL. These all are free of cost.

  30. I know that WPBeginner is great, but you exceeded my expectations and totally saved my week today with this how-to guide! Love you guys!

  31. Sir i have stuck in a problem i hope you could help , i have a hosting which is worth $300 in godaddy i have added one website and bought an ssl for that …again after some days i have added secondary site to same hosting . i have been told that i cannot buy additional ssl to this hosting and suggested me to buy one unified ssl which costs around 350$ .Please dont mind me saying this but i have already spent alot and cant afford that ..what other options do i have

    • Hello Bala Krishna,

      Please try to resolve it with your hosting provider through live chat or phone support. If you have purchased a hosting plan that doesn’t meet your needs, then you can ask them for a refund. Most hosting companies have some sort of refund policy which is usually valid during the first 30 days of signup.


  32. Hi, my host offers the Let’s encrypt so I have gone that route, as this is all new I have created a new site to practice on which i set up the lets encrypt shared ssl. Now I am trying to move it from http to https I did install the simple ssl plugin but it did not find my ssl certificate, not sure if it is set to work with shared lets encrypt so, i found another plugin called wp encrypt which is designed specifically for the shared lets encrypt but i am not able to get it to connect the way it instructs. I have checked my outgoing connections and they are clear. Would appreciate any help in working this process out, so I can get started on the shift. Thanks

  33. Followed the instructions and basically bricked my website.

    between 404 errors, database connection errors and more and more errors… that 301 redirect causes way too many problems.

  34. Thanks for the article, which is interesting and informative. There’s one problem it doesn’t mention, and no-one else has commented so I wonder if I’m missing something.

    I bought a third-party SSL certificate from the hosting company and switched to HTTPS. After making the .htaccess changes, everything worked fine, except…

    None of the pages get a green padlock. Instead, there’s an info link that says the pages are ‘partially secure’.

    I checked with the hosting company, and they said I had to change every internal link to HTTPS, and the URL of every image likewise. If I don’t do that, then no green padlock.

    Manually making all those changes would take me months even if I worked 8 days per week, 25 hours per day. If I’d known that at the outset, I would not have made the change to SSL/HTTPS in the first place.

    Is what I’m being told correct? If so, is there any (even semi-)automated way of updating all the links in the site?

      • Many thanks for that, I’ll remember it for next time (I have a personal blog I’m thinking about moving from .com to .org). In this case I already bit the bullet. It turns out I was exaggerating but it did take me several hours to go through 200 posts and 70 pages manually changing all the internal links and the image references. At the end of all that, there was still no green padlock, but I found the last few instances using a useful (free) tool (which may or may not be a useful adjunct to your plugin). I now have another question, but I’ll post it separately for clarity. Thanks again for responding.

    • Hi Brian,
      There is another ultimate solution for that problem. Try to make Backup of MySQL database of your site manually by the procedure:
      Almost any hosting provider has an option such as “download MySQL database” or “dump MySQL database”. You will download .sql file. After that open that .sql file in text editor such notepad++ and try the find-replace function to find “http” and replace it by “https”. It will take a second.

  35. hii,

    I does the changes as above in my site but now it is getting problem ” Error establishing a database connection”

    so i’ve no idea where to do changes .

    pls help. thanks in advance.

  36. What to do if I want to revert back from https to http?

    There aren’t many guides on this one. Please help.

  37. A quick update – there is a free plugin called Really Simple SSL that you can download, activate, and it works great!

    Many thanks to the author.

  38. I tried this and had a problem. I switched from a basic html/htm site to wordpress so my .htaccess has a lot of 301 redirects. No I’ve bought an SSL In the current setup if I add RewriteRule ^(.*)$ to the .htaccess file then if anybody attempts to browse the site they get “the webpage has a redirect loop” error. So I’ve had to take out that line of code. Anything I can do?

  39. I am using cloudflare for https and want to know how to display “secure lock sign” before the https:// and I also want to know why you are not using https ?

  40. When configuring the SSL certificate, is it better to add the www to https:// or leave off the www when setting up a new wp site.

  41. Reason when I complete all the steps. Thank you for your article! I was wondering though, my website recently has suffered some problems with.

Leave a Reply to Arif Ahmed Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.