HTTP to HTTPS redirect checker

Check if automatic redirect from HTTP to HTTPS is configured for your site

Free
No sign-up
Instant results

Check results

This check only covers HTTP/HTTPS. For a full picture of your page, run a page audit.

For issues across your whole site — duplicate titles, orphan pages, broken internal links — run a site audit.

Want us to fix what we found? Our team can help.

What is HTTP to HTTPS redirect and why it matters

When a site supports HTTPS, requests to the HTTP version should automatically redirect to HTTPS — otherwise the site is accessible over two separate protocols, each looking like a different URL to search engines. This creates duplicate content, splits link equity between http:// and https:// versions, and exposes users to a "Not Secure" browser warning on the HTTP version. Google has confirmed HTTPS as a ranking signal since 2014, and modern browser features (service workers, geolocation, webcam access, secure cookies) require HTTPS to work. A single 301 redirect from HTTP to HTTPS, configured once at the web-server level, resolves all of this.

What this tool checks

  • HTTPS accessibility — the site actually responds over HTTPS
  • HTTP redirect behavior — http:// should redirect (3xx) to the https:// version
  • Redirect status code — 301 or 308 (permanent) vs 302 / 303 / 307 (temporary)
  • Redirect target protocol — the Location header should point to an https:// URL
  • Path preservation — requesting http://site/some-path should redirect to https://site/some-path, not dump you at the homepage
  • HTTP 200 without redirect — HTTP serves content directly, a duplicate-content problem
  • HTTP-only disabled — HTTP port closed entirely is a valid secure configuration

Redirect status codes for HTTP→HTTPS

  • 301 Moved Permanently — the classic choice. Permanent, transfers ranking signals, cacheable by browsers.
  • 308 Permanent Redirect — modern permanent redirect that preserves the HTTP method (a POST stays a POST). Functionally equivalent to 301 for GET navigation; use when your redirect might hit non-GET requests.
  • 302 Found — temporary redirect. Signals to search engines that the move may be reversed, so they hold onto the HTTP version longer. Not recommended for permanent HTTPS migration.
  • 307 Temporary Redirect — like 302 but preserves the method. Still temporary, still not recommended for HTTPS migration.
  • 303 See Other — rare in this context; treated as temporary.

Good vs bad examples

Good — Nginx configuration redirecting all HTTP to HTTPS with path preservation:

server {
  listen 80;
  server_name example.com www.example.com;
  return 301 https://$host$request_uri;
}

Good — Apache .htaccess:

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

Good — Cloudflare: enable "Always Use HTTPS" under SSL/TLS → Edge Certificates.

Bad — HTTP returns the page content directly (no redirect):

GET http://example.com/product
→ 200 OK (HTML content served)

Bad — redirect loses the path (sends everyone to the homepage):

GET http://example.com/some-article
→ 301 Location: https://example.com/  ← should be /some-article

Bad — temporary 302 redirect for what should be permanent migration:

GET http://example.com/
→ 302 Location: https://example.com/

Common mistakes

  • No HTTP→HTTPS redirect configured — both versions accessible, duplicate content, split link equity
  • 302 instead of 301 — temporary redirect for a permanent migration; search engines keep the HTTP version in the index longer
  • Redirect without path preservation — all HTTP URLs land on the homepage; deep links from external sources break
  • Redirect to non-HTTPS URL — HTTP redirects to another HTTP URL that redirects to HTTPS (chain), or to a completely different resource
  • Internal links still using http:// — even with a working redirect, internal HTTP links add an extra hop for every click. Update them after HTTPS migration
  • Not redirecting the www/non-www variant — covered by the separate www-redirect check but commonly combined with HTTPS migration

Frequently asked questions

Without a redirect, the site will be accessible at both http:// and https://. Search engines will treat them as two different sites with identical content, leading to page duplication in the index. Link equity will split between the two versions, and search rankings will drop. Browsers will also show a "Not Secure" warning for the HTTP version.
Yes, it's recommended to update all internal links to HTTPS versions. While 301 redirects will forward users, each redirect adds a small loading delay. Direct HTTPS links work faster and don't create unnecessary server load. Also update links in sitemap.xml, robots.txt, and canonical tags.
This tool checks automatically — enter your site URL and it will test the redirect, its status code (301/302/307/308), and whether the path is preserved. You can also check manually: curl -I http://example.com/some-page shows the status line and Location header. In browser DevTools (Network tab), you'll see a 301 response before the HTTPS request.
Both are permanent redirects recognized by all search engines. 301 is the classic choice — when browsers receive a 301 on a non-GET request (say, a POST), they typically follow up with a GET, which changes the method. 308 is the modern equivalent that preserves the original method (a POST stays a POST). For HTTP→HTTPS of HTML pages, where requests are GETs, 301 and 308 are functionally the same. If your site receives POST/PUT/DELETE requests over HTTP that also need to be redirected (APIs), use 308. Otherwise 301 is simpler and more widely understood.
It works, but it's not ideal. Each hop adds latency (DNS + TLS handshake + redirect response), and search engines lose a small amount of ranking signal with every hop. Best practice: configure a single redirect that jumps straight to the final canonical HTTPS version, regardless of whether the incoming URL is http non-www, http www, or https non-www. Most web servers support this with a single redirect rule that sets both protocol and hostname.