HSTS: HTTP Strict Transport Security pour le SEO
Ce que HSTS en réalité fait, le Strict-Transport-Security header syntax (max-age, includeSubDomains, preload), le navigateur-seulement internal redirection robots d’exploration jamais voir, pourquoi il ne fait pas remplacer votre 301s, et comment preload peut lock vous dans — depuis Patrick Stox.
1 indice probant sur cette page
- Outil en ligne associéHTTP Header Checker
HSTS (HTTP Strict Transport Security) est a Strict-Transport-Security réponse header — honored seulement quand il arrives over a secure connection — que indique a navigateur à toujours utiliser HTTPS pour votre domain going forward, closing le insecure gap que a nouveau visitor's premier requête encore rend over HTTP avant votre 301 fires. c’est a navigateur-layer, per-client policy on top de votre serveur-side redirections, pas a replacement: RFC 6797 a le navigateur rewrite le URI à HTTPS internally avant quelconque requête goes out (souvent affiché as an internal 307-style redirection, though le RFC ne fait pas mandate a spécifique code d’état), donc aucun serveur ever voit le HTTP formulaire et robots d’exploration encore besoin votre réel 301 à comprendre le déplacer et carry popularité des liens. Le header a three directives — max-age (requis), includeSubDomains, et preload. Preload bakes votre domain dans le navigateur itself via hstspreload.org (requiring max-age de au moins a année, includeSubDomains, et le preload flag) et est fermer à irreversible — removal est a séparé submission que takes months à reach utilisateurs. HSTS est aussi deliberately unforgiving: a navigateur que knows vous as an HSTS host va difficile-fail avec aucun click-via si votre certificate ever breaks. Donc enable il seulement une fois HTTPS est genuinely solid à travers chaque subdomain, et treat preload as a un-way door.
«> TL;DR — HSTS is a small instruction your server sends browsers that says
“always use HTTPS for my site — never plain HTTP.” It plugs a tiny security hole that a normal HTTP→HTTPS redirect leaves open, and it doesn’t hurt SEO. But it’s strict on purpose: once it’s on, a broken certificate breaks your site with no way for visitors to click past the warning. Turn it on only when your HTTPS setup is genuinely solid. » (Traduction) (Résumé en français de la section trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Ce que HSTS is
Vous déjà know vous devez être on HTTPS — le encrypted,
padlock version de votre site. Le normal façon à force il est a redirection: quand
quelqu’un types http://yoursite.com, votre serveur sends les a 301 redirection à
https://yoursite.com. Que fonctionne, mais il y a a sliver de a gap. Que very premier
requête — le un avant le redirection fires — encore goes out over insecure HTTP.
An attacker sitting on le même Wi-Fi peut pounce dans que window.
«HSTS — HTTP Strict Transport Security — closes that gap. It’s a short instruction
(a “header”) your server adds to its responses — but only the ones served over a
genuinely secure connection; the same header sent over plain HTTP is ignored, since
an attacker could otherwise inject or strip it — that tells that one browser: for
the next however-many months, never even try HTTP for this site — go straight to
HTTPS. It’s a policy each browser learns and stores for itself, not something that
changes your server. Once a browser has seen it, it upgrades http:// links to
https:// all on its own, before anything leaves the device. Preuve à l’appui de cette affirmation After receiving HSTS, a browser upgrades future HTTP attempts to HTTPS before sending the request. Portée : MDN documents user-agent enforcement after the header has been learned; first-visit protection requires preload or a prior secure visit. Niveau de confiance : élevé · Vérifié : MDN: Strict-Transport-Security header
» (Traduction) (Résumé en français de la section six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Fait HSTS aider or hurt SEO?
Aucun, directement. HSTS est a security et confiance fonctionnalité, pas a classement lever.
Il ne va pas déplacer vous up le résultats — mais fait correct il ne va pas hurt vous soit. Le un
chose à comprendre est que HSTS n’est pas a substitute pour votre redirections. Vous
encore besoin votre réel serveur-side 301 redirections depuis HTTP à HTTPS, parce que c’est
ce que Google et Bing en réalité voir et utiliser. HSTS fonctionne à l’intérieur le navigateur pour réel
human visitors; robots d’exploration ne pas rely on il. Garder les deux.
The un big warning
HSTS est deliberately unforgiving. Une fois a navigateur a “learned” votre site est HTTPS-seulement, il va refuse à charger le site à tout si votre certificate ever expires or misconfigures — avec aucun “proceed anyway” button. c’est le entier point (il arrête attackers depuis tricking personnes sur a fake HTTP version), mais il signifie a lapsed certificate goes depuis “annoying warning” à “site est bas pour anyone qui’s visited avant.”
il y a aussi a supercharged version appelé preload que bakes votre domain dans le navigateur itself. c’est great, mais getting off le preload liste plus tard est lent et painful — think months. Donc preload est a un-way door: seulement walk via il quand vous êtes certain. Preuve à l’appui de cette affirmation HSTS preload requires at least a one-year max-age, includeSubDomains, and preload; removal can take months to reach users. Portée : The Chromium preload service documents submission and removal behavior; requirements can change and should be rechecked before submission. Niveau de confiance : élevé · Vérifié : Chromium: HSTS Preload List Submission
Vouloir le header syntax, le navigateur-seulement internal redirection robots d’exploration jamais voir, le preload requirements, et le réel lockout scenarios? Switch à le Avancé tab.
TL;DR — HSTS est le
Strict-Transport-Securityréponse header, honored seulement quand a navigateur receives il over a secure connection, et stored per-client as future policy pour que host. Il closes le “first request problem” a 301 alone laisse ouvrir: le initial HTTP requête depuis a nouveau visitor est insecure jusqu’à le redirection fires, et c’est le window an SSL-stripping attacker veut. Three directives:max-age(requis, seconds),includeSubDomains,preload. Quand a navigateur enforces HSTS il rewrites le URI à HTTPS internally, avant quelconque requête reaches a serveur — RFC 6797 ne fait pas mandate a spécifique code d’état pour que rewrite, though outils souvent surface il as a 307 — donc votre serveur-side 301s sont encore mandatory pour moteur de recherches et popularité des liens; HSTS est on top de les, pas à la place. Preload bakes votre domain dans le navigateur via hstspreload.org (exigemax-age≥ 31536000,includeSubDomains, etpreload) et est fermer à irreversible — removal est a séparé submission que takes months à reach utilisateurs. Et HSTS est designed à difficile-fail on quelconque cert erreur, donc enable il seulement quand HTTPS est robust à travers chaque subdomain.
Le HTTPS hub introduces HSTS as a navigateur-layer protection que sits on top de votre 301s. Ce page est le deep dive: le exact header syntax, le internal redirection que trips SEOs up, le preload liste’s near-irreversibility, et le real-world façons HSTS locks personnes out.
The problem HSTS en réalité solves: the premier requête
Picture a correctement migrated site. Every http:// URL 301-redirections to its https://
twin, the certificate is valid, canonicals point to HTTPS. Semble airtight. It isn’t,
quite.
Quand a brand-new visitor types yoursite.com (aucun scheme) or clicks an old
http://yoursite.com lien, le navigateur’s premier requête goes out over plain HTTP.
Votre serveur réponses avec le 301, et chaque requête après que est secure. Mais que
un initial round-trip happened dans le clair — et c’est exactly le window an
SSL-stripping attacker on le même network veut. Ils intercept le HTTP requête,
garder le victim on HTTP pendant que ils proxy HTTPS à votre serveur, et lire or rewrite
tout.
«HSTS eliminates that window for anyone who has visited before. web.dev is direct
about the mechanism:
“use Strict Transport Security to tell clients they should always connect to your
server using HTTPS, even when following an http:// reference. This defeats attacks
like SSL Stripping, and avoids the round-trip cost of the 301 redirect.”
(web.dev).
That last clause matters for performance too: a returning browser skips the HTTP→HTTPS
round-trip entirely. Preuve à l’appui de cette affirmation After receiving HSTS, a browser upgrades future HTTP attempts to HTTPS before sending the request. Portée : MDN documents user-agent enforcement after the header has been learned; first-visit protection requires preload or a prior secure visit. Niveau de confiance : élevé · Vérifié : MDN: Strict-Transport-Security header
» (Traduction) (Résumé en français de la section vingt, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Deux boundary conditions worth étant precise à propos de. Premier, HSTS est stored, per-client policy — il lives dans que un navigateur’s propre state pour que host, learned depuis a header delivered over a secure connection; le même header sent on an HTTP réponse est ignored outright (an attacker qui peut inject or strip headers on plain HTTP pourrait sinon neutralize il), et a client que a jamais reçu il — a fresh install, a différent navigateur, a robot d’exploration — a aucun policy à enforce. Deuxième, le rewrite est scheme-et-port aware: an implicit port 80 requête becomes an implicit port 443 requête, mais si le original URI named an explicit non-default port, le navigateur garde que même port number et simplement contacts il over HTTPS à la place.
The header syntax
HSTS est un réponse header avec up à three directives. Per MDN, le formulaires sont:
Strict-Transport-Security: max-age=31536000
Strict-Transport-Security: max-age=31536000; includeSubDomains
Strict-Transport-Security: max-age=63072000; includeSubDomains; preloadmax-age=<seconds>— requis. “Le temps, dans seconds, que le navigateur devrait remember que a host est seulement à être accessed en utilisant HTTPS” (MDN).31536000est un année;63072000est deux. Le clock resets on chaque réponse que carries le header, donc an active site continually renews son policy. Ce est relative, per-client state: simplement removing le header ne fait pas immédiatement clair il — a navigateur que déjà learned le policy garde enforcing il jusqu’à son storedmax-ageexécute out. À turn HSTS off pour clients que déjà learned il, vous ont à actively servirmax-age=0over a secure réponse; le navigateur alors forgets le policy on son suivant secure visit. (max-age=0clears a learned policy seulement — il ne fait pas supprimer a domain depuis le séparé preload liste.)includeSubDomains— optional. “Si ce directive est specified, le HSTS policy s’applique à tout subdomains de le host’s domain as bien” (MDN). Powerful et dangerous dans equal mesurer — voir le lockout scenarios ci-dessous.preload— optional. A flag que signaux votre intent à être on le navigateur preload liste. Il ne fait pashing on son propre; c’est a prerequisite pour submitting à hstspreload.org. Preuve à l’appui de cette affirmation HSTS preload requires at least a one-year max-age, includeSubDomains, and preload; removal can take months to reach users. Portée : The Chromium preload service documents submission and removal behavior; requirements can change and should be rechecked before submission. Niveau de confiance : élevé · Vérifié : Chromium: HSTS Preload List Submission
Le behavior, à nouveau depuis MDN:
“Avant chargement an http URL, le navigateur vérifications le domain nom contre son HSTS
hosts liste. Si le domain nom est a cas insensitive match pour an HSTS host or est a
subdomain de un que specified includeSubDomains, alors le navigateur remplace le
URL scheme avec https.”
The internal upgrade robots d’exploration jamais voir (ce is the SEO crux)
Ici’s le unique la plupart misunderstood chose à propos de HSTS, et le raison il ne peut pas remplacer votre redirections.
Quand a navigateur upgrades an http:// requête sous HSTS, il rewrites le URI à
HTTPS internally, avant quelconque network requête est fait — RFC 6797 exige le
scheme substitution itself mais ne fait pas mandate a particulier code d’état pour il
(RFC 6797 §8,3), donc a
donné navigateur or exploration outil peut represent que internal étape cependant il likes —
nombreux afficher il as an internal 307, mais c’est client/outil-spécifique, pas a protocol
guarantee. Ce que matters pour le SEO est simpler et holds regardless de le étiquette: aucun
serveur est contacted pour le HTTP version, donc aucun robot d’exploration ever voit il. Googlebot et
Bingbot ne pas carry a learned HSTS policy autour le façon a returning human’s Chrome
fait — ils hit votre serveur fresh, et ce que ils besoin à voir là est a réel,
serveur-side 301. Preuve à l’appui de cette affirmation RFC 6797 requires the user agent to rewrite a known-HSTS-host HTTP URI to HTTPS internally, but does not mandate any specific redirect status code for that internal rewrite; how a given browser or crawling tool represents that step (e.g., as an internal 307) is a client/tool implementation detail, not a protocol requirement. Portée : RFC 6797 Section 8.3 ("URI Loading and Port Mapping") specifies the UA MUST replace the URI scheme with https; it does not prescribe an HTTP status code for that internal substitution, since no HTTP exchange occurs for it. Section 7.2's suggestion of status code 301 addresses ordinary server-side redirect behavior, not this internal client-side rewrite. Niveau de confiance : élevé · Vérifié : RFC 6797 §8.3 — URI Loading and Port Mapping
«So the rule is blunt: HSTS does not replace your server-side 301s. The 301 is what search engines use to understand the protocol move and to consolidate signals (301 and other permanent redirects don’t cause a loss in PageRank, per Google). The browser-only internal upgrade is a user-experience and security layer on top. You need both, doing different jobs: » (Traduction) (Résumé en français de la section trente et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
- 301 (serveur-side): pour robots d’exploration, indexation, et popularité des liens.
- Internal 307-style upgrade (navigateur-side, depuis HSTS): pour returning humans et SSL-stripping protection — le exact status representation varies par client/outil.
«Any guide that tells you HSTS “handles the redirect so you can drop your 301” is wrong in a way that will quietly cost you. » (Traduction) (Résumé en français de la section trente-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
HSTS preload: le near-permanent version
max-age protège returning visitors, mais il a a bootstrap problème: a
premier-time visitor qui a jamais reçu votre header est encore exposed on que
initial requête. Preload solves il par hardcoding votre domain dans le navigateur’s
source itself, donc le navigateur knows vous êtes HTTPS-seulement avant il a ever connected.
Vous opt dans à hstspreload.org. Le requirements sont exact:
- “Serve a valid certificate.”
- “Redirect depuis HTTP à HTTPS on le même host, si vous sont listening on port 80.”
- “Servir tous subdomains over HTTPS” — notamment dans particulier le
wwwsubdomain si a DNS record exists. - On le base domain’s HTTPS réponse, an HSTS header où “le
max-agedoit être au moins31536000seconds (1 année),” “leincludeSubDomainsdirective doit être specified,” et “lepreloaddirective doit être specified.” (hstspreload.org)
c’est pourquoi le deux-year exemple ci-dessus (max-age=63072000; includeSubDomains; preload)
est le shape personnes submit — remarque ces sont le exact submission requirements as
publié par hstspreload.org; treat les as le actuel bar, pas a permanent
constant, et re-vérifier le actif page avant vous submit.
It helps to garder four distinct states straight, since personnes conflate les constantly:
| State | qu’est-ce que en réalité vrai |
|---|---|
| Token présent | Votre header inclut preload. Ce est a flag seulement — il ne fait pashing par itself et ne fait pas put vous on quelconque liste. |
| Eligible | Votre site meets tout four hstspreload.org requirements ci-dessus (cert, redirection, subdomains, header shape). Encore pas on le liste. |
| Submitted / pending | vous avez submitted à hstspreload.org et c’est queued pour inclusion dans an upcoming navigateur release. Pas yet enforced pour réel utilisateurs. |
| En réalité listed | Le domain est baked dans a donné navigateur’s shipped construire. Enforcement seulement exists pour utilisateurs on que construire — rollout n’est pas instant or universal à travers navigateurs. |
Removal exécute le même four states dans reverse, et simplement as slowly: removing le
preload directive depuis votre header rend vous eligible pour le removal formulaire, alors
submission est pending, et le domain stays enforced pour quelconque utilisateur on a navigateur construire
que encore ships il — jusqu’à que construire cycles out.
Maintenant le partie que turns preload dans a un-way door. Depuis le submission site itself: “Être aware que inclusion dans le preload liste ne peut pas easily être undone. Domains peut être supprimé, mais il takes months pour a modifier à reach utilisateurs avec a Chrome mettre à jour et nous ne peut pas faire guarantees à propos de autre navigateurs.” (hstspreload.org). Et son propre advice: “ne pas requête inclusion unless vous êtes certain que vous pouvez prise en charge HTTPS pour votre entier site et tout son subdomains dans le long terme.”
Practical traduction: preload est a genuinely great security posture, mais si vous ever besoin à servir n’importe quoi — a legacy subdomain, an acquired brand, an internal outil — over plain HTTP à nouveau, vous êtes stuck waiting on navigateur release cycles à reach chaque utilisateur. Kinsta’s guide puts le operational reality plainly: il peut être a difficult et time-consuming traiter à obtenir votre domain supprimé. Treat preload as permanent.
Pourquoi HSTS is designed to hurt quand choses break
«HSTS’s strictness is not a bug — it’s the entire security guarantee. web.dev spells out the tradeoff: “Clients that have listed your site as a known HSTS Host are likely to hard-fail if your site ever has an error in its TLS configuration, (such as an expired certificate). HSTS is explicitly designed this way to ensure that network attackers can’t trick clients into accessing the site without HTTPS.” (web.dev). » (Traduction) (Résumé en français de la section quarante-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«The conclusion Google draws is the sentence I’d tattoo on anyone about to flip this on: “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). » (Traduction) (Résumé en français de la section quarante-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«“Hard-fail” means exactly that: no “proceed anyway” link, no click-through. On a normal HTTPS page, an expired cert throws a scary interstitial that a determined user can bypass. On an HSTS host, the browser refuses outright. So the failure mode of a missed certificate renewal changes category — from “traffic dips because people are scared off” to “the site is unreachable for every returning visitor.” » (Traduction) (Résumé en français de la section quarante-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«## Real-world lockout scenarios » (Traduction) (Résumé en français de la section quarante-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«The ways HSTS bites in practice almost always trace back to includeSubDomains or
preload getting ahead of your actual HTTPS coverage:
» (Traduction) (Résumé en français de la section quarante-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
- Le forgotten subdomain. Vous définir
includeSubDomainsonexample.com, maislegacy.example.com(an old app, a status page, a vendor outil) seulement speaks HTTP or a a cert que ne fait pas cover il. Chaque navigateur que saw le header maintenant refuses à charger que subdomain. Rien modifié on que serveur — le policy reached bas et broke il. - Le wildcard-cert gap. A
*.example.comwildcard coversfoo.example.commais pasfoo.bar.example.com(a wildcard est un DNS étiquette deep). Si a deeper subdomain relies on HTTP or a mismatched cert,includeSubDomainslocks il out. - Le expired cert on an HSTS host. Renewal automation fails, le cert lapses, et au lieu de a bypassable warning vous obtenir a site c’est bas pour everyone whose navigateur remembers votre policy — jusqu’à vous obtenir a valide cert back et ils reconnect et recevoir a fresh secure réponse. Là est aucun faster override.
- Preload regret. Vous preloaded, alors a entreprise besoin forces an HTTP-seulement
service sous le domain. Rolling que back est deux séparé, non-instant jobs, pas
un: diffusion
max-age=0over HTTPS seulement clears le learned policy pour clients que reconnect avant leur old max-age devrait’ve expired anyway, pendant que getting le domain out de le preload liste est a distinct submission que encore takes navigateur release cycles — months — à reach utilisateurs, independent de n’importe quoi vous modifier on votre serveur. - Local dev / staging collisions. Preloading
example.comavecincludeSubDomainspeut fairedev.example.comor alocalhost-style internal host sous le même apex refuse HTTP, breaking local workflows dans surprising façons.
None de ces sont raisons à éviter HSTS. ils sont raisons à stage il: court
max-age premier, ajouter includeSubDomains seulement après auditing chaque subdomain, et
reserve preload pour quand vous êtes certain.
HSTS n’est pas a classement play (et ne fait pas touch canonicalization)
«To be clear on the SEO framing: HSTS is not a ranking signal. HTTPS itself is
a deliberately tiny one — Google called it a “very lightweight
signal” affecting fewer than 1% of queries — and HSTS is a layer on top of HTTPS, not
a separate ranking input. It also doesn’t directly control canonicalization or
indexing. Google’s own documentation is more specific than a flat “doesn’t matter,”
though: Google prefers HTTPS as canonical over an equivalent HTTP page except
when there’s an invalid certificate, insecure page dependencies, an HTTPS page that
redirects to HTTP, or an HTTP rel="canonical" tag
(Google: consolidating duplicate URLs).
HSTS cannot fix or override any of that. It’s a browser-side policy with no
influence on Google’s canonicalization logic — a bad certificate or a broken redirect
chain can still push Google toward an HTTP canonical regardless of what your HSTS
header says. Canonicalization is driven by your 301s, your certificate, your
rel="canonical", and your internal links — HSTS earns its place for security,
user trust, and closing the SSL-stripping gap — do it for those reasons, keep your
301s and certificate genuinely solid, and you’ll never see HSTS itself on a rankings
report either way.
» (Traduction) (Résumé en français de la section cinquante-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Si vous êtes running le broader HTTP→HTTPS déplacer, HSTS est le dernier chose vous switch on, pas le premier — il belongs après le migration a settled, as partie de le wider migration de site discipline.
AI summary
A condensed prendre on the Avancé version:
- HSTS = le
Strict-Transport-Securityréponse header. Il indique navigateurs à toujours utiliser HTTPS pour votre domain, closing le “first request problem” a 301 alone laisse ouvrir — le initial HTTP requête depuis a nouveau visitor est insecure jusqu’à le redirection fires, qui est le SSL-stripping window. - Three directives:
max-age(requis, seconds; resets on chaque réponse; removing le header ne fait pas clair a learned policy — vous doit servirmax-age=0over HTTPS à la place),includeSubDomains(s’applique à tout subdomains), etpreload(a flag à opt dans le navigateur preload liste — token présent, eligible, submitted, et en réalité listed sont four séparé states). - Le internal-upgrade crux: quand a navigateur enforces HSTS il rewrites le URI à HTTPS internally avant quelconque requête reaches a serveur — RFC 6797 ne fait pas mandate a spécifique code d’état pour que rewrite, though outils souvent montrer il as a 307 — donc aucun serveur voit il et robots d’exploration jamais voir il. Votre serveur-side 301s sont encore mandatory pour moteur de recherches et popularité des liens. HSTS est on top de votre 301s, jamais au lieu de les.
- Preload hardcodes votre domain dans le navigateur via
hstspreload.org (exige
max-age≥ 31536000,includeSubDomains, etpreload). c’est fermer à irreversible — removal est a séparé submission que takes months à reach utilisateurs, navigateur par navigateur. - Designed à difficile-fail: an HSTS host avec a broken/expired cert refuses à charger, avec aucun click-via. Google: “ne pas enable HSTS jusqu’à vous êtes certain votre site operation est robust suffisant à éviter ever deploying HTTPS avec certificate validation erreurs.”
- Lockout scenarios cluster autour
includeSubDomainset preload outrunning votre HTTPS coverage: forgotten HTTP subdomains, wildcard-cert depth gaps, lapsed certs, preload regret, et staging collisions. - Pas a classement signal — et ne peut pas override canonicalization. Google prefers HTTPS as canonical except quand a cert est invalide, dependencies sont insecure, an HTTPS page redirections à HTTP, or le balise canonical points à HTTP — et HSTS a aucun power à corriger or override quelconque de que. Garder votre 301s, certificate, et canonical balises doing le SEO fonctionner.
«## Official documentation » (Traduction) (Résumé en français de la section soixante-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Primary-source documentation from browser and standards teams. » (Traduction) (Résumé en français de la section soixante-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Google / web.dev » (Traduction) (Résumé en français de la section soixante-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- Enable HTTPS on your servers (web.dev) — the HSTS section: the header, SSL-stripping, the hard-fail warning, and “don’t enable HSTS until you’re certain.” » (Traduction) (Résumé en français de la section soixante-quatre, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- Site moves with URL changes — why the server-side 301 is still mandatory (redirects don’t lose PageRank). » (Traduction) (Résumé en français de la section soixante-quatre, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.) «- Understanding page experience — where HTTPS (and by extension HSTS) sits in Google’s framing. » (Traduction) (Résumé en français de la section soixante-quatre, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«Standards & browser references
» (Traduction) (Résumé en français de la section soixante-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- MDN — Strict-Transport-Security — full header syntax, the three directives, and how the browser upgrades the scheme.
» (Traduction) (Résumé en français de la section soixante-cinq, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- RFC 6797 — HTTP Strict Transport Security (HSTS) — the original specification.
» (Traduction) (Résumé en français de la section soixante-cinq, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- HSTS Preload List submission (hstspreload.org) — the exact preload requirements and the removal caveats, maintained by the Chromium project.
» (Traduction) (Résumé en français de la section soixante-cinq, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«## Quotes from the source » (Traduction) (Résumé en français de la section soixante-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«On-the-record statements from Google/web.dev and the Chromium preload service. Each link jumps to (or points at) the quoted passage on the source page. » (Traduction) (Résumé en français de la section soixante-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«web.dev (Google) — what HSTS does and the warnings » (Traduction) (Résumé en français de la section soixante-dix, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “Use HTTP Strict Transport Security (HSTS) to avoid the cost of the 301 redirect.”
Jump to quote
» (Traduction) (Résumé en français de la section soixante-onze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “First, use Strict Transport Security to tell clients they should always connect to
your server using HTTPS, even when following an http:// reference. This defeats
attacks like SSL Stripping, and avoids the round-trip cost of the 301 redirect.”
Jump to quote
» (Traduction) (Résumé en français de la section soixante-onze, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “Clients that have listed your site as a known HSTS Host are likely to hard-fail if
your site ever has an error in its TLS configuration, (such as an expired
certificate). HSTS is explicitly designed this way to ensure that network attackers
can’t trick clients into accessing the site without HTTPS.”
Jump to quote
» (Traduction) (Résumé en français de la section soixante-onze, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “Don’t enable HSTS until you’re certain your site operation is robust enough to
avoid ever deploying HTTPS with certificate validation errors.”
Jump to quote
» (Traduction) (Résumé en français de la section soixante-onze, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«Chromium preload service — hstspreload.org » (Traduction) (Résumé en français de la section soixante-douze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “Be aware that inclusion in the preload list cannot easily be undone. Domains can be removed, but it takes months for a change to reach users with a Chrome update and we cannot make guarantees about other browsers.” Source » (Traduction) (Résumé en français de la section soixante-treize, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- “Don’t request inclusion unless you’re sure that you can support HTTPS for your entire site and all its subdomains in the long term.” Source » (Traduction) (Résumé en français de la section soixante-treize, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«MDN — the header behavior » (Traduction) (Résumé en français de la section soixante-quatorze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
- “Avant chargement an
httpURL, le navigateur vérifications le domain nom contre son HSTS hosts liste. Si le domain nom est a cas insensitive match pour an HSTS host or est a subdomain de un que specifiedincludeSubDomains, alors le navigateur remplace le URL scheme avechttps.” Source
Devrait I enable HSTS — and how far?
Walk il top à bottom. Chaque “aucun” est a arrêter sign, pas a maybe. Un distinction avant
vous commencer: le exact max-age figures ci-dessous (a quelques minutes pour a canary, a année pour
a resting state) sont Patrick’s operational staging recommendations, pas protocol
requirements — le seulement difficile numeric requirement est hstspreload.org’s preload
minimum (max-age ≥ 31536000), qui est appelé out explicitly à que étape. Adjust
le staging durations à votre propre risque tolerance et deployment cadence.
1. Est votre entier site déjà on HTTPS avec a valide certificate, et a le migration settled?
- Aucun → ne pas touch HSTS yet. Finish le HTTPS migration premier: 301 chaque URL, corriger mixed contenu, vérifier dans Search Console. HSTS est le dernier switch, pas le premier.
- Oui → continuer.
2. Est votre certificate renewal automated et monitored (donc a lapse ne peut pas sneak up on vous)?
- Aucun → Corriger que premier. On an HSTS host a lapsed cert est a difficile outage, pas a warning. Obtenir auto-renewal + expiry alerting dans placer, alors continuer.
- Oui → continuer. Enable a court
max-age(e.g. a quelques minutes à a day) avec aucunincludeSubDomainsyet, et confirmer rien breaks.
3. Ont vous audited chaque subdomain — notamment www, legacy apps, status pages,
et vendor hosts — et confirmed chaque sert valide HTTPS?
- Aucun → Garder
includeSubDomainsoff. Ajout il maintenant voudrait reach bas et break quelconque HTTP-seulement or mismatched-cert subdomain. - Oui → Raise
max-agetoward a année et ajouterincludeSubDomains. Ce est a sûr, strong resting state pour la plupart sites.
4. Faire vous vouloir à fermer le premier-ever-visit gap aussi, et sont vous certain vous’ll jamais besoin à servir n’importe quoi sous ce domain over plain HTTP à nouveau?
- Aucun / pas certain → Arrêter ici.
max-age=31536000; includeSubDomains(aucun preload) est an excellent posture. Preload’s marginal gain n’est pas worth son irreversibility si vous êtes unsure. - Oui, certain → Ajouter le
preloadflag et submit à hstspreload.org. Treat il as permanent — removal takes months à reach utilisateurs.
Separate, always-true branch: fait enabling HSTS mean I peut drop my 301s?
- Jamais. Robots d’exploration don’t voir HSTS’s browser-only internal upgrade. Garder votre server-side 301s regardless of how far bas ce tree vous go.
HSTS rollout checklist
Fonctionner top à bottom — chaque stage gates le suivant. Le staged durations ici sont
operational recommendations, pas protocol requirements — le seulement difficile number est
preload’s max-age ≥ 31536000 minimum dans Stage 3.
Avant vous enable n’importe quoi
- Entier site (apex +
www+ tout subdomains) sert HTTPS avec a valide cert. - HTTP→HTTPS 301 redirections sont dans placer serveur-side, un-à-un.
- Certificate auto-renewal est configuré et expiry monitoring/alerting exists.
- Le HTTP→HTTPS migration a settled (Search Console clean, aucun classement freefall).
Stage 1 — prove c’est sûr
- Ajouter
Strict-Transport-Securityavec a courtmax-age(minutes à a day). - Aucun
includeSubDomainsyet. Aucunpreloadyet. - Confirmer le site charge normally à travers navigateurs et que rien broke.
Stage 2 — commit
- Raise
max-ageto au moins31536000(un année). - Audit every subdomain (incl.
www, legacy, status, vendor) pour valid HTTPS. - Seulement après que audit passes, ajouter
includeSubDomains. - Re-test chaque subdomain loads over HTTPS.
Stage 3 — preload (optional, near-permanent)
- vous êtes certain vous’ll jamais besoin HTTP sous ce domain à nouveau.
- Header est
max-age=31536000(or plus); includeSubDomains; preload. - HTTP on port 80 redirections à HTTPS on le même host.
- Submit et confirmer status à hstspreload.org.
Toujours vrai — ne pas skip
- Serveur-side 301s stay dans placer (robots d’exploration jamais voir le navigateur-seulement internal upgrade).
- Vous ont a documented rollback plan:
max-age=0servi over HTTPS clears a learned (non-preloaded) policy pour clients que reconnect avant il devrait’ve expired anyway. Preloaded domains besoin le séparé, slower removal-form traiter à la place.
The mental models
1. HSTS est a couche, pas a replacement. Serveur-side 301 = pour robots d’exploration et popularité des liens. Navigateur-side internal upgrade (depuis HSTS, souvent affiché as a 307 though le RFC ne fait pas exiger que exact code) = pour returning humans et SSL-stripping protection. Différent audiences, différent jobs. Vous toujours besoin les deux; HSTS jamais subtracts a 301.
2. HSTS closes a gap le 301 ne peut pas. A 301 protège le deuxième requête onward. Le premier requête — avant le redirection fires — est encore HTTP. HSTS (pour returning visitors) et preload (pour premier-ever visitors) sont le seulement choses que fermer que spécifique window.
3. Ratchet up, jamais jump.
max-age short → long. Bare header → includeSubDomains (après a subdomain audit) →
preload (seulement si certain). Every rung is reversible except the dernier. Don’t skip
rungs to enregistrer temps.
4. Strictness est le fonctionnalité, et il cuts les deux façons. Le même difficile-fail que arrête an attacker aussi arrête vous quand a cert breaks. Donc le prerequisite n’est pas “do you want security?” — everyone fait — c’est “est votre certificate operation robust suffisant à jamais échouer?”
«5. Preload is a one-way door.
Non-preloaded HSTS can be relaxed for a client the next time it makes a secure
request and receives max-age=0 — no faster than that, and only for clients who
reconnect. Preload takes it a step further: removal is a separate submission that
takes months to reach users, browser release by browser release. Put it in the
“decisions we can’t easily take back” bucket and treat it accordingly.
» (Traduction) (Résumé en français de la section cent deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
6. HSTS est orthogonal à rankings — mais ne peut pas rescue a mauvais canonical signal soit. c’est pas a classement signal et ne fait pas directement contrôler canonicalization or indexation. Judge il on security et confiance, pas on SEO upside — là n’est pas quelconque. Mais c’est pas a safety net soit: Google’s HTTPS-canonical preference encore backs off pour a mauvais cert, insecure dependencies, an HTTPS→HTTP redirection, or an HTTP balise canonical, et HSTS a aucun power à override que.
«## HSTS — cheat sheet » (Traduction) (Résumé en français de la section cent six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«The header directives » (Traduction) (Résumé en français de la section cent sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«| Directive | Required? | What it does |
| --- | --- | --- |
| max-age=<seconds> | Yes | How long the browser enforces HTTPS-only. Resets on every response over HTTPS; removing the header doesn’t clear it — you must serve max-age=0 over HTTPS to disable for reconnecting clients. |
| includeSubDomains | No | Applies the policy to every subdomain too. Audit all subdomains first. |
| preload | No | Flag opting into the browser preload list (needs the other two + hstspreload.org). Token present, eligible, submitted, and actually listed are four separate states. Near-irreversible once listed. |
» (Traduction) (Résumé en français de la section cent huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Courant header valeurs (staging figures ci-dessous sont operational suggestions, pas protocol requirements — le difficile minimum est le preload ligne)
| Valeur | Meaning |
|---|---|
max-age=300 | 5 minutes — a safe premier tester. |
max-age=31536000 | 1 année — standard resting state. |
max-age=31536000; includeSubDomains | 1 année, tout subdomains — strong, non-preload. |
max-age=63072000; includeSubDomains; preload | 2 années + preload — the shape vous submit (hstspreload.org’s requis minimum is max-age ≥ 31536000). |
max-age=0 (served over HTTPS) | Clears a learned policy pour clients que reconnect. Ne fait pas supprimer a preload listing. |
Redirections: qui un, who sees it
| Redirection | Origin | Qui voit il | Job |
|---|---|---|---|
| 301 | Votre serveur | Robots d’exploration et humans | SEO: comprendre le déplacer, carry popularité des liens |
| Internal upgrade (souvent affiché as a 307; RFC 6797 ne fait pas mandate le exact code) | Le navigateur (HSTS) | Returning humans seulement — robots d’exploration jamais voir il | Security/UX: skip le insecure premier hop |
Rapide facts
- Preload exige
max-age≥ 31536000 +includeSubDomains+preload— verified contre hstspreload.org’s actuel publié requirements. - Preload removal est a séparé submission que takes months à reach utilisateurs, navigateur par navigateur — treat as permanent.
- On an HSTS host, a broken cert = difficile-fail, aucun click-via.
- HSTS est pas a classement signal et fait pas remplacer votre 301s.
«## Set the HSTS header » (Traduction) (Résumé en français de la section cent seize, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Add the header on your HTTPS server block only, and start with a short max-age
until you’ve confirmed nothing breaks. Add ; preload only when you intend to
submit to hstspreload.org — it’s close to irreversible.
» (Traduction) (Résumé en français de la section cent dix-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Apache (.htaccess)
» (Traduction) (Résumé en français de la section cent dix-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
<IfModule mod_headers.c>
# Start short (300s) to prove it's safe; raise to 31536000 once confident.
Header always set Strict-Transport-Security "max-age=300"
# Full posture once every subdomain is verified HTTPS:
# Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
# Only add ; preload when submitting to hstspreload.org:
# Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
</IfModule>«Nginx » (Traduction) (Résumé en français de la section cent dix-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
# On the HTTPS (listen 443) server block:
add_header Strict-Transport-Security "max-age=300" always;
# Full posture once subdomains are verified:
# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# Preload shape (near-irreversible):
# add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;«## Check whether HSTS is set (and read it back) » (Traduction) (Résumé en français de la section cent vingt, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«macOS / Linux » (Traduction) (Résumé en français de la section cent vingt et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
# Print only the Strict-Transport-Security response header
curl -sI https://example.com/ | grep -i strict-transport-security
# → strict-transport-security: max-age=31536000; includeSubDomains«Windows (PowerShell) » (Traduction) (Résumé en français de la section cent vingt-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
# Same check in PowerShell
(Invoke-WebRequest -Uri "https://example.com/" -Method Head).Headers["Strict-Transport-Security"]«## Inspect and clear an HSTS entry in Chrome (DevTools / net-internals) » (Traduction) (Résumé en français de la section cent vingt-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Si vous êtes testing et a navigateur a “learned” an HSTS policy vous devez clair:
1. Open a new tab and visit: chrome://net-internals/#hsts
2. Under "Query HSTS/PKP domain", enter your host to see the stored policy.
3. Under "Delete domain security policies", enter the host and Delete.
(This clears the *learned* policy — it does NOT remove a *preloaded* domain,
which lives in the browser binary and can't be cleared this way.)Utiliser ce à confirmer votre header est en réalité étant stored, et à reset a tester host —
pas as a corriger pour production, où le réponse est à actively servir max-age=0 over
HTTPS (simplement removing le header ne fait pas clair a policy a client déjà learned;
il seulement takes effect une fois que client reconnects et receives le max-age=0
réponse).
HSTS mistakes que bite
1. Dropping votre 301s parce que “HSTS handles it.” Le classic. HSTS’s redirection est a navigateur-seulement internal upgrade robots d’exploration jamais voir. Supprimer votre serveur-side 301s et moteur de recherches lose le signal que consolidates votre déplacer. Garder les deux, toujours.
2. Enabling includeSubDomains avant auditing subdomains.
Le unique la plupart courant façon à prendre a subdomain offline. Si quelconque subdomain — a legacy
app, a status page, a vendor host, www itself — n’est pas on valide HTTPS, le policy
reaches bas et breaks il pour chaque navigateur que saw le header.
3. Jumping straight to a one-year max-age (or preload) on day un.
Aucun safety net. Commencer short (max-age=300), confirmer nothing breaks, alors ratchet up.
A long max-age définir on a misconfigured site is a self-inflicted outage que lingers
in navigateurs pour a année.
4. Preloading avant HTTPS is genuinely bulletproof. Preload is near-irreversible — removal takes months. Google’s propre line: don’t enable HSTS jusqu’à you’re certain votre site operation is robust suffisant. Preload multiplies que stakes.
5. Treating a lapsed certificate as a minor problème. On a non-HSTS site an expired cert est a bypassable warning. On an HSTS host c’est a difficile outage avec aucun click-via. Si vous enable HSTS, cert renewal automation et expiry alerting arrêter étant nice-à-haves.
6. Paramètre le header on le HTTP réponse. Navigateurs ignore HSTS delivered over HTTP (par design — an attacker pourrait inject or strip il). Il doit être sent on le HTTPS réponse à count.
7. Forgetting le wildcard-cert depth limite.
A *.example.com wildcard ne fait pas cover foo.bar.example.com. Turn on
includeSubDomains et quelconque deeper subdomain relying on que cert obtient locked out.
Incident playbook: an HSTS host est locked out
- Confirmer le échec depuis a clean network et plus que un navigateur. Record le affected hostnames et le exact certificate erreur. A remembered HSTS policy peut faire le symptom differ entre returning et premier-time visitors.
- Restore valide HTTPS premier. Si le certificate est expired, mismatched, or manquant an intermediate, renew or remplacer il et deploy le complet chain. An HSTS navigateur ne va pas offer a sûr HTTP bypass.
- Map le policy scope. Inspect le actif
Strict-Transport-Securityheader et determine siincludeSubDomainsor preload extends le outage au-delà le hostname que sent il. - Inventory chaque affected subdomain. Pour a forgotten HTTP-seulement host, put a valide certificate et HTTPS endpoint dans front de il avant deciding si à garder, migrate, or redirection le service.
- Correct le policy seulement après accès est restored. Si le scope est dangereux, reduce or supprimer le header on HTTPS réponses. Que ne fait pas instantly clair a policy déjà mis en cache par navigateurs, et preload removal est a séparé, lent traiter.
- Vérifier recovery. Tester le apex,
www, et chaque affected subdomain pour a valide chain, correct hostname, un-hop HTTP→HTTPS redirection, et le prévu HSTS header. Garder certificate-expiry monitoring on le même inventory.
Ne faites pas tear bas le HTTP redirection or tell utilisateurs à bypass le warning. Le durable corriger est a valide HTTPS endpoint everywhere le active HSTS policy reaches.
Audit a actif HSTS policy
Act as a security-minded technical SEO. Review this Strict-Transport-Security
header, the HTTP redirect response, and the supplied subdomain inventory.
For the header, parse max-age, includeSubDomains, and preload. Explain the effective
scope, identify subdomains whose HTTPS or certificate coverage is unproven, and
separate browser-side HSTS behavior from the server-side 301 search engines need. Use
GET requests (HEAD can behave differently on some servers/clients), and record which
client or tool produced each observation and its version, since internal-redirect
representation is client/tool-specific rather than a fixed protocol value.
Recommend the next rollout stage: keep a short max-age canary, lengthen max-age,
add includeSubDomains, or consider preload. Do not recommend preload unless the
evidence shows a valid certificate, same-host HTTP→HTTPS redirects, HTTPS on every
subdomain, max-age of at least 31536000, includeSubDomains, and the preload token.
Return: observed configuration, risks, blocking evidence, next action, rollback
constraint, and exact validation checks. Triage an HSTS lockout
Given the affected hostnames, browser error, certificate details, DNS/CDN layout,
and live response headers, identify whether this is an expired certificate, hostname
mismatch, incomplete chain, includeSubDomains spillover, or preload issue. Prioritize
restoring valid HTTPS. Explain why removing a header does not immediately erase a
cached browser policy, then provide recovery and verification steps. HSTS inspection toolkit
- HTTP Header Checker — inspect le actif
Strict-Transport-Securityheader et confirmer il apparaît on HTTPS réponses. curl -I— comparer le HTTP redirection avec le HTTPS header sans relying on a navigateur’s remembered HSTS state.- Navigateur DevTools — confirmer le final réponse headers et certificate erreur vu par a réel client.
- HSTS preload status — vérifier submission requirements et si le domain est déjà represented dans le preload traiter.
Utiliser au moins deux views: command-line sortie montre le serveur réponse, pendant que a navigateur aussi exposes client-side enforcement et certificate difficile échecs. Préférer OBTENIR over HEAD quand comparing outils — some serveurs et clients represent le deux differently — et remarque le exact client/outil/version behind chaque reading.
Staged HSTS rollout tests
Tester 0: the state matrix (run ce avant staging changements)
HSTS status isn’t un fact — it’s several independent states que peut disagree. Track les separately, per hostname:
| Dimension | Ce que à vérifier | Notes |
|---|---|---|
| Actif HTTPS header, par réponse class | Le Strict-Transport-Security valeur on réel HTTPS réponses (page d’accueil, deep pages, API/asset réponses peut differ) | Utiliser OBTENIR, pas HEAD — some serveurs/CDNs vary header emission par méthode |
| Port-80 redirection | A genuine serveur-side redirection exists on port 80, pas simplement reliance on a learned client policy | Ce est ce que premier-time et non-HSTS clients depend on |
| Certificate coverage | Valide chain pour le apex, www, et chaque subdomain dans scope | Wildcard certs ne pas cover a deuxième DNS étiquette deep |
| Parent vs. entry-point subdomains | Si a directement-visited subdomain a en réalité reçu son propre HSTS réponse, since il peut pas inherit a parent’s learned policy le façon includeSubDomains implies on paper | Tester chaque entry point directement, pas simplement le apex |
| Learned state, fresh vs. returning client | Behavior on a client que a jamais vu votre header vs. un que a | Clair navigateur HSTS state (or utiliser a clean profile) à simulate “fresh” |
| Réel preload status | Si le domain est listed dans a donné navigateur’s shipped construire, pas simplement submitted | Vérifier via le navigateur’s propre status page/flag, pas simplement le submission formulaire |
Record le client, outil, et version pour chaque observation — internal-redirect representation et HSTS enforcement details vary à travers navigateurs, robots d’exploration, et command-line outils, et a stale reading depuis un client peut regarder comme a contradiction que n’est pas réel.
Tester 1: short max-age canary
- Objectif: Prove le header est emitted seulement depuis sain HTTPS réponses avant committing clients à a long policy.
- Méthode: Inspect representative templates et hosts avec le HTTP Header Checker
et
curl -I; comparer le deployed valeur avec le approved canary configuration. - Attendu résultat: HTTPS réponses carry le prévu court
max-age; HTTP encore renvoie a serveur-side redirection permanente à HTTPS. - Échec trigger: Manquant or duplicated headers, an unexpected long duration, certificate erreurs, or quelconque boucle de redirections.
- Suivant action: Corriger le header or HTTPS endpoint et garder le rollout à le canary stage.
Tester 2: includeSubDomains readiness
- Objectif: Empêcher a parent policy depuis locking out a forgotten hostname.
- Méthode: Tester chaque DNS hostname dans le maintained subdomain inventory pour a valide HTTPS réponse, correct certificate nom, et complet chain.
- Attendu résultat: Chaque dans-scope subdomain fonctionne over HTTPS, notamment legacy, vendor, development, et deeper-level hosts.
- Échec trigger: Quelconque HTTP-seulement service, expired or mismatched certificate, or hostname manquant depuis le inventory.
- Suivant action: Remediate or relocate le host avant ajout
includeSubDomains.
Tester 3: preload readiness
- Objectif: Vérifier le near-permanent policy satisfies le documented submission requirements.
- Méthode: Confirmer a valide certificate, même-host HTTP→HTTPS redirections, HTTPS on
tout subdomains, et an apex header avec
max-agede au moins31536000,includeSubDomains, etpreload. - Attendu résultat: Chaque requirement passes et le organization accepts le lent removal chemin.
- Échec trigger: Quelconque failed technique requirement or an unresolved besoin pour an HTTP-seulement subdomain.
- Suivant action: Ne faites pas submit; remain on le reversible staged policy.
Ressources utiles
Mon speaking
- Meilleur Sûr Que Sorry avec HTTPS — SMX East 2016 (SlideShare) — mon deep-dive on TLS, courant HTTPS implementation échecs, et le migration gotchas que HSTS les deux closes et peut amplify. (Standing disclaimer s’applique: c’est mon understanding de ces systèmes, et le adoption stats dans il sont depuis 2016.)
Mon connexe writing
- Le Beginner’s Guide à SEO technique — où HTTPS et HSTS fit dans le bigger picture.
Depuis autour le industry
- Enable HTTPS on votre serveurs (web.dev) — Google’s propre HSTS guidance: le header, SSL-stripping, et le difficile-fail warning.
- MDN —
Strict-Transport-Security— le authoritative header référence: syntax, directives, et scheme-upgrade behavior. - HSTS Preload Liste submission (hstspreload.org) — le Chromium project’s preload requirements et le near-irreversibility caveats.
- RFC 6797 — HTTP Strict Transport Security — le original specification, pour quand vous besoin le exact wording de a directive.
- HSTS — Ce que c’est et Comment utiliser Il (Kinsta) — a practical implementation guide covering le navigateur-level internal redirection, le preload liste, et le lock-dans risques.
- SSL Labs Serveur Tester (Qualys) — grade votre TLS configuration et confirmer HSTS est étant servi correctement.
Stats et difficile facts worth citing
«- Preload requires max-age ≥ 31536000 (1 year), includeSubDomains, and
preload. The exact, non-negotiable submission bar for the browser-baked list.
Source
» (Traduction) (Résumé en français de la section cent soixante-quinze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Preload removal takes months to reach users. From the submission service:
“inclusion in the preload list cannot easily be undone… it takes months for a
change to reach users with a Chrome update.” This is the number that makes preload
a one-way door. Source
» (Traduction) (Résumé en français de la section cent soixante-quinze, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- HSTS hosts hard-fail on any TLS error. web.dev: clients that know your site as an
HSTS host “are likely to hard-fail if your site ever has an error in its TLS
configuration.” No click-through — a lapsed cert becomes an outage.
Source
» (Traduction) (Résumé en français de la section cent soixante-quinze, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- HTTPS itself is “a very lightweight signal—affecting fewer than 1% of global
queries.” Google’s own framing — and HSTS is a layer on top of HTTPS, not a
separate ranking input, so its SEO weight is effectively zero. Right-size
expectations accordingly.
Source
» (Traduction) (Résumé en français de la section cent soixante-quinze, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
Testez vos connaissances: HSTS
Five rapide questions on HSTS. Pick an réponse pour chaque, alors vérifier.
Journal des modifications
Mis à jour le 17 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.
Cela vous a-t-il été utile ?
Poursuivre la conversation
Posez une question ici ou à d’autres spécialistes du SEO technique
Mes notes
- Guide : Mixed Content
- Certificats SSL/TLS
- HSTS: HTTP Strict Transport Security pour le SEO