HTTPS Migration Acceptance Template
Most HTTPS migrations look done when the padlock appears. Then a sitemap still lists http:// URLs, or a redirect takes two hops.
This template turns the move into an acceptance test. Each check has an expected result, a test, an owner and evidence.
It covers the certificate, redirects, mixed content, sitemap host and crawl verification, with a completion check before sign-off.
The original certificate, mixed content, headers and monitoring guides are still here, updated for November 2026, plus a filled-in example.
- Format
- Editable Word .docx
- Length
- 9 variants · ~9 pages
- Price
- 100% free
- Setup
- Copy or download
Get the editable Word doc in one click.
Free · No signup · Instant download
HTTPS Migration Acceptance Template
HTTPS migration acceptance sheet
Site: [canonical HTTPS origin, e.g. https://www.example.com]. Go-live date: [date]. Sign-off owner: [name].
Fill one row per check. A row passes only when the evidence column links to proof someone else can open.
| Check | Expected result | How to test | Owner | Pass/fail | Evidence |
|---|---|---|---|---|---|
| Certificate: valid and trusted | No browser warning. Covers every hostname you serve, www and non-www | Open each hostname in a private window; run an external SSL/TLS test | [owner] | [pass / fail] | [link / screenshot] |
| Certificate: auto-renewal | Renewal is automated and alerts fire on failure | Check the ACME client config or host panel; note the expiry date | [owner] | [pass / fail] | [link / screenshot] |
| Redirects: HTTP to HTTPS | Every http:// URL returns one 301 or 308 hop to its exact https:// match | Trace 10+ sample URLs, including deep pages and URLs with parameters | [owner] | [pass / fail] | [link / screenshot] |
| Redirects: hostname | Non-canonical host goes straight to the canonical HTTPS host, no chain | Trace http://, http://www, https:// and https://www versions of the homepage | [owner] | [pass / fail] | [link / screenshot] |
| Redirects: no reverse hop | No HTTPS URL redirects back to HTTP | Trace key templates; check the HTTPS report in Search Console | [owner] | [pass / fail] | [link / screenshot] |
| Mixed content | Zero mixed-content warnings; no http:// scripts, styles, iframes or fonts | DevTools console on each template; crawl for http:// resource URLs | [owner] | [pass / fail] | [link / screenshot] |
| Canonical, hreflang, internal links | All point to HTTPS URLs on the canonical host | Crawl and filter for http:// in canonical, hreflang and a href | [owner] | [pass / fail] | [link / screenshot] |
| Sitemap host | Every sitemap URL uses https:// and the canonical host | Open the sitemap and search for http:// and the wrong host | [owner] | [pass / fail] | [link / screenshot] |
| robots.txt | Served on HTTPS, no leftover migration blocks, Sitemap line uses HTTPS | Open /robots.txt on the HTTPS host and read every rule | [owner] | [pass / fail] | [link / screenshot] |
| Crawl verification | HTTPS crawl returns 200 for indexable pages and finds no internal http:// links | Full crawl of the HTTPS site; compare URL count with the old crawl | [owner] | [pass / fail] | [link / screenshot] |
| Search Console | Domain property (or both HTTP and HTTPS prefixes) verified; HTTPS sitemap submitted | Check properties and the Sitemaps report | [owner] | [pass / fail] | [link / screenshot] |
| HSTS (optional) | Header present with the planned max-age; preload only after all checks pass | Read response headers on the HTTPS homepage | [owner] | [pass / fail] | [link / screenshot] |
Open issues
- Issue: [what failed] Action: [fix] Owner: [name] Due: [date]
Completion check
- Every row except HSTS shows Pass with evidence attached.
- Every open issue has an owner and a due date, or is closed.
- Recheck booked for [go-live + 7 days] and [go-live + 30 days].
- Signed off by [SEO owner] and [developer] on [date].
Trace redirect samples with the Redirect Checker: it shows every hop, status code and the final URL, and flags loops.
Why it works
A signed-off HTTP to HTTPS migration where every check, from certificate to sitemap host and crawl, has an owner, a pass/fail result and evidence.
- Each row pairs an expected result with a concrete test, so pass or fail is not a matter of opinion.
- The sitemap host and crawl verification rows catch the HTTP leftovers that a browser padlock check misses.
- Certificate, HSTS and Change of Address guidance is checked against Google, Let's Encrypt, hstspreload.org and MDN as of November 2026.
9 ready-to-use variants
Copy allHTTPS Migration Acceptance Sheet (fill-in)
When to use: Sign off an HTTP to HTTPS move with one row per check: expected result, test, owner, pass/fail and evidence.
HTTPS migration acceptance sheet
Site: [canonical HTTPS origin, e.g. https://www.example.com]. Go-live date: [date]. Sign-off owner: [name].
Fill one row per check. A row passes only when the evidence column links to proof someone else can open.
| Check | Expected result | How to test | Owner | Pass/fail | Evidence |
|---|---|---|---|---|---|
| Certificate: valid and trusted | No browser warning. Covers every hostname you serve, www and non-www | Open each hostname in a private window; run an external SSL/TLS test | [owner] | [pass / fail] | [link / screenshot] |
| Certificate: auto-renewal | Renewal is automated and alerts fire on failure | Check the ACME client config or host panel; note the expiry date | [owner] | [pass / fail] | [link / screenshot] |
| Redirects: HTTP to HTTPS | Every http:// URL returns one 301 or 308 hop to its exact https:// match | Trace 10+ sample URLs, including deep pages and URLs with parameters | [owner] | [pass / fail] | [link / screenshot] |
| Redirects: hostname | Non-canonical host goes straight to the canonical HTTPS host, no chain | Trace http://, http://www, https:// and https://www versions of the homepage | [owner] | [pass / fail] | [link / screenshot] |
| Redirects: no reverse hop | No HTTPS URL redirects back to HTTP | Trace key templates; check the HTTPS report in Search Console | [owner] | [pass / fail] | [link / screenshot] |
| Mixed content | Zero mixed-content warnings; no http:// scripts, styles, iframes or fonts | DevTools console on each template; crawl for http:// resource URLs | [owner] | [pass / fail] | [link / screenshot] |
| Canonical, hreflang, internal links | All point to HTTPS URLs on the canonical host | Crawl and filter for http:// in canonical, hreflang and a href | [owner] | [pass / fail] | [link / screenshot] |
| Sitemap host | Every sitemap URL uses https:// and the canonical host | Open the sitemap and search for http:// and the wrong host | [owner] | [pass / fail] | [link / screenshot] |
| robots.txt | Served on HTTPS, no leftover migration blocks, Sitemap line uses HTTPS | Open /robots.txt on the HTTPS host and read every rule | [owner] | [pass / fail] | [link / screenshot] |
| Crawl verification | HTTPS crawl returns 200 for indexable pages and finds no internal http:// links | Full crawl of the HTTPS site; compare URL count with the old crawl | [owner] | [pass / fail] | [link / screenshot] |
| Search Console | Domain property (or both HTTP and HTTPS prefixes) verified; HTTPS sitemap submitted | Check properties and the Sitemaps report | [owner] | [pass / fail] | [link / screenshot] |
| HSTS (optional) | Header present with the planned max-age; preload only after all checks pass | Read response headers on the HTTPS homepage | [owner] | [pass / fail] | [link / screenshot] |
Open issues
- Issue: [what failed] Action: [fix] Owner: [name] Due: [date]
Completion check
- Every row except HSTS shows Pass with evidence attached.
- Every open issue has an owner and a due date, or is closed.
- Recheck booked for [go-live + 7 days] and [go-live + 30 days].
- Signed off by [SEO owner] and [developer] on [date].
Trace redirect samples with the Redirect Checker: it shows every hop, status code and the final URL, and flags loops.
Verify the SSL/TLS Certificate
When to use: Confirm the certificate is valid, covers every hostname and renews automatically as lifetimes shrink.
Confirm the certificate is valid, trusted and renewing
A broken certificate shows a full-page browser warning. Users leave, and the HTTPS URLs can't be evaluated properly.
- Trust: issued by a recognized CA, with the full intermediate chain installed for [Domain].
- Hostnames: covers every name you serve: [www and non-www] plus any subdomains that serve pages or assets.
- Expiry: record the date ([Expiry date]) and who gets the alert if renewal fails.
- Renewal: automated. Manual renewal does not survive shorter lifetimes.
Certificate lifetimes are getting shorter
- Let's Encrypt certificates are 90 days by default today.
- From 10 February 2027, Let's Encrypt moves the default to 64 days.
- Let's Encrypt plans a 45-day default from 16 February 2028.
- Industry rules cap all public certificates at 47 days from 15 March 2029.
Action: use an ACME client that supports ACME Renewal Information (ARI), or renew at about two thirds of the lifetime. Search scripts for hard-coded 60, 80 or 83 day timers.
Force HTTPS (Redirects, One Canonical Version)
When to use: Redirect every HTTP URL to its HTTPS match in one hop and update canonicals, links and sitemaps.
Send every URL to one secure address
http and https, www and non-www are separate URLs to Google. Pick one canonical origin, such as [https://www.example.com], and force everything to it.
- Map each HTTP URL to its exact HTTPS match. Never bulk-redirect to the homepage.
- Use server-side permanent redirects (301 or 308) straight to the final URL, in one hop.
- Keep the full path and query string.
- Keep the redirects for at least a year. Google suggests as long as possible.
Update everything that names a URL
- Self-referencing canonical tags on HTTPS URLs.
- Internal links, hreflang annotations, structured data URLs.
- Sitemaps: HTTPS URLs on the canonical host only.
- robots.txt on the HTTPS host, including the Sitemap line.
- Ads, email templates, social profiles and other links you control.
Search Console: don't use the Change of Address tool. Google says it is not needed for HTTP to HTTPS or www to non-www moves on the same domain.
Rebuild the sitemap from your HTTPS URL list with the XML Sitemap Generator. It expects absolute URLs that match your canonicals.
Fix Mixed Content
When to use: Find and fix HTTP resources on HTTPS pages before browsers block them.
Load every resource over HTTPS
Mixed content is an HTTPS page that loads resources over HTTP. Modern browsers handle it in two ways (per MDN):
- Upgradable: plain img src, audio and video. The browser tries the HTTPS version instead. If that fails, the resource breaks.
- Blockable: scripts, stylesheets, iframes, fonts, fetch requests and images using srcset or picture. The browser blocks them.
So a page can look fine while a script, font or embed is silently blocked. Test, don't assume.
- Open DevTools on each template ([Template list]) and read the console for mixed-content messages.
- Crawl the site and filter resource URLs that start with http://.
- Change your own resources to HTTPS or relative URLs, in templates and in the database.
- Switch third-party embeds to their HTTPS versions; replace any that have none.
Check one page fast with Get Source Code of Webpage: it lists the resources referenced in the raw HTML.
Note: the CSP directive upgrade-insecure-requests upgrades all requests, but fix the source URLs too.
HSTS & Security Headers
When to use: Add HSTS and core security headers safely, and know the preload rules before you commit.
Harden the connection with headers
Add headers at the server or CDN once HTTPS is stable. Test each in staging first.
- Strict-Transport-Security (HSTS): tells browsers to use HTTPS only. Start with a short max-age, then raise it.
- Content-Security-Policy: limits where scripts and styles load from.
frame-ancestorscontrols who can frame you. - X-Content-Type-Options: nosniff stops MIME-type guessing.
- Referrer-Policy: controls what URL data leaks to other sites.
HSTS preload requirements (hstspreload.org)
- A valid certificate, and HTTP redirects to HTTPS on the same host.
- All subdomains served over HTTPS, including www if it has a DNS record.
- max-age of at least 31536000 (1 year), plus includeSubDomains and preload.
Warning: preloading is hard to undo. Removal takes months to reach Chrome users. Preload only after the acceptance sheet passes.
Confirm headers on [Page URL] with Get Source Code of Webpage, which shows response and security headers.
Crawl Verification & Search Console
When to use: Prove the HTTPS site crawls cleanly and track the switch in Search Console reports.
Prove Google can crawl the HTTPS site
Redirects working in a browser is not enough. Crawl the HTTPS site as a bot would, then watch Search Console.
- Crawl [https://www.example.com] and confirm indexable pages return 200.
- Filter for internal links, canonicals and hreflang still using http://.
- Crawl the old HTTP URL list and confirm each one returns a single permanent redirect.
- Remove any temporary noindex or robots.txt blocks used during the move.
Search Console checks
- Properties: a Domain property, or both HTTP and HTTPS URL-prefix properties. The HTTPS report appears only in Domain or HTTPS URL-prefix properties.
- Sitemaps report: submit the HTTPS sitemap, then filter the Page indexing report by that sitemap to watch indexed HTTPS URLs rise.
- HTTPS report: look for HTTP marked with canonical tag, HTTPS has invalid certificate, Sitemap points to HTTP, HTTPS has redirect and HTTPS URL is roboted.
- Page indexing report: HTTP URLs should move to page with redirect over time.
Log results in the sheet with dates: [crawl date], [URLs crawled], [issues found].
Hacked-Site & Malware Checks
When to use: Detect injected spam, malware or redirects that HTTPS alone does not prevent.
Catch compromises before Google does
HTTPS protects data in transit. It does not stop a hacked site from serving spam, malware or sneaky redirects.
- Security issues report: check it in Search Console for [Property]. Google lists hacked content, malware and deceptive pages here.
- Site search: search your domain on Google for spam keywords or pages you never published.
- Files and database: look for injected scripts, unknown admin users and changed core files.
- If flagged, remove the content and close the entry point, such as an outdated plugin or weak password.
- Update software and rotate credentials for [Accounts].
- Request a review in the Security issues report once the site is clean.
Tip: make sure Search Console email alerts reach a person who will act on them.
Audit & Monitor
When to use: Recheck certificates, redirects, mixed content and headers on a schedule after sign-off.
Keep HTTPS healthy after sign-off
Certificates expire, new pages ship with http:// assets and server changes drop headers. Recheck on a schedule.
| Check | When | Owner |
|---|---|---|
| Certificate expiry and renewal log | Weekly, automated alert | [owner] |
| HTTP and hostname redirects still one hop | After every server or CDN change | [owner] |
| Mixed-content sweep | After each release that touches templates | [owner] |
| Headers still present | Monthly | [owner] |
| Search Console HTTPS, Page indexing and Security issues reports | [Frequency] | [owner] |
Log each finding with an owner in [Tracker] and retest after the fix.
A free website audit rechecks HTTPS, redirects, robots.txt and sitemaps in one run.
Worked Example (fictional outdoor gear shop)
When to use: See a completed acceptance sheet, including the failures it caught on go-live day.
Worked example: Ridgeline Supply moves to HTTPS
Example only. The company, people, URLs and figures are invented to show what a usable, filled-in version looks like.
Ridgeline Supply, an outdoor gear shop with about 1,200 URLs, switched http://ridgeline-supply.example to https://www.ridgeline-supply.example on 14 Oct.
| Check | Result on go-live day | Evidence | Owner | Pass/fail |
|---|---|---|---|---|
| Certificate | Valid for www and non-www, expires in 90 days, ACME auto-renew on | SSL test report, cron log | Marta (dev) | Pass |
| HTTP to HTTPS | http://ridgeline-supply.example/tents went to http://www first, then https://www: 2 hops | Redirect trace export | Marta (dev) | Fail, fixed 15 Oct to 1 hop |
| Path and query | 30 sample URLs with ?colour= kept their parameters | Trace CSV | Marta (dev) | Pass |
| Mixed content | Old blog posts loaded 46 images from http:// URLs. Browser upgraded them, but one embedded map iframe was blocked | Console screenshots, crawl filter | Jonah (content) | Fail, fixed 16 Oct |
| Sitemap host | sitemap.xml still listed http:// URLs | Sitemap file diff | Leo (SEO) | Fail, regenerated 14 Oct |
| Crawl verification | 1,198 HTTPS URLs return 200, 0 internal http:// links after fixes | Crawl export 16 Oct | Leo (SEO) | Pass |
| Search Console | Domain property verified, HTTPS sitemap submitted | Sitemaps report screenshot | Leo (SEO) | Pass |
| HSTS | max-age=300 for the first week, raised later | Response headers | Marta (dev) | Pass (not preloaded) |
Why this worked
- Testing every row on go-live day caught three failures before Google recrawled most of the site.
- The sitemap was checked as its own row, so it was fixed the same day instead of sending HTTP URLs for weeks.
- HSTS started short, so a bad redirect could still be rolled back without locking browsers in.
Next step
Run a free website audit on your HTTPS homepage. It checks that the site loads on HTTPS, that http:// redirects to it, and reviews redirects, robots.txt and the sitemap.
How to use this template
- Pick one canonical HTTPS origin and write it at the top of the sheet.
- Assign an owner to every row before go-live, not after.
- Install and test the certificate, then switch on one-hop permanent redirects.
- On go-live day, run every test and attach evidence to each row.
- Log each failure as an open issue with an owner and a due date.
- Crawl the HTTPS site and the old HTTP URL list, then submit the HTTPS sitemap.
- Sign off only when the completion check passes, and book the 7-day and 30-day rechecks.
Pro tips
- A row without evidence is not a pass. Link a trace, screenshot or crawl export.
- Test deep URLs with parameters, not just the homepage. Chains hide on old paths.
- Start HSTS with a short max-age. Preload only once everything passes, because removal takes months.
- Don't hard-code 60-day renewals. Let's Encrypt lifetimes drop to 64 days in February 2027.
Frequently asked questions
Does HTTPS help SEO?
A little. Google announced HTTPS as a ranking signal in 2014 and called it very lightweight, affecting fewer than 1% of global queries at the time. The bigger wins are user trust, no browser warnings and a clean, consolidated set of URLs.
Do I need the Change of Address tool for HTTP to HTTPS?
No. Google says the Change of Address tool is only for moving to another domain or subdomain. For HTTP to HTTPS, or www to non-www on the same domain, use redirects and canonical tags and follow the site move guidelines.
How long should I keep HTTP to HTTPS redirects?
Google recommends keeping them as long as possible, generally at least one year, so it can recrawl and transfer signals. For a protocol switch, most sites simply keep them for good. Use server-side 301 or 308 redirects in a single hop.
What should the sitemap contain after the move?
Only HTTPS URLs on your canonical host. Google suggests submitting the new sitemap in Search Console. You can also keep the old URL sitemap briefly to watch indexing shift; redirect warnings on it are normal.
Are SSL certificate lifetimes getting shorter?
Yes. Let's Encrypt moves its default from 90 to 64 days on 10 February 2027 and plans 45 days from 16 February 2028. Industry rules cap public certificates at 47 days from 15 March 2029. Automate renewal, ideally with ARI support.
Should I submit my site to the HSTS preload list right away?
No. hstspreload.org requires a one-year max-age, includeSubDomains, preload and HTTPS on every subdomain, and warns that removal can take months. Run the site on HSTS without preload first and make sure every check passes.