HTTP to HTTPS Migration
The step-by-step HTTP→HTTPS migration playbook — pre-migration audit, certificate selection, staging tests, redirect mapping at scale, canonical/sitemap/hreflang updates, getting Search Console coverage right, monitoring windows, launch-day regressions, and a rollback plan.
1 evidence signal on this page
- Related live toolRedirect Checker
An HTTP→HTTPS migration is a protocol-only site migration: same host, paths, query strings, content and platform — only the scheme moves from http:// to https://. Because nothing else changes, 301s carry all the weight (301s don't lose PageRank) and you don't need the Change of Address tool. The order that keeps traffic: benchmark the live HTTP site, pick and install a TLS certificate (a free DV cert earns the same lightweight ranking signal as any paid one — Google checks the scheme, not the issuer), rehearse the whole thing on staging, then flip — 301 every URL one-to-one server-side, make HTTPS self-canonical, repoint every internal link/sitemap/hreflang, and fix blockable mixed content before it breaks your scripts on launch day. Afterward, add a Domain property in Search Console (it covers every protocol/host variant automatically) or verify the HTTPS properties individually if you want segmented data, submit the HTTPS sitemap, keep redirects at least a year, and monitor Crawl Stats + indexing for a dip that sticks (broken) versus a dip that recovers (settling). Have a rollback plan — but repair HTTPS first, since caching, cookies and service workers can make a true HTTP rollback unsafe — and treat HSTS preload as slow and risky to reverse, not a one-way door.
TL;DR — An HTTP→HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' migration means moving every page on your site from the insecure
http://address to the securehttps://one. You install a certificate, then redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. every old URL to its new secure version so nothing breaks and no rankings are lost. Done carefully it’s safe — the damage only comes from sloppy execution.
What you’re actually doing
Moving HTTP URLs to HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' changes their canonical URLsHow search engines pick one canonical URL among duplicates and consolidate signals onto it. and should use permanent server-side redirects plus consistent canonical signals. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: Site moves with URL changes HTTPS configuration must also present a valid TLS certificateAn SSL/TLS certificate is the file a server presents during the TLS handshake to prove who controls the domain (to a level that depends on the validation type) and to supply the public key that encrypts the connection. It's what makes https:// possible — but Google's ranking signal only checks the URL scheme, not which certificate issued it. and avoid mixed resources. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: HTTPS
Right now your pages live at addresses that start with http://. You want them to
live at https:// instead — the secure, encrypted version, the one that shows the
padlock and doesn’t trip Chrome’s “Not Secure” warning. The content, the hostnames,
the paths, and the query stringsThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. all stay the same, and you’re not changing CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. or
hosting platform at the same time. Only the first few characters of every URL change.
Because the pages themselves aren’t moving, this is the gentlest kind of site migration — but only while all of that stays true. If you’re also merging subdomains, restructuring URLs, rewriting content, or switching platforms at the same time, that’s a different, higher-risk move; see the short version’s note below. Otherwise, it’s still a migration, so it deserves care.
The one rule that matters most
Redirect every old http:// URL to its exact https:// version with a 301
redirect. A 301 is a “permanent” redirect — it tells search engines “this page
lives here now, forever, please move everything over.” Google has confirmed 301s
don’t cost you any ranking strength, so a clean switch keeps your traffic.
The trouble starts when redirects are missing, or when your pages still try to load
an image or a script from the old http:// address. That “mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable.” can make
parts of your page break in the browser. So the work isn’t the switch — it’s making
sure nothing still points at the old addresses.
Preserve the URL while switching its protocol
httpBefore
removed
HTTP/1.1 301 Moved Permanently
Removed line.
Location: https://example.com/
Removed line.
<link rel="canonical" href="http://example.com/products/blue-shoe">
Removed line.
<script src="http://example.com/assets/app.js"></script>
Fixed
added
HTTP/1.1 301 Moved Permanently
Added line.
Location: https://example.com/products/blue-shoe
Added line.
<link rel="canonical" href="https://example.com/products/blue-shoe">
Added line.
<script src="https://example.com/assets/app.js"></script>
- The redirect is one-to-one instead of collapsing every old URL onto the homepage.
- The canonical now self-references the HTTPS destination.
- The script no longer creates blockable mixed content.
The short version of the process
- Take a snapshot of your site as it is now — a full list of pages and your current rankings — so you can compare afterward.
- Get a certificate and install it. A free one (like Let’s Encrypt) works perfectly for SEO.
- Test on a copy first if you can, so launch day has no surprises.
- Flip it on: redirect every old URL to the secure version, update your
internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. and sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and fix anything still loading over
http://. - Re-check Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.. The simplest fix is a Domain property, which
covers every
http/https/wwwvariant automatically — you don’t need to verify each one separately. - Keep the redirects (for at least a year, ideally forever) and watch your traffic for a couple of weeks. A little wobble is normal.
If you’re also renaming URLs, merging subdomains, moving to a new CMS, or changing what’s on the pages, stop — that’s a bigger, riskier move than a straight protocol switch. Use the full site migrationA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once. playbook instead and fold the HTTPS switch into it.
Want the full engineering version — certificate choices, redirect mapping for thousands of URLs, the four Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. properties, monitoring windows, and a rollback plan? Switch to the Advanced tab. (For where HTTPS fits as a ranking signal in the first place, start with the HTTPS hub.)
TL;DR — An HTTP→HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' move is a protocol-only site migrationA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once.: same host, paths, query stringsThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO., content, and platform — only the scheme changes. That makes it the lowest-risk migration there is if all of that holds — but the discipline is identical to any site move. Benchmark the live HTTP site, choose and install a TLS certificateAn SSL/TLS certificate is the file a server presents during the TLS handshake to prove who controls the domain (to a level that depends on the validation type) and to supply the public key that encrypts the connection. It's what makes https:// possible — but Google's ranking signal only checks the URL scheme, not which certificate issued it. (a free DV cert earns the same lightweight ranking signal as any paid one — Google checks the scheme, not the issuer), rehearse on staging, then flip: 301 every URL one-to-one server-side (301s don’t lose PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems.), make each page self-canonical to its HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' URL, repoint every internal link, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. entry, and hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. annotation, and kill blockable mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable. before it breaks your scripts. Add a Domain property in Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. (it covers every scheme/host variant at once) or verify the HTTPS properties individually if you want segmented data, submit the HTTPS sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and don’t touch the Change of Address toolA setting in Google Search Console that tells Google you've moved your whole site to a new domain or subdomain. It's a supporting signal for a domain migration — the 301 redirects do the real work of transferring rankings. — it’s for domain moves. Keep redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. at least a year (that’s a floor, not an expiration date). Monitor Crawl Stats and indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.: a dip that recovers is the move settling; a dip that sticks means something broke. Have a rollback plan, but repair HTTPS first — caching, HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open., cookies, and service workers can make a true HTTP rollback unsafe — and treat HSTS preload as slow and operationally risky to reverse, not a literal one-way door.
The HTTPS hub covers why to be on HTTPS and sketches the migration at a high level. This is the deep, step-by-step companion to that section — the part where a migration actually goes wrong or goes clean.
First, right-size the risk: this is a protocol-only migration
Google treats protocol changes as site moves with URL changes; temporary ranking or reporting fluctuations are possible and no migration timeline is guaranteed. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: Site moves with URL changes Transport security and Search processing are related but separate concerns. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: HTTPS
Site migrationsA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once. exist on a spectrum of danger. Changing your domain, your URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly., or your CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms./platform all rewrite the identity of your URLs and carry real risk. A protocol-only switch is the low-risk case only when everything else holds steady. Confirm all of these before treating it as a one-rule redirect:
- Hostnames — no
www/non-wwwconsolidation or subdomain changes riding along with the switch. - Paths and query strings — no URL restructuring, slug renames, or parameter cleanup bundled into the same release.
- Content — pages aren’t being rewritten, merged, or pruned at the same time.
- Platform/renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. behavior — no CMS, framework, or hosting migration happening in parallel.
When all four hold, the domain, the paths, and the content are identical; only the scheme in front of each URL moves. That’s why Google is explicit that you “don’t need to use the Change of Address tool” for it: there’s no address change to declare.
The single most important consequence: because URLs map one-to-one and
deterministically (http://example.com/x → https://example.com/x), your
redirect logic can usually be a single server rule, and your redirect map writes
itself. Compare that to a domain or platform move, where every old URL needs a
hand-checked destination. Keep that framing — it tells you where to spend effort
(certificate, mixed content, Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance.) and where not to (agonizing over
redirect targets).
If you’re also changing domain or platform at the same time, stop: that’s a stacked migration, the risks multiply, and the protocol switch is the least of your worries. Do the harder move using the full site migrationA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once. playbook and fold HTTPS into it.
Step 1 — Benchmark the live HTTP site before you touch anything
You can’t tell whether a migration went well without a “before” picture to diff against. Capture, while the site is still on HTTP:
- A full crawl of the live site — save every
200URL and, critically, every existing redirect and its target. You’ll re-run this crawl after launch and diff the two; anything that was a200and is now a404is a regression. - A rankings snapshot for your tracked keywords, so a post-launch dip has a baseline.
- A Search Console export — Performance (queries, pages, clicks, impressions), the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason., and Crawl Stats. GSC data does not transfer from the HTTP property to the HTTPS one, so this export is your only record of the “before.”
- Your backlink profile, so you know which URLs carry the most external equity and therefore most need clean, single-hop redirects.
- Your
robots.txtand anynoindexdirectives as they stand — you’ll want to make sure none of them silently carry over to block the HTTPS site.
Step 2 — Choose and install the TLS certificate
Here’s the SEO-relevant truth that saves people money: the ranking signal checks the URL scheme, not the certificate. Gary Illyes described it as “basically looking at the first five characters in front of the URL, and if it’s HTTPS … it will get a minimal boost.” So for SEO, a free Domain Validation (DV) certificate — Let’s Encrypt is the default — earns exactly the same signal as a paid OV or EV certificate. OV/EV buy organizational identity, not rankings. Don’t promise yourself (or a client) a ranking boost, or a special benefit for a particular certificate type or key algorithm — Google’s own description calls this a lightweight, minimal signal, not a lever worth paying for.
What you do need to get right technically:
- Scope. A single-domain cert covers one hostname; a wildcard (
*.example.com) covers one label deep — it works forfoo.example.combut notfoo.bar.example.com. If you run deep subdomains, plan a multi-domain (SAN) or additional certs. - Key strength. Google’s guidance is to “generate a 2,048-bit RSA key pair” — shorter is brute-forceable, longer wastes resources.
- Auto-renewal. The most common post-migration incident is an expired cert. Automate renewal (Let’s Encrypt is built for it) and monitor expiry. Note the nuance: Google generally prefers HTTPS as the canonical version of a page, but that preference is conditional, not automatic — an invalid certificate, insecure dependencies, an HTTPS-to-HTTP redirect, or an HTTP canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. can flip Google’s canonical choice back to the HTTP URL, and HSTS cannot override that preference. Evidence for this claim Google generally prefers HTTPS as the canonical version of a page, but that preference is conditional: an invalid certificate, insecure dependencies, an HTTPS-to-HTTP redirect, or an HTTP canonical tag can flip Google's choice back to the HTTP URL. HSTS is a browser-only mechanism and cannot override Google's canonical selection. Scope: Describes Google's conditional HTTPS canonical preference, not a guarantee that certificate problems are search-invisible. Confidence: high · Verified: Google: Consolidate duplicate URLs So an expired cert is not a harmless non-event for Search — it’s simultaneously a UX/security emergency (a full-screen browser warning that destroys user trust) and a real risk to your HTTPS canonical preference the longer it persists. Fix it fast either way. (For the full certificate-failure taxonomy — expired, self-signed, hostname mismatch, incomplete chain — see the TLS/SSL certificatesAn SSL/TLS certificate is the file a server presents during the TLS handshake to prove who controls the domain (to a level that depends on the validation type) and to supply the public key that encrypts the connection. It's what makes https:// possible — but Google's ranking signal only checks the URL scheme, not which certificate issued it. deep dive.)
Step 3 — Rehearse on staging
Do the whole flip on a staging/pre-production copy first. What you’re validating:
- The redirect rule fires for every path shape, including query strings,
trailing-slash variants, and
www/non-www. - No redirect loopA redirect loop is a chain of redirects that circles back on itself instead of ever reaching a live page — URL A redirects to B and B redirects back to A (or a longer cycle). No page ever returns a 200, so browsers show ERR_TOO_MANY_REDIRECTS and crawlers can't index anything. (a misconfigured rule that bounces HTTPS back to HTTP and around again locks everyone out — including you).
- Pages render clean with no blockable mixed content in the DevTools console.
- Your canonical tags already emit
https://on staging.
Guard the staging copy from indexing (auth or a noindex you remember to remove —
a stray migration-only noindex that survives to production is a classic
self-inflicted wound). Google’s own guidance calls this out: don’t forget to remove
noindex or robots.txt blocks that were only needed for the migration.
Step 4 — Redirect mapping at scale
This trace exposes a secure URL whose chain ends on HTTP. It verifies the observed route, not whether every URL in the migration is mapped.
Run representative old URLs through my Redirect Checker to confirm a single permanent hop to the matching HTTPS destination. Redirect Checker Free
- Test old HTTP URLs from every major template and path pattern.
- Require a direct 301 or 308 to the corresponding HTTPS URL, never an HTTP final destination.
- Crawl the complete old-URL inventory after launch rather than extrapolating from spot checks.
For a protocol switch, the mapping is deterministic, so you drive it with one rule, not a giant lookup table:
- Server-side, one-to-one, and permanent (301). Every
http://URL → the same path onhttps://. Do it in the server/edge config (Apache, Nginx, or your CDN), not in application code and not with client-side JavaScript, so bots see a clean server 301. - No redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency.. If you already had HTTP redirects (say
http://a→http://b), don’t let the HTTPS switch turn that intohttp://a→http://b→https://b. Update the original rules so old URLs land on the final HTTPS destination in one hop. Google will follow up to 10 hops, but it “advise[s] redirecting to the final destination directly.” Every extra hop is wasted crawl budget and a little lost speed. - Never mass-redirect to the homepage. Unmatched URLs should still resolve to
their own HTTPS twin. Dumping everything on
/is the migration mistake that actually loses rankings. - Verify the map with a crawl. Re-crawl the HTTP URL list after launch and
confirm each returns a single
301to the right HTTPS URL — not a302, not a chain, not a404.
Step 5 — Repoint every canonical, sitemap, and hreflang signal
Redirects do the heavy lifting, but don’t make Google lean on them to fix sloppy internals. Update the actual signals:
- Canonicals. Every page should carry a self-referencing
rel="canonical"pointing at its ownhttps://URL — Google’s site-move guidance states “Each new URL should have a self-referencing rel=“canonical” <link> tag.” A canonical still pointing athttp://fights your migration. (This is exactly the kind of conflicting signal the canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. topic warns about — align every signal on the HTTPS URL.) - Internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them.. Change them in the templates and content to
https://(or protocol-relative/root-relative) — don’t leave thousands of internal links pointing athttp://and relying on the redirect to clean up. Every internalhttp://link is an unnecessary redirect hop for both users and bots. - XML sitemapsAn XML sitemap is a UTF-8 file listing the canonical URLs on your site (with optional lastmod) so search engines can discover and prioritize them. It's a discovery and diagnostic aid, not a guarantee of indexing — and Google ignores its priority and changefreq tags.. Regenerate them with the HTTPS URLs only, listing canonical,
indexable pages, and update
lastmod. Submit the new sitemap in GSC after launch. - HreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others.. If you run an international setup, every hreflang annotation must
reference the HTTPS version of each alternate. Half-migrated hreflang (some
http, somehttps) is a silent, hard-to-diagnose international SEOInternational SEO is the practice of optimizing a site so search engines understand which countries and/or languages it targets, and serve the right version to each user. It spans URL structure, hreflang, and on-page localization. bug. - Structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. and Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. URLs.
og:url, canonical references inside JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal., and any hardcoded absolute URLs should all be HTTPS.
Step 6 — Kill mixed content before launch, not after
The result confirms an HTTP subresource in fetched source. It does not prove that one sampled page represents the whole migrated site.
Use my Website Safety Checker for launch spot checks, then crawl the full HTTPS inventory for mixed resources at scale. Website Safety Checker Free
- Check representative pages for insecure scripts, styles, iframes, images, and media.
- Fix source URLs and confirm the HTTPS resource exists instead of relying only on browser upgrades.
- Repeat the crawl after launch and monitor CSP reports for conditional third-party resources.
Mixed content is an HTTPS page loading a sub-resource over HTTP. It’s the most common launch-day regression. The current terminology (the older “active/passive” split is historical, but you’ll still see it in older docs and tooling) splits it by what the browser does about it:
- Blockable mixed content — scripts, stylesheets, iframesHTML element that displays one webpage inside another — how embeds work.,
XMLHttpRequest/fetch(the old “active” bucket). Browsers block these outright because a tampered script can rewrite the whole page. This is what actually breaks the site after the flip: a blocked stylesheet or JS bundle can leave a page unstyled or non-functional. Fix these first. - Upgradable (optionally-blockable) mixed content — images, audio, video (the old “passive” bucket). Modern browsers increasingly auto-upgrade these requests to HTTPS transparently and block them if the upgrade fails, rather than just warning and displaying them over HTTP; treat “it still loads” as a browser-version-dependent behavior, not a guarantee. Fix next regardless.
- Exceptions exist — some browser/embed contexts (certain plugin-loaded
resources, some legacy
<applet>/<embed>cases) don’t follow either rule cleanly, which is one more reason to verify behavior in the browsers your audience actually uses rather than assuming the general rule.
Find it by crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. the HTTPS site (Ahrefs Site Audit, Screaming Frog), watching the
Chrome DevTools console, or collecting CSP reports. As a transitional proactive net,
the Content-Security-Policy: upgrade-insecure-requests header tells the browser to
silently upgrade http:// sub-resource requests to https:// before it makes them
— but a CSP header doesn’t prove the HTTPS version of every endpoint actually
exists or behaves the same as the HTTP one, and it doesn’t replace fixing the
source URLs or testing in real browsers. One clarification that saves confusion: an
ordinary anchor link to an HTTP page isn’t mixed content — it just navigates.
Step 7 — Get Search Console coverage right
This is the step people underestimate — but it’s a decision, not a universal
checklist. Search Console’s URL-prefix properties track
http://example.com, http://www.example.com, https://example.com, and
https://www.example.com as four separate properties that don’t share data. You
are not required to verify all four:
- A Domain property aggregates every protocol and subdomain variant automatically — add one and it absorbs the switch without you touching anything else. This is the simplest default for most sites.
- URL-prefix properties segment data by exact protocol and host. Keep or add them only if you deliberately want that segmentation — for example, comparing how much HTTP straggler traffic is still arriving against the live HTTPS site. That’s a reporting choice, not a requirement.
Either way:
- Submit the new HTTPS sitemap wherever you’re tracking the site (the Domain property or the HTTPS URL-prefix property).
- Do not use the Change of Address tool. Google is explicit: “If you’re moving your site from HTTP to HTTPS, you don’t need to use the Change of Address tool.” That tool is only for domain-level moves, and using it here is a well-meaning mistake.
- Keep any HTTP properties you already had verified — they’ll show the redirects being processed and the old URLs dropping out of the index, which is useful monitoring signal, not clutter.
- Revisit your disavow file, if you have one — its entries reference HTTP URLs, and it lives per-property.
For diagnosing individual URLs rather than tracking the whole site, GSC’s HTTPS reportA Google Search Console report showing how many of your indexed URLs are served over HTTPS vs HTTP — and, for the HTTP ones, why the secure version isn't being used. It's a diagnostic sample, not a full crawl inventory. flags certificate, redirect, canonical, robots, and sitemap-evaluation reasons a URL didn’t move to HTTPS. Treat it as a sampled diagnostic tool, not a full inventory — it’s sampled and it ignores query parameters when matching URLs, so it won’t catch everything your own crawl would. See the GSC HTTPS report deep diveA Google Search Console report showing how many of your indexed URLs are served over HTTPS vs HTTP — and, for the HTTP ones, why the secure version isn't being used. It's a diagnostic sample, not a full crawl inventory. for how to read it.
Step 8 — Monitoring windows: settling vs. broken
Expect “temporary fluctuation in site ranking during the move” — that’s normal and not a reason to panic or revert. The discipline is telling a settling dip from a broken one:
- A dip that recovers over days to a few weeks is the index swapping HTTP URLs for HTTPS ones. Google notes a small-to-medium site takes a few weeks for most pages to move; larger sites take longer.
- A dip that sticks means something broke — a stray
robots.txtblock, anoindexthat survived from staging, canonicals still pointing athttp://, internal links en masse still on HTTP, or redirect chains bleeding equity.
There’s no fixed recovery window — track these independently rather than waiting for one number to say “done”:
- TLS/browser behavior — certificate validity and chain, and the actual DevTools console on representative pages (no mixed-content errors, no certificate warnings). This is the one Search metrics won’t tell you about.
- GSC Crawl Stats on wherever you’re tracking the site — you want to see
GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. fetching the HTTPS URLs and the response-code mix staying healthy
(mostly
200+ the301s on old URLs). A spike in5xxmeans your server is struggling under the new load. - Page Indexing report — HTTPS URLs moving to “Indexed,” HTTP URLs moving to “Page with redirectA Google Search Console Page Indexing status for a URL that redirects elsewhere. It's not indexed by design because it's a redirect — the destination is a separate question, and Google says the target may or may not end up indexed — usually expected, not an error (unlike the separate \"Redirect error\")..” That crossover is exactly what you want to see.
- URL Inspection on a few key pages — confirm the reported canonical is the HTTPS URL and the page renders without mixed content.
- Server logs — the ground truth for which URLs bots actually hit and what status they got. Watch for bots still hammering HTTP URLs (fine, briefly) or hitting chains/loops (not fine).
- Analytics and business outcomes — a chunk of “direct” traffic can appear because HTTPS→HTTP referral data gets stripped, so make sure your own outbound links go to HTTPS destinations; also track conversions/revenue independently — a ranking metric recovering doesn’t guarantee the business metrics did too.
Monitor actively for 2–4 weeks as a rule of thumb, then keep a lighter eye on it until indexing fully crosses over — larger or slower-crawled sites can take longer, and there’s no guaranteed end date.
Step 9 — Keep the redirects, and add HSTS deliberately
- Keep the 301s for the long haul. Google’s guidance is “as long as possible,
generally at least 1 year” — that’s a floor Google recommends, not an
expiration date after which it’s safe to remove them. In practice, keep them
for the life of the site — external links and bookmarks on the old
http://URLs never fully disappear. - HSTS is a second layer, not a replacement. The
Strict-Transport-Securityheader tells browsers to always use HTTPS for your domain, closing the “first-request problem” (that very first request from a new visitor still goes out over HTTP before the 301 fires — the window an SSL-stripping attacker wants). But when a browser honors HSTS it performs a browser-only 307 internal redirect that crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. never see — search engines still need your server-side 301. You need both. - Treat HSTS preload as slow and risky to reverse — not a literal one-way door.
Submitting to the browser-baked preload list (which requires
max-ageof at least a year,includeSubDomains— meaning the policy applies to every subdomain, not just the one you submitted, so any subdomain that isn’t fully HTTPS-ready breaks under it — andpreload) closes the gap even for first-time visitors. Removal is genuinely possible via hstspreload.org, but it’s slow (the change has to propagate through browser release cycles) and every browser already on the old list keeps enforcing HTTPS-only until it updates — operationally risky, not literally irreversible. Google’s warning is blunt: “Don’t enable HSTS until you’re certain your site operation is robust enough to avoid ever deploying HTTPS with certificate validation errors.”
Step 10 — Have a rollback plan (and know its limits)
Even a low-risk migration deserves an exit — but the default move when something
breaks is to repair HTTPS, not revert to HTTP. A “rollback” is a limited safety
net, not a guaranteed reversal: cached 301s in browsers and CDNs, Secure-flagged
cookies, service workers registered under the HTTPS origin, and HSTS/preload policy
can all make serving HTTP again unsafe or simply ineffective for a chunk of your
visitors, even if you did everything right on launch.
Before you flip:
- Time the launch for low traffic — Google explicitly suggests you “time your move to coincide with lower traffic, if possible.” A quiet window means fewer users hit any launch-day bug and you have room to react.
- Keep HTTP serving underneath the redirect. Don’t tear down the HTTP listener; keep it alive so the 301s have something to fire from, and so a redirect-rule revert is available as an option if the HTTPS site is badly broken.
- Do not enable HSTS on day one. HSTS (and especially preload) makes an HTTP rollback far less viable — once a browser has cached the policy, it won’t talk HTTP to your domain regardless of what your server does. Add HSTS only after the HTTPS site has proven stable for a while.
- Define your abort criteria in advance — e.g., site-wide
5xx, a redirect loop, or mass mixed-content blocking. When you hit them, work the problem in this order: (1) can you fix the HTTPS bug directly (bad cert, missing resource, broken canonical)? Usually yes, and that’s faster and safer than reverting. (2) Only if HTTPS itself is unusable, revert the redirect rule as a stopgap — and expect it to be incomplete: previously cached redirects, cookies, and service workers won’t un-cache themselves just because your server changed its mind.
Diagnose calmly rather than debugging live, and treat “revert to HTTP” as a break-glass option you hope never to need — not a routine, clean undo.
AI summary
A condensed take on the Advanced version:
- It’s a protocol-only migration — conditionally. Same host, paths, query strings, content, and platform; only the scheme changes. Lowest-risk migration there is if all five hold, so URLs map one-to-one and the redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. logic is usually a single rule. No Change of Address toolA setting in Google Search Console that tells Google you've moved your whole site to a new domain or subdomain. It's a supporting signal for a domain migration — the 301 redirects do the real work of transferring rankings. (that’s for domain moves). If anything else is also changing, treat it as a stacked migration instead.
- Benchmark first: full crawl (save every 200 + existing redirect), rankings snapshot, GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. export (data doesn’t transfer to the HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' property), backlink profile, current robots/noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed..
- Certificate: the ranking signal is scheme-based, so a free DV cert (Let’s Encrypt) earns the same lightweight signal as any paid cert; OV/EV buy identity, not rankings — don’t promise a ranking boost for any cert type or key algorithm. 2,048-bit key; watch wildcard scope (one label deep); automate renewal. Google generally prefers HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' as canonical, but that preference is conditional — a bad cert, insecure dependencies, an HTTPS→HTTP redirect, or an HTTP canonical tag can flip it back to HTTP, and HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. can’t override that.
- Rehearse on staging — every path shape redirects, no loops, no blockable mixed
content, canonicals already emit HTTPS; remove any migration-only
noindexbefore it reaches production. - The flip: 301 every URL one-to-one, server-side (301s don’t lose PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems.); no chains (redirect to the final HTTPS destination in one hop); never mass-redirect to the homepage; then repoint canonicals (self-referencing HTTPS), internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others., and OG/JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. URLs.
- Mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable.: current terms are blockable (scripts/styles/iframesHTML element that displays one webpage inside another — how embeds work./XHR —
browsers block outright, fix first) and upgradable (images/audio/video —
modern browsers auto-upgrade to HTTPS or block on failure, not just warn); the
old active/passive split is historical.
upgrade-insecure-requestsCSP is a transitional net, not proof the HTTPS endpoint exists. Anchor links to HTTP pages aren’t mixed content. - Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. is a decision, not a universal count. Add one Domain
property (aggregates every scheme/host variant automatically) — URL-prefix
properties (
http,https,http-www,https-www) are optional segmentation, not a requirement. Submit the HTTPS sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.; review the disavow file. The GSC HTTPS reportA Google Search Console report showing how many of your indexed URLs are served over HTTPS vs HTTP — and, for the HTTP ones, why the secure version isn't being used. It's a diagnostic sample, not a full crawl inventory. is a sampled diagnostic tool (ignores query parameters), not a full inventory. - Monitor independently, no fixed window: TLS/browser behavior, Crawl Stats, Page IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., URL Inspection, logs, and analytics/business outcomes each tell a different part of the story. A dip that recovers over days to weeks is settling; a dip that sticks means something broke (stray block, lost canonical, HTTP internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., chains).
- Keep redirects ≥ 1 year as a floor, not an expiration date (most sites keep them indefinitely). HSTS is a browser-only 307 crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. never see — on top of, not instead of, the 301. Preload is slow and risky to reverse — genuinely possible via hstspreload.org, but not something to rush into.
- Rollback plan, with limits: repair HTTPS first — that’s usually faster and safer than reverting. Launch at low traffic, keep HTTP serving, don’t enable HSTS on day one, define abort criteria — but cached redirects, cookies, and service workers can make a true HTTP rollback incomplete even then.
Official documentation
Primary-source documentation for planning and executing the migration.
- Site moves with URL changes — the migration playbook: server-side 301s, one-hop redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., self-referencing canonicals, “keep redirects at least 1 year,” “no Change of Address toolA setting in Google Search Console that tells Google you've moved your whole site to a new domain or subdomain. It's a supporting signal for a domain migration — the 301 redirects do the real work of transferring rankings. for HTTP→HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.',” and “time your move to coincide with lower traffic.”
- Consolidate duplicate URLs — Google’s conditional HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' canonical-preference guidance: HTTPS is generally preferred, but a bad certificate, insecure dependencies, an HTTPS→HTTP redirect, or an HTTP canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. can flip that preference back to HTTP.
- Enable HTTPS on your servers (web.dev) — certificates, 2,048-bit keys, 301-to-HTTPS-canonical, HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open., and cookies.
- Why HTTPS matters (web.dev) — the security and browser-feature case for switching.
- Fixing mixed content (web.dev) — blockable vs. upgradable (optionally-blockable) mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable. — the current terms for what’s historically called active/passive — and
upgrade-insecure-requests. - HTTPS as a ranking signal (2014) — the original “very lightweight signal” post, plus Google’s implementation notes (cert type, relative URLs, don’t block HTTPS in robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.).
- Understanding page experience — where HTTPS and the GSC HTTPS reportA Google Search Console report showing how many of your indexed URLs are served over HTTPS vs HTTP — and, for the HTTP ones, why the secure version isn't being used. It's a diagnostic sample, not a full crawl inventory. sit.
Certificates & configuration
- Let’s Encrypt — free, automated DV certificates with built-in renewal.
- SSL Labs Server Test — grade your TLS configuration after install.
- hstspreload.org — HSTS preloadHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. eligibility and the removal warnings.
Chrome / Chromium
- A secure web is here to stay (2018) — Chrome 68 marking all HTTP “not secure,” the deadline that pushed most sites to migrate.
Quotes from the source
On-the-record statements that govern how a migration should be run. Each deep link jumps to the quoted passage on the source page.
Google — redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. and PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems.
- “301 and other permanent redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. don’t cause a loss in PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems..” — Google Search Central. Jump to quote
- “Keep the redirects for as long as possible, generally at least 1 year.” — Google Search Central. Jump to quote
- “Each new URL should have a self-referencing rel=“canonical” <link> tag.” — Google Search Central. Jump to quote
Google — the HTTP→HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' specifics
- “If you’re moving your site from HTTP to HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', you don’t need to use the Change of Address tool.” — Google Search Central. Jump to quote
- “Expect temporary fluctuation in site ranking during the move.” — Google Search Central. Jump to quote
Google — HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. and certificates (web.dev)
- “Use HTTP Strict Transport SecurityHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. (HSTS) to avoid the cost of the 301 redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank..” — web.dev (Google). Jump to quote
- “Don’t enable HSTS until you’re certain your site operation is robust enough to avoid ever deploying HTTPS with certificate validation errors.” — web.dev (Google). Jump to quote
Gary Illyes — the signal is scheme-based
- “Basically looking at the first five characters in front of the URL, and if it’s HTTPS … it will get a minimal boost.” — Gary Illyes, Google, 2016 (via Search Engine Land). Read the coverage
Which path should I take?
“Am I changing anything besides the scheme?”
- Only
http://→https://— same host, paths, query stringsThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO., content, and platform → this article’s protocol-only playbook. One redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. rule, no Change of Address tool. - Also changing domain, hostnames/subdomains, URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly., content, or CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms./platform → stop. That’s a higher-risk stacked migration — run the full site migrationA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once. playbook and fold HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' into it.
“Which certificate do I need?”
- Just need the HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' scheme + the ranking signal → a free DV cert (Let’s Encrypt). Same lightweight signal as anything paid — don’t pay more expecting a ranking boost.
- Want a visible organization name / regulated industry → OV/EV — but understand it buys identity, not SEO.
- Multiple subdomains → wildcard covers one label deep only; deep subdomains need a SAN/multi-domain cert.
“A ranking dip appeared after launch — panic or wait?”
- It’s within the first couple of weeks and slowly recovering → wait. That’s the indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. swapping HTTP for HTTPS. Normal.
- It’s not recovering after several weeks → something broke. Check, in order:
stray
robots.txtblock → survivingnoindex→ canonicals still onhttp://→ internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. still onhttp://→ redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. → mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable. blocking pages.
“Should I turn on HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. now?”
- It’s launch day / the migration isn’t proven stable yet → no. HSTS makes an HTTP rollback far less viable if you need one.
- HTTPS has run cleanly for a while and renewal is automated → add the header.
- Considering the preloadResource hints are <link> elements (or equivalent HTTP Link headers) that tell the browser to do network work — DNS lookups, connection setup, or fetching a resource — earlier than it would discover the need on its own. The main ones are dns-prefetch, preconnect, preload, modulepreload, and prefetch. list? → only when you’re certain you won’t need to revert; removal is genuinely possible but slow and operationally risky, not a literal one-way door.
“Do I need to verify all four Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. properties?”
- Just want continuity, no interest in segmented data → no. Add one Domain property; it covers every scheme/host variant automatically.
- Want to compare HTTP straggler traffic against the live HTTPS site → keep or add the individual URL-prefix properties for that segment — optional, not required.
“Do I need the Change of Address toolA setting in Google Search Console that tells Google you've moved your whole site to a new domain or subdomain. It's a supporting signal for a domain migration — the 301 redirects do the real work of transferring rankings.?”
- HTTP → HTTPS, same domain → no. Google says so explicitly.
- Changing the actual domain → yes — but that’s a different migration.
“An old URL doesn’t have an obvious HTTPS twin — where does it redirect?”
- For a protocol switch there’s always a twin → same path on
https://, one hop. - The page is genuinely gone → that’s a content decision (
404/410or redirect to the closest relevant page) — don’t mass-dump it on the homepage.
HTTP → HTTPS migration checklist
Before (benchmark + prep)
- Full crawl of the live HTTP site saved (every
200+ every existing redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. + target). - Rankings snapshot, GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. export (Performance, Page IndexingThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason., Crawl StatsA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root).), and backlink profile archived.
- Current
robots.txtandnoindexdirectives recorded. - TLS certificateAn SSL/TLS certificate is the file a server presents during the TLS handshake to prove who controls the domain (to a level that depends on the validation type) and to supply the public key that encrypts the connection. It's what makes https:// possible — but Google's ranking signal only checks the URL scheme, not which certificate issued it. obtained (free DV is fine), 2,048-bit key, auto-renewal configured.
- Wildcard scope checked against your subdomain depth.
- Whole flip rehearsed on staging: every path shape redirects, no loops, no blockable mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable., canonicals emit HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.'.
- Launch timed for a lower-traffic window.
- Confirmed this is truly protocol-only: host, paths, query stringsThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO., content, and platform are all unchanged.
The flip
- Every HTTP URL 301-redirects, server-side and one-to-one, to its HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' twin.
- No redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. — old URLs land on the final HTTPS destination in one hop.
- No bulk redirects to the homepage for unmatched URLs.
- Each page self-references
rel="canonical"to its HTTPS URL. - Internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., XML sitemapsAn XML sitemap is a UTF-8 file listing the canonical URLs on your site (with optional lastmod) so search engines can discover and prioritize them. It's a discovery and diagnostic aid, not a guarantee of indexing — and Google ignores its priority and changefreq tags., and hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. updated to HTTPS (not left to redirects).
-
og:url/ JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. / hardcoded absolute URLs updated to HTTPS. - Blockable mixed content (scripts, styles, iframesHTML element that displays one webpage inside another — how embeds work., XHR) fixed — these get blocked outright.
- Upgradable mixed content (images, media) fixed — don’t rely on browser auto-upgrade alone;
upgrade-insecure-requestsCSP set as a transitional net, not a fix. - Any migration-only
noindexorrobots.txtblock removed.
Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. & after
- Domain property added in GSC (recommended default) — or HTTPS URL-prefix properties verified individually if you specifically want segmented data.
- New HTTPS sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. submitted; old HTTP properties kept verified for monitoring, if you had them.
- Change of Address toolA setting in Google Search Console that tells Google you've moved your whole site to a new domain or subdomain. It's a supporting signal for a domain migration — the 301 redirects do the real work of transferring rankings. not used (domain moves only).
- Disavow file (if any) reviewed for HTTP URLs.
- Redirects kept at least 1 year as a floor, not a removal date — ideally for the life of the site.
- HTTP listener kept alive underneath the redirect (limited rollback safety net, not a guaranteed undo).
- HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. not enabled on launch day; added only after HTTPS proves stable.
- TLS/browser behavior, Crawl Stats, Page IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., URL Inspection, logs, and analytics/business outcomes monitored for 2–4 weeks (no fixed end date); a dip that doesn’t recover = something broke.
Standard operating procedure: run the migration
A repeatable runbook. Assign an owner to each phase; don’t skip the staging rehearsal.
T-minus (a week out) — benchmark & build
- Crawl the live HTTP site; export the full URL list with status codes and existing redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't..
- Export GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. (Performance, Page IndexingThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason., Crawl StatsA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root).) and snapshot rankings + backlinks.
- Obtain and install the DV certificate on staging; confirm the chain validates (SSL Labs).
- Build the single server-side 301 rule (
http→https, preserve path + query). - Update templates so canonicals, internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others., and OG/JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. emit HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.'.
- Run the mixed-content sweep on staging; fix all blockable, then upgradable.
T-zero (launch, low-traffic window)
7. Deploy the cert to production; confirm HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' serves with a valid chain.
8. Enable the 301 rule. Immediately spot-check: a handful of URLs each return a single 301 to the correct HTTPS URL.
9. Confirm the homepage and top templates render with no console mixed-content errors.
10. Remove any migration-only noindex/robots.txt block.
T-plus (first hour → first day)
11. Re-crawl the old HTTP URL list; confirm one-hop 301s, no chains, no 404s, no loops.
12. Add a Domain property in GSC (recommended default), or verify the HTTPS URL-prefix properties individually only if you want segmented data; submit the HTTPS sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing..
13. Watch server logs and error rates for 5xx spikes under the new load.
T-plus (first 2–4 weeks) 14. Monitor GSC Crawl Stats + Page IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. daily: HTTPS URLs → “Indexed,” HTTP URLs → “Page with redirectA Google Search Console Page Indexing status for a URL that redirects elsewhere. It's not indexed by design because it's a redirect — the destination is a separate question, and Google says the target may or may not end up indexed — usually expected, not an error (unlike the separate \"Redirect error\")..” 15. Spot-check URL Inspection on key pages: reported canonical = HTTPS, renders clean. 16. Compare against your benchmark; distinguish a recovering dip (settling) from a stuck dip (broken) and fix the latter. 17. Review the disavow file for HTTP URLs.
T-plus (stable → ongoing) 18. Once HTTPS is proven stable and renewal is automated, add the HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. header. 19. Consider preload only if you’re confident you won’t need to revert — removal is possible but slow and operationally risky. 20. Keep the 301s and the HTTP listener for at least a year (a floor, not a removal date) — ideally permanently. If an incident ever hits, repair HTTPS before considering an HTTP rollback; caching, cookies, and service workers can make that rollback incomplete.
Playbooks by situation
Small site (a few hundred URLs) on shared hosting
Get a free Let’s Encrypt cert (most hosts one-click it), add the single 301 rule,
update internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. and the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., run one mixed-content pass in DevTools, verify
the HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' Domain property in GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.. You can do the whole thing in an afternoon. The
main risk is a forgotten hardcoded http:// asset — sweep for it.
Large site (100k+ URLs) behind a CDN
Put the 301 at the edge (CDN/reverse proxy) so it’s one rule at scale, not
per-app logic. Benchmark hard first — the “before” crawl and GSC export are your only
safety net. Expect the indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. crossover to take longer than a small site; monitor
Crawl StatsA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root). for 5xx under load and watch for redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. where legacy HTTP
redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. now stack. Re-crawl in batches to confirm one-hop 301s.
Site with an existing redirect layer (past migrations, vanity URLs)
The trap is stacking: http://old → http://new → https://new. Rewrite the
source rules so every old URL reaches the final HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' destination in one hop.
Audit for chains explicitly after launch — this is where equity leaks.
International site with hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others.
Every hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. annotation and its return links must reference HTTPS alternates.
A half-migrated hreflang cluster (some http, some https) silently breaks
targeting. Regenerate all annotations from a single source of truth on HTTPS.
You already flipped and rankings dropped and haven’t recovered
Work the diagnosis in order: (1) is anything blocked in robots.txt or carrying a
leftover noindex? (2) do canonicals point at https://? (3) are internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. on
HTTP? (4) are there redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. or loops? (5) is blockable mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable.
breaking pages, or a bad certificate flipping Google’s canonical preference back to
HTTP? Most “HTTPS killed my rankings” stories are one of these five — not the
protocol switch itself. Fix the underlying HTTPS problem directly; don’t jump to an
HTTP rollback as the first move.
What not to do
- Redirecting everything to the homepage. The single most damaging migration mistake. Every old URL must reach its own HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' twin. Google explicitly warns against redirecting many old URLs to one irrelevant destination like the home page.
- Using 302 instead of 301. A 302 is “temporary” and signals the move isn’t permanent. Use 301 so engines fully transfer the URL and its equity.
- Building redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency..
http://a→http://b→https://bwastes crawl budget and speed. RedirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. to the final HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' destination directly. - Leaving internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. on
http://. Relying on the 301 to “clean up” internal links means every internal click and every crawl hits a redirect. Fix the links. - Canonicals still pointing at
http://. A self-canonical that references the old scheme fights the migration and confuses canonical selectionHow search engines pick one canonical URL among duplicates and consolidate signals onto it.. - Ignoring blockable mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable. until after launch. A blocked stylesheet or JS bundle can leave pages broken for real users on day one. Fix blockable mixed content before the flip.
- Using the Change of Address toolA setting in Google Search Console that tells Google you've moved your whole site to a new domain or subdomain. It's a supporting signal for a domain migration — the 301 redirects do the real work of transferring rankings. for a protocol switch. It’s for domain moves. Google says you don’t need it here.
- Assuming you must verify all four GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. properties. You don’t — a single Domain property aggregates every scheme/host variant automatically. (Verifying only the old HTTP property and nothing HTTPS-aware is still the real mistake to avoid.)
- Enabling HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. (or preloadResource hints are <link> elements (or equivalent HTTP Link headers) that tell the browser to do network work — DNS lookups, connection setup, or fetching a resource — earlier than it would discover the need on its own. The main ones are dns-prefetch, preconnect, preload, modulepreload, and prefetch.) on launch day. It makes an HTTP rollback far less viable if the HTTPS site turns out to be broken. Add it only after HTTPS is proven stable.
- Leaving a migration-only
noindexin production. Anoindexorrobots.txtblock you added to protect staging, forgotten and shipped, quietly deindexes the new site. - Tearing down the HTTP listener immediately. Keep it alive so the 301s have something to fire from and so a redirect-rule revert is at least an option.
- Treating “keep HTTP alive” as a guaranteed rollback. Cached redirects, cookies, and service workers can make serving HTTP again unsafe or incomplete — repair HTTPS first, and treat reverting as a last resort, not a routine undo.
HTTP → HTTPS migration — cheat sheet
RedirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. & mapping facts
| Item | Detail |
|---|---|
| Migration type | Protocol-only (same host, paths, query stringsThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO., content, platform) — lowest risk if all five hold |
| Redirect | 301, server-side, one-to-one, one hop |
| PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. on 301 | No loss |
| Chains | Avoid — redirect to the final HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' URL directly (≤10 hops tolerated) |
| Unmatched URLs | Send to their own HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' twin — never the homepage |
| Change of Address toolA setting in Google Search Console that tells Google you've moved your whole site to a new domain or subdomain. It's a supporting signal for a domain migration — the 301 redirects do the real work of transferring rankings. | Not needed for HTTP→HTTPS (domain moves only) |
| Keep redirects | ≥ 1 year as a floor, not a removal date (ideally forever); keep HTTP listener alive as a limited safety net |
Certificate facts
| Item | Detail |
|---|---|
| Cert type for SEO | Free DV (Let’s Encrypt) = same lightweight signal as OV/EV — no ranking boost for any cert type |
| What the signal checks | The URL scheme, not certificate validity or key algorithm |
| Expired/invalid cert | Not scheme-based-safe: it can flip Google’s canonical preference back to HTTP, on top of breaking the page for users |
| Key strength | 2,048-bit RSA |
| Wildcard scope | One DNS label deep (*.example.com ≠ foo.bar.example.com) |
Signals to repoint
| Signal | Update to |
|---|---|
| Canonicals | Self-referencing https:// |
| Internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. | https:// (not left to redirects) |
| XML sitemapsAn XML sitemap is a UTF-8 file listing the canonical URLs on your site (with optional lastmod) so search engines can discover and prioritize them. It's a discovery and diagnostic aid, not a guarantee of indexing — and Google ignores its priority and changefreq tags. | HTTPS URLs only, refreshed lastmod |
| HreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. | HTTPS alternates + return links |
| OG / JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. / hardcoded URLs | HTTPS |
Mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable. & HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open.
| Type (current term) | Old term | Browser behavior | Priority |
|---|---|---|---|
| Blockable (scripts, styles, iframesHTML element that displays one webpage inside another — how embeds work., XHR) | “Active” | Blocked outright | Fix first |
| Upgradable (images, audio, video) | “Passive” | Auto-upgraded to HTTPS or blocked on failure (modern browsers) | Fix next — don’t rely on auto-upgrade |
upgrade-insecure-requests (CSP) | — | Transitional auto-upgrade net; doesn’t prove the HTTPS endpoint works | Not a substitute for fixing source URLs |
| HSTS | — | Browser-only 307; crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. don’t see it | On top of 301, not instead |
| HSTS preload | — | Slow, operationally risky to reverse — not literally irreversible | Don’t enable on launch day |
GSC properties
A Domain property aggregates every scheme/host variant automatically —
recommended default. URL-prefix properties (http://example.com ·
http://www.example.com · https://example.com · https://www.example.com) are
optional segmentation, not a universal requirement.
Force the 301 (server-side)
Do the protocol redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. in server/edge config, not app code. Test on staging first — a botched rule can create a redirect loopA redirect loop is a chain of redirects that circles back on itself instead of ever reaching a live page — URL A redirects to B and B redirects back to A (or a longer cycle). No page ever returns a 200, so browsers show ERR_TOO_MANY_REDIRECTS and crawlers can't index anything. that locks everyone out.
Apache (.htaccess)
# 301 every HTTP request to the same path on HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]Nginx
# Dedicated port-80 server block that 301s to HTTPS, preserving host + path
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
} Verify a URL returns a clean single-hop 301
Confirm each old URL 301s straight to its HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' twin — not a 302, not a chain.
macOS / Linux
# Show every hop and status code for one URL
curl -sIL http://example.com/some/page \
| grep -Ei '^(HTTP/|location):'
# Want a single 301 -> https://example.com/some/page -> 200, no extra hopsWindows (PowerShell)
# Follow redirects and print each status + Location
$r = Invoke-WebRequest -Uri "http://example.com/some/page" -MaximumRedirection 10
$r.BaseResponse.ResponseUri.AbsoluteUri # final URL should be https://Find mixed content left in the HTML
Grep a rendered page for insecure sub-resources (scripts/styles/images/iframesHTML element that displays one webpage inside another — how embeds work.).
macOS / Linux
curl -s https://example.com/ \
| grep -Eo '(src|href)="http://[^"]+"' \
| sort -uChrome DevTools Console — flag insecure sub-resources on the live page
Paste into the Console on any HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' page to list every element still pointing at
http:// (skips ordinary anchor links, which aren’t mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable.):
[...document.querySelectorAll('[src],link[href],iframe[src]')]
.map(el => el.src || el.href)
.filter(u => u && u.startsWith('http://'))
.forEach(u => console.warn('Insecure sub-resource:', u));Batch-check a URL list after launch (single-hop 301s)
Feed your saved HTTP URL list in and flag anything that isn’t a clean one-hop 301.
macOS / Linux
# urls.txt = one http:// URL per line (from your pre-migration crawl)
while read -r u; do
code=$(curl -s -o /dev/null -w '%{http_code}' -I "$u")
loc=$(curl -sI "$u" | awk -F': ' 'tolower($1)=="location"{print $2}' | tr -d '\r')
echo "$code $u -> $loc"
done < urls.txtFor a whole-site sweep, a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. (Ahrefs Site Audit, Screaming Frog) is faster than scripting URL by URL — but these snippets are handy for spot-checks and CI.
Audit the migration mapping before launch
Act as a technical SEO reviewing an HTTP-to-HTTPS migration. I will provide a crawl
of live HTTP URLs, the current redirect export, the proposed HTTPS URL list, and a
staging crawl.
For every old URL, determine whether it maps one-to-one to the same host, path, and
query on HTTPS. Flag redirect chains, loops, 302s, homepage dumps, missing targets,
HTTP canonicals, HTTP internal links, HTTP sitemap or hreflang entries, blockable
mixed content, and staging noindex/robots blocks.
Return a table with old URL, observed status, first target, final target, expected
target, issue, severity, owner, and retest. Separate launch blockers from normal
post-launch index settling. Do not recommend the Change of Address tool for this
protocol-only move. Diagnose a post-launch decline
Compare the pre-launch crawl and Search Console exports with the post-launch crawl,
logs, Page Indexing, Crawl Stats, and URL Inspection samples. Test for blocked
crawling, surviving noindex, HTTP canonicals or internal links, redirect chains or
loops, 5xx responses, and mixed-content rendering failures. Explain which evidence
shows normal HTTP-to-HTTPS canonical crossover and which evidence shows a broken
migration. Give the smallest reversible fix and a validation query for each finding. A protocol-only migration framework
Treat HTTP→HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' as four linked systems rather than a certificate installation:
- Transport: HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' serves a valid certificate and complete chain on every required hostname.
- Routing: Each HTTP URL returns one permanent, server-side redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. to its exact HTTPS twin. The 301 is the bridge that preserves URL meaning; Google says permanent redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. do not lose PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems..
- Signals: Canonicals, internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others., and structured URL references all agree on HTTPS instead of making crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. rediscover the move through redirects.
- Observation: A saved baseline, post-launch crawl, logs, and Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. distinguish an expected index crossover from a technical failure.
The protocol-only scope keeps risk low only when host, path, query behavior, content, and renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. stay equivalent. If those change at the same time, split the work into separate migrations so each failure has a diagnosable cause.
Patrick's relevant free tools
- HTTP Header Checker — Inspect complete response headers across every redirect hop, with separate security and SEO grades, CDN/edge fingerprints, compression details, and a staging-versus-production diff.
- Website Safety & Security Checker — Get an honest, graded security snapshot: response headers, insecure resource and form signals, security.txt, registry age, fetch/TLS outcome, and optional Google Web Risk advisory evidence.
- DNS Checker — Compare A, AAAA, CNAME, MX, TXT, NS, SOA, CAA, SRV, and PTR answers from Cloudflare and Google to spot DNS propagation differences.
Migration verification tools
- Redirect Checker — inspect an individual HTTP URL’s full path and confirm it reaches the matching HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' URL in one hop.
- Bulk HTTP Status Code Checker — retest the saved pre-launch URL set for permanent redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank., broken targets, loops, and unexpected statuses.
- Canonicalization Checker — verify the final HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' page declares the intended HTTPS canonical rather than pointing back to HTTP.
Export results before and after launch. A tool result is most useful when it can be compared with the approved URL mapping instead of judged in isolation.
Migration release tests
Test 1: staging rehearsal
- Purpose: Prove content and signals are HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.'-ready before redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. affect users or crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..
- Method: Crawl representative paths and templates on staging; inspect canonicals, internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others., sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., robots directives, and rendered resource URLs.
- Expected result: Pages render equivalently, emit HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' signals, contain no blockable mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable., and carry no migration-only crawl or indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. block.
- Failure trigger: HTTP signals, blocked resources, certificate errors, or a
surviving
noindex/robots restriction. - Next action: Hold the launch and correct the source template or configuration.
Test 2: one-to-one redirect replay
- Purpose: Confirm the production routing preserves every old URL’s destination.
- Method: Replay the saved HTTP URL crawl through the bulk status checker and compare first and final destinations with the approved mapping.
- Expected result: Each old URL returns one permanent redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. to its exact HTTPS twin, whose final response is healthy.
- Failure trigger: A chain, loop, 302, homepage dump, changed path/query, 4xx, or 5xx destination.
- Next action: Correct the source redirect rule; keep the HTTP listener available for rollback until the replay passes.
Test 3: post-launch search-signal check
- Purpose: Verify crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. receive a consistent migration story.
- Method: Inspect key HTTPS URLs and monitor logs, Crawl StatsA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root)., and Page IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. against the saved baseline.
- Expected result: HTTPS URLs are crawled and selected as canonical while HTTP URLs increasingly appear as redirected; response errors remain within the site’s established baseline.
- Failure trigger: Persistent HTTP canonicals, widespread blocked crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., redirect loopsA redirect loop is a chain of redirects that circles back on itself instead of ever reaching a live page — URL A redirects to B and B redirects back to A (or a longer cycle). No page ever returns a 200, so browsers show ERR_TOO_MANY_REDIRECTS and crawlers can't index anything., or a material 5xx increase.
- Next action: Apply the predefined reversible fix; do not enable HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. until the HTTPS release is stable.
Resources worth your time
My speaking
- Better Safe Than Sorry with HTTPS — SMX East 2016 (SlideShare) — my deep-dive on TLS, the common HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' implementation failures, and the migration gotchas: 302-instead-of-301 mistakes, missing HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' canonicals, TLS SNI misconfigurations that can get you de-indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. by Bing/Baidu, and the referral-data (“dark trafficAI traffic attribution is the practice of correctly identifying and measuring website visits that come from AI tools — ChatGPT, Perplexity, Gemini, Claude, AI Overviews, and AI browsers. It's hard because many of those tools strip the referrer header, so the visits land in your analytics as Direct traffic with no source.”) loss on HTTPS→HTTP links. (Standing disclaimer applies: it’s my understanding of these systems, and the adoption stats in it are from 2016.)
My related writing
- The Beginner’s Guide to Technical SEO — where migrations and HTTPS fit in the bigger picture.
From around the industry
- Google’s Site moves with URL changes — the canonical migration playbook (server-side 301s, one-hop redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., keep redirects ≥1 year, no Change of Address toolA setting in Google Search Console that tells Google you've moved your whole site to a new domain or subdomain. It's a supporting signal for a domain migration — the 301 redirects do the real work of transferring rankings. for HTTP→HTTPS).
- Google’s Enable HTTPS on your servers and Fixing mixed content — the most useful concentrated implementation docs.
- Let’s Encrypt — free, automated DV certificates with built-in renewal; all you need for the ranking signal.
- SSL Labs Server Test — grade your TLS configuration once the cert is installed.
- hstspreload.org — check eligibility (and read the removal warnings) before you commit to preloadResource hints are <link> elements (or equivalent HTTP Link headers) that tell the browser to do network work — DNS lookups, connection setup, or fetching a resource — earlier than it would discover the need on its own. The main ones are dns-prefetch, preconnect, preload, modulepreload, and prefetch..
- HSTS — What It Is and How to Use It (Kinsta) — practical HSTSHSTS (HTTP Strict Transport Security) is a response header that tells browsers to always connect to your site over HTTPS — even when a user types or clicks an http:// link — closing the insecure-first-request gap that a plain 301 redirect leaves open. guide covering the preload lock-in risk.
- HTTPS Is Easy (Troy Hunt) — short video series demystifying TLS setup from scratch.
Stats worth citing
- 301 redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. don’t lose PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems.. Google’s flat statement — the number that kills the “switching to HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' costs link equity” myth and defines the whole migration approach. Source
- Keep redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. at least 1 year. Google’s own recommended minimum — not a cutoff after which removal is safe; most sites keep them indefinitely. Source
- All HTTP pages marked “Not Secure” since Chrome 68 (July 2018). The deadline that turned HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' migration from optional to table stakes. Source
- ~89% of websites now use HTTPS. The migration is about not being the holdout, not about a ranking gain (W3Techs, 2026; confirm the current figure).
- GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. follows up to 10 hops in a redirect chainA → B → C instead of A → C. Each hop loses link equity and adds latency., but Google advises redirecting to the final destination directly — the ceiling behind the “no chains” rule. Source
Test yourself: HTTP to HTTPS Migration
Five quick questions on running an HTTP→HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' migration. Pick an answer for each, then check.
HTTP to HTTPS Migration
An HTTP to HTTPS migration is the process of moving every URL on a site from the insecure http:// scheme to the encrypted https:// scheme — installing a TLS certificate and 301-redirecting each old URL to its secure equivalent. Done correctly, it doesn't lose rankings or PageRank.
Related: HTTPS
HTTP to HTTPS Migration
An HTTP to HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' migration is a protocol-only site migrationA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once.: the content, the paths, and the domain stay the same, but every URL switches from http:// to https://. You install a TLS certificateAn SSL/TLS certificate is the file a server presents during the TLS handshake to prove who controls the domain (to a level that depends on the validation type) and to supply the public key that encrypts the connection. It's what makes https:// possible — but Google's ranking signal only checks the URL scheme, not which certificate issued it., redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. each old URL to its secure twin, and repoint every signal (canonicals, internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others.) at the HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' versions.
The reassuring part is that a clean protocol switch keeps your rankings. Google is explicit that “301 and other permanent redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. don’t cause a loss in PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems.,” and because you’re not changing the domain, you don’t need the Change of Address toolA setting in Google Search Console that tells Google you've moved your whole site to a new domain or subdomain. It's a supporting signal for a domain migration — the 301 redirects do the real work of transferring rankings. — that tool is only for domain-level moves.
The risk isn’t the switch itself; it’s the mistakes around it. The usual failures: missing or chained redirects, internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. left pointing at http://, mixed contentMixed content is when a page served over HTTPS loads a sub-resource — a script, stylesheet, image, iframe, or similar — over insecure HTTP. Browsers' current taxonomy is upgradable versus blockable; active mixed content (scripts, styles, iframes) is blocked, and passive mixed content (images, audio, video) is warned about or increasingly auto-upgraded, with exceptions like CORS-enabled images and srcset/picture candidates that are blockable, not upgradable. (an HTTPS page loading an HTTP script or image) breaking pages on launch day, forgetting that Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. treats http://, https://, http://www, and https://www as four separate properties, or removing the redirects too early — Google says keep them “as long as possible, generally at least 1 year.” A migration is carried by the 301s; canonicals, sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and re-verification just help the engines process it faster.
Related: HTTPS
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Revision history
Compare the published article with an archived editorial snapshot. Added and removed words are shown only after you open a comparison.
Updated Jul 26, 2026.
Editorial summary and recorded change details.Summary
Added an inspectable Before / Fixed HTTPS cutover example.
Change details
-
Compared a homepage-collapsing HTTP redirect plus stale protocol signals with a one-to-one permanent redirect and HTTPS-only canonical and asset URLs.
Updated Jul 17, 2026.
Editorial summary and recorded change details.Summary
Corrected certificate and canonical guidance and bounded HSTS and ranking-signal claims.
Change details
-
Changed mixed-content terminology to blockable versus upgradable and framed upgrade-insecure-requests as a transitional control that still requires source fixes.