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, Authorize.net, 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 Domain.com 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]
</IfModule>

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;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}

Don’t forget to replace example.com 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. Hi, if i’m using the 1st method, do I need to follow the Submit my HTTPS Site to Google Search Console step also after that?

    TQ

  2. I installed the Really Simple SSL plugin, which states that you should manually replace every http:// in all .css and .js files to //. That doesn’t sound really simple to me. As a beginner I set up a simple website with a couple of pictures. Is it common that http:// statements are in these files?

    • Normally those links are not common so it shouldn’t be something to worry about.

      Admin

  3. Hi,
    When adding the code to .htaccess, i get a “too many redirects” error. I tryed adding to the existing code above, below, and also erasing the existing code and using only the new. All three option get too many redirects.

    Is there something I should change there? Thanks in advance for your help!

  4. I’ve tried using the plugin but when I do the website becomes not accessible. I’ve tried the manual approach but once I’ve changed the addresses in WP settings the site becomes not accessible again.

    • You would want to reach out to your hosting provider to ensure that your SSL certificate is connected to your domain correctly and they should be able to help :)

      Admin

  5. I am about to make the change to SSL and will be following the guidance in te article, initially using the really simple ssl plugin. Before i begin i have a quick question.

    If I use the really simple ssl plugin, which takes care of everything, i can leave the general settings in wordpress for wordpress address and site address as http rather than change to https as the plugin will be taking care of it?

      • Thanks for confirming. I have one other rquestion.

        having just activated lets encrypt ssl on siteground for a website, i am asked wther i want to switch the following on or leave it off.

        HTTPS Enforce – Forces your site to work entirely over an encrypted HTTPS connection. The redirect is performed on server level and works for any website.

        Do i leave this off as the really simple ssl plugin will take care of this as well?

        • Yes, you can leave that off, you would only want to use that should there be any issues with the plugin or Google finding http links

        • Thanks for your advice. WP Beginner is such an awesome website. Keep up the great work!

  6. I want to thank you a lot. I have been looking for the errors over 12hours and get it done with better replace plugins. Thanks a lot dear.

  7. Can someone tell me, do I replace the contents on my.htaccess. file with the suggested code or do I place it and the beginning/end of the eisting entry.

      • Thanks for the quick reply. So, would that be after the existing and before the # END WordPress, or does it go after the .

        • That should not matter, it may be a good idea to do it after should you need to remove the code in the future :)

  8. Hi!
    Thanks for the article!
    What about google analytics? Same thing as Google search console or not?

    • For Google Analytics you should be able to update to https under your property settings

      Admin

  9. When I enable “WordPress 301 redirection to SSL” option from “Really Simple SSL Plugin” it works fine, but it removes query parameters. For example, when I get users from Adwords campaign it strips off gclid parameters.

    Please guide

    • You would want to reach out to Really Simple SSL’s support to see if there is an option for query strings.

      Admin

  10. Thanks for your helpful article.
    The manual SSL/HTTPS set up seems be be working for the main site.
    However the mixed content error (images) still appears after using the Better Search Replace plug-in.
    At Media Library, images appear with ‘https’, but not at the site’s each post
    Indeed, at all posts, when I right-click on the post image > ‘Copy image address’, it shows:
    http://
    Ideas? Thanks in advance.

  11. Hi,

    I used this tutorial on many sites and it works like a charm. Thanks for that.

    Do you know if I can also use it to update my multisite(s). Or are additional steps needed?

    • Depending on how your multisite is set up there are normally more steps involved. If you reach out to your hosting provider they can normally help

      Admin

  12. Fantastic and straightforward!

    What steps do we need to take to make sure our social share count (e.g., Facebook, Twitter) are still available?

    • You could try 301 redirecting the http articles to https but unless I hear otherwise, social media sites see the two as different links so you are likely going to lose your shares unless they have added a method to update your share counts.

      Admin

    • There are multiple possible reasons for a change in traffic so it is hard to say if that is the only reason or if there were other reasons for a drop in traffic.

      Admin

  13. Thank you for such a great piece of content.
    It seems like using the Really Simple SSL plugin is way easier than changing codes and scripts on my own.

    My question – what if the plugin did not get updated in the future? Is this going to cause a problem for our urls?

    And, after installing the SSL from my web host, all I need to do is to activate Really Simple SSL plugin and everything will be redirected to https?

    Shawn

    • It would depend on what changes in WordPress’ core code and how long it has not been updated for the possible issues. The plugin should automatically update your content that it is able to use HTTPS without you needing to modify anything on your end if you wanted.

      Admin

  14. Just wanted to say thank you. I was not looking forward to doing this, but you’re guide made it easy and quick. Thanks!!!

  15. I made the mistake of following your manual instructions before our SSL cert had been installed. All I did was edit the general settings for the URL to https. And now the site is hosed. I’ve been editing every PHP file to include:
    define( ‘WP_HOME’, ‘http://mysite.com’ );
    define( ‘WP_SITEURL’, ‘http://mysite.com’ );

    and it’s being ignored. So now my site is hosed. FYI I’m using WordPress 5.1.1 which appears to have significant changes. Help!

  16. This made making the switch a snap. I was sitting on the ssl cert with no sure way how to convert. Really appreciate the easy instructions.

  17. Oh my goodness, THANK YOU! I’ve reached out to my hosting company, as well as a developer. They both made it seem like an impossible task to do on my own. Just took care of this is literally 30 seconds because of you. I can’t thank you enough! I wish I would have found this article sooner—would have saved me a lot of headache!!

  18. Hi,

    I tried twice your step guide end everything worked great. Now that i have SSL i am trying to migrate but there is a problem on the final step, so it cannot be finalized. Is it a problem i had Lets Encrypt on old server and now that the new one has another, to have caused a problem. Would you recommend remove SSL on old hosting and after that using dublicator to start the articles process?

    • Who has your SSL should not be a factor for it not working, you could try to see if that works but it is normally due to another cause.

      Admin

  19. Hi,

    I applied all steps and https version is working fine on my website but the non-https version is still accessible when I type http: mysite.com

    how to resolve this issue?
    Also when I click on my google search link for my website user also lands on non-https version and after that if I access the website again it comes with https
    please tell me how to resolve this issue?

    • If you already submitted your site to Google’s Search console then Google may have cached the http version in their search. For the http version being available, you may want to ensure the redirects were all saved.

      Admin

  20. This was surprisingly simple that’s why I rely on you guys, had actually thought it would be horrible.

  21. Thanks for the great tutorial. Only issue I’m stuck with is that URLs with www appended give an error message in browser:

    “This site can’t provide a secure connection uses an unsupported protocol.
    ERR_SSL_VERSION_OR_CIPHER_MISMATCH
    Unsupported protocol
    The client and server don’t support a common SSL protocol version or cipher suite.”

    I’ve checked and both non-www and www versions have valid SSL certificates. Any idea why the www version is not working?

    • Start by reaching out to your hosting provider to ensure they don’t have a setting on their end for the www specific version of your site.

      Admin

      • Managed to sort it out. Cloudflare was causing the issue.
        Solution: disable and re-enable Universal SSL under Crypto settings.

        • Glad you were able to find the cause and thanks for sharing the solution should anyone else run into the issue :)

  22. All my images were inserted with http protocol. I used Better Search Replace to fix this and it worked like a charm!

    thank you

  23. I have a problem with the redirect from http to https.

    Using the above mentioned code in the .htaccess file,

    my index page http:// example.com redirects to httpS:// example.com

    BUT

    A subpage http:// example.com/sublink does NOT redirect to https:// example.com/sublink

    Does anybody know how to solve this?

    Thank you!

    • You may want to reach out to your hosting provider to ensure they are not overriding any redirects on your site or if they see the code was copied incorrectly.

      Admin

  24. Yeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees! The first WP edit that has ever worked first time for me! I’m taking the rest of day off to celebrate.

    :-)

  25. Hi thanks for the article, I have shifted my site to ssl by using the article elaborated above.
    Let me clear a few things:
    1- I have added a new property in Google search console with https:// should I delete the http:// property or remain the both.
    2- How long it will take to show google search data in the search console report.
    3- Should I make a 301 redirect to https:// version.
    4- How to get all my backlinks to https:// version.
    ( i have submitted the XML sitemap and robots..txt file also with new property)
    Thanks for your time

    • Hey Rafaqat,

      If you have set up 301 redirect to your HTTPS urls, then you can leave them both. They would start appearing in search very soon, however of your redirects are properly setup you wont see any difference in your traffic or search rankings.

      Admin

  26. It is an amazing article, I solve my problem and now I have my site up and running. Thanks so much!

  27. Hi and thank you for the detailed tutorial
    I have activated the ssl protocol on a new wordpress installation and after the activation the site’s started opening with https and green padlock ( all pages, with and without www search and if searching http version) even the admin area as far as the theme and editor , however the wordpress and site URL fields in the settings General page still need to be changed to https as they appear as http and any new publication (so as the ones alredy been there) has http link and when editong page appearancefrom main menu it shows exclamation mark oven the secure connection padlock
    In that case do I need to go thru all process or after updating the general settings page to https it will be ok ?
    It’s my first time doing that and I prefer ( if have to) to do it manually by the 2 method as it very well explained
    Thanks

    • Hi Eva,

      You can try the second method or follow the instructions in the first method. You will need to change the URLs in settings as it tells WordPress to use https in URLs.

      Admin

  28. I’ve tried following the manual tutorial but I end up seeing a blank white page on my homepage and all of my other page are now inaccessible. My website is hosted in Amazon and I’m also using W3 total cache.

    Do I need to do something else to make this work?

    Any suggestions will be much appreciated.

    • On my website was W3 total cache, when I disabled it worked everything fine. I think after htaccess edit needed to reinstall plugin and do w3 settings again. Not tried yet, soon will try.

  29. Hello,

    As usual thanks for the detailed tutorial. I decided to do the manual option (option 2) because it seemed simple enough to follow through. However when I pasted the second code for nginx servers into configuration file (wp-config.php) I got a syntax error. So I had to remove the code. But I will still like to follow through with that option so if you can please maybe take a look at that code again and correct it then I’ll really appreciate it.

    Also just to get this clearly, it is either:

    “set up WordPress redirects from HTTP to HTTPS by adding the following code to your .htaccess file.”

    OR THIS

    “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:”

    Not both right?

  30. Hi,

    I am planning to start an e-commerce store. Do I need to purchase a wildcard SSL certificate and a dedicated IP to enable payments on my website or will the free SSL certificate bundled with web hosting plans be adequate?

  31. Hi Guys,

    1st off a great and helpful article, thanks. I have changed my site from http to https and it took a lot less time than I expected, using the Better Search and Replace manual method. But now I can’t seem to change the address of the http version in the Google Search Console. It has both of the sites there but won’t allow me to swap. Is this necessary to do? It seems as if the redirects are working. Should I get the https site indexed as much as possible or will google do that with the http redirects anyway?

    • Hi Oliver,

      If you have both sites in the search console and a redirect in place, then Google will automatically detect the transition and will start showing reports for your HTTPS site.

      Admin

  32. I used the first method, although I have experience in programming, I don’t have it in wordpress and I don’t dare to get my hands on the code even though it’s not that complicated.
    the first method worked i.e. installing the free plugin version.
    Thanks for the tip

Leave a Reply to Leo Al 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.