Why Does My Website Say "Not Secure"?

Browsers show Not secure when a page is not served over a private HTTPS connection. Usually one of three things went wrong: the site has no SSL certificate, the certificate expired or does not match the domain, or an HTTPS page still loads some files over plain http://. Each cause has its own fix below.

The usual causes and where to start
What you seeLikely causeFirst fix
Not secure on every page, address starts with http://No certificate, or no redirect to HTTPSTurn on SSL with your host, then redirect http:// to https://
Full-page warning about the connectionCertificate expired, or issued for a different nameRenew it, or reissue it covering both example.com and www.example.com
Padlock missing on one page onlyMixed content: a file on that page loads over http://Change that file's address to https:// (scan below)
Warning only on a form pageThe form sends to an http:// addressPoint the form's action at an https:// address

Updated

HTTPS is the encrypted version of the web's transfer protocol, and the SSL (more precisely TLS) certificate is the file that proves your domain owns the connection. Chrome's help page says that on a Not secure site something is wrong with the privacy of the connection, and someone might be able to find the information visitors send or get. Work through the causes in order: certificate first, redirect second, mixed content last.

Mixed content scanner

Paste a page's HTML (right-click the page, then View page source, then copy). The scan runs in your browser and nothing is uploaded.

<link rel="stylesheet" href="http://cdn.example.com/site.css">
<img src="http://photos.example.com/shop-front.jpg" alt="Our shop">
<script src="https://cdn.example.com/menu.js"></script>
<form action="http://example.com/contact" method="post"></form>
<a href="http://partner.example.org/">Our supplier</a>

Found 4 http:// addresses.

http:// addresses in the pasted HTML
AddressWhereWhat happens
http://cdn.example.com/site.css<link href>Blocked on an HTTPS page: change it to https://
http://photos.example.com/shop-front.jpg<img src>Upgradable: the browser tries https:// itself, and the file goes missing if the server has no HTTPS
http://example.com/contact<form action>The form sends its data unencrypted: change the action to https://
http://partner.example.org/<a href>A plain link, not mixed content, but it sends visitors to an unencrypted page

Which http:// files browsers fix and which they block

This follows MDN's mixed content reference. Upgradable requests are rewritten to HTTPS by the browser; everything else on the list is blocked.

Browser handling of mixed content (MDN)
ResourceBrowser behaviour
<img src>, <audio src>, <video src>, <source>Upgraded to https:// automatically
An image whose address is a bare IP, like http://93.184.215.14/Blocked, not upgraded
<img srcset> or images inside <picture>Blocked
<script src>, <link href> stylesheets, <iframe src>Blocked
Web fonts, fetch() and XMLHttpRequest calls, <object data>Blocked

Two headers that help once HTTPS works

Add these at your host or CDN. The first asks browsers to upgrade every request; the second tells them to use HTTPS only for this domain from now on.

Upgrade every request

A stopgap while you correct old addresses. It only works for files that are also available over HTTPS.

Content-Security-Policy: upgrade-insecure-requests

Strict-Transport-Security (HSTS)

max-age is in seconds; 31536000 is one year. Browsers that see this will not let visitors click past certificate errors, so test first.

Strict-Transport-Security: max-age=31536000; includeSubDomains

Cause 1: no certificate or no redirect

If the address bar shows http:// on every page, the site is being served without encryption. Turn on SSL in your hosting or builder dashboard; most issue a free certificate in minutes.

Once https:// loads, redirect all http:// requests to it with a permanent (301) redirect, so old links and bookmarks land on the secure version.

Cause 2: expired or mismatched certificate

A certificate has an end date and lists the exact names it covers. When it lapses, or when someone visits www.example.com but the certificate only names example.com, browsers show a full-page error instead of a small label.

Click the icon next to the address to see the certificate's dates and names, then renew or reissue it from your host.

Cause 3: mixed content

MDN defines mixed content as a securely loaded page that fetches some resources over HTTP. Browsers try to upgrade images, audio and video to HTTPS automatically, and block scripts, stylesheets, iframes and fonts that use http://.

Blocked files make parts of the page break, while upgraded ones can fail silently if the other server has no HTTPS. Either way, change the address to https://.

How it works

  1. Open your site with https:// typed in front. If the browser refuses, the certificate is missing, expired or for another name.
  2. If https:// works but plain http:// still loads without redirecting, add a permanent redirect at your host.
  3. If the padlock is missing on a page that does load over HTTPS, view that page's source and paste it into the scanner above.
  4. Change each flagged address to https:// (or remove the file), publish, and reload the page.

Tips

Frequently asked questions

Is a Not secure website dangerous to visit?

Reading a plain information page is low risk, but anything typed into it (a password, card number or contact form message) can be read or altered on the way. That is why browsers warn, and why visitors leave.

How long does an SSL certificate last?

It depends on the issuer. Let's Encrypt, a free nonprofit certificate authority, says its default certificates are valid for 90 days, which is why automatic renewal matters. Paid certificates have their own terms.

Does Not secure hurt my search rankings?

Google has not published a weighting we can quote, so we will not guess at one. The practical cost is visitors who see the warning and leave before reading anything.

Why does only one page show the warning?

That page almost always loads something over http://: an image, a script, a font, an embedded video or a form target. Paste its source into the scanner to find the address.

Can I fix mixed content without editing every page?

Partly. The Content-Security-Policy directive upgrade-insecure-requests tells browsers to request every resource over HTTPS. It only helps when the other server also offers HTTPS, so fixing the addresses is still the clean fix.

Related: SSL certificate types, How much website hosting costs, On-page SEO checklist, Google Search Console guide, How to view page source.

Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.

More in Guides

We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.

Product

Who It's For

Features

Resources

Company

View Sitemap