Visitors see "Not Secure" next to your address, a padlock with a line through it, or a full red page saying "Your connection is not private". Customers leave at that page, and contact and checkout forms look unsafe. There are four usual causes, and one look at the certificate tells you which. Below is a rebuilt example (not a real client), that look, and the fix for each answer.
http:// (no "s"), the page was not loaded securely at all. Type the same address with https:// in front and see what happens: a working page means you only need a redirect; a red warning page means the certificate is the problem.NET::ERR_CERT_DATE_INVALID means the certificate expired. NET::ERR_CERT_COMMON_NAME_INVALID means it was issued for a different name (often example.com but not www.example.com, or the hosting company's own name). ERR_CERT_AUTHORITY_INVALID means a self-made or unfinished certificate.http://.www record, Cloudflare in front), and three months later the site goes red. In the host panel, find SSL/TLS Status or AutoSSL and run it again; it says which name failed and why. Fix the DNS record it names, then run it once more.example.com and people type www.example.com, or the reverse, or the domain was added to the hosting later. Reissue it with both names ticked. If the warning names your host's server (server123.host.example), the domain has no certificate of its own yet.http://. Only after https:// loads cleanly, change both addresses under Settings, General (WordPress Address and Site Address) to https://, then add a permanent (301) redirect from http to https in the host panel or .htaccess. Do it in that order: switching WordPress to https before the certificate works can lock you out of the admin.http://. Browsers block or flag them and the padlock goes. Fix it with a database search-and-replace from http://example.com to https://example.com (Better Search Replace or wp search-replace), a backup and a dry run first. Then check the theme options, page builder settings and any hard-coded script (chat widget, map, old analytics) for http://. A plugin like Really Simple SSL rewrites these on the fly, which hides the problem rather than removing it.Once the certificate works, send every http:// visitor to https://, so nobody who types the bare address lands on the "Not Secure" copy.
.htaccess, above the WordPress block:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; }| What you see | Usual cause | Usual fix |
|---|---|---|
"Not Secure" and the address starts with http:// | No redirect to https, or no certificate | Free certificate in the host panel, then WordPress addresses to https, then a 301 redirect |
Red page, NET::ERR_CERT_DATE_INVALID | Certificate expired, renewal failing | Run AutoSSL / renew; fix the DNS record it names |
Red page, ERR_CERT_COMMON_NAME_INVALID | Certificate for another name (www or not, or the host's) | Reissue covering both example.com and www.example.com |
| https loads, padlock missing or crossed out | Mixed content: images or scripts still on http | Search-and-replace http to https in the database; fix hard-coded scripts |
| "Redirected you too many times" after switching | Cloudflare Flexible against a site forcing https | Valid server certificate, Cloudflare "Full (strict)" |
| Cloudflare error 526 | "Full (strict)" with no valid certificate on the server | Install or renew the server's certificate |
| Only one computer sees the warning | That computer's clock or antivirus | Set the clock right; nothing to change on the site |
wp-config.php (WP_HOME and WP_SITEURL) or in the database.Once the warning code has told you which cause it is, the fix is usually under an hour. If you would rather hand it over, or the padlock still will not appear, that is what the box below is for. Related: "redirected you too many times", images not showing after a move and a login page that keeps refreshing (both can follow a switch to https).