HSTS: HTTP rigoroso Transport Segurança para SEO

O que faz realmente HSTS, um sintaxis de um cabecera Strict-Transport-Security (max-age, includeSubDomains, preload), um redirecionamento interna que somente ocurre em o navegador e que os rastreadores nunca ven, por o que não sustituye um seus redirecionamentos permanentes e como preload pode dejarle atrapado — por Patrick Stox.

Publicado pela primeira vez: 3 de jul. de 2026 · Última atualização: 22 de ago. de 2026 · Avançado
Idiomas
1 sinal de evidência nesta página

HSTS (HTTP rigoroso Transport Segurança) é uma cabecera de resposta Strict-Transport-Security —que somente se respeta quando llega por uma conexión segura— que indica ao navegador que use sempre HTTPS para seu dominio de ahí em adelante, cerrando um brecha insegura que um primera petição de um visitante novo sigue haciendo por HTTP antes de que se dispare seu 301. É uma política de um capa do navegador e por cliente que se suma um seus redirecionamentos do lado do servidor, não as sustituye: o RFC 6797 faz que o navegador reescriba o URI um HTTPS internamente antes de que salga nenhuma petição (um menudo se mostra como uma redirecionamento interna de estilo 307, embora o RFC não obliga um código de estado concreto), para que nenhum servidor ve nunca um forma HTTP e os rastreadores siguen necesitando seu 301 real para entender o alteração e transmitir o link equity. UM cabecera tem tres directivas: max-age (obligatoria), includeSubDomains e preload. Preload integra seu dominio em o próprio navegador por meio de hstspreload.org (requiere um max-age de ao menos um ano, includeSubDomains e o indicador preload) e é casi irreversible: um eliminação é um envío aparte que tarda meses em llegar um os usuários. HSTS também é deliberadamente implacable: um navegador que lhe conoce como host HSTS fallará em duro, sem posibilidade de continuar com um clic, se seu certificado llega um romperse. Assim que actívelo somente quando HTTPS seja realmente sólido em todos os subdominios, e trate preload como uma puerta de um somente sentido.

TL;DR — HSTS é um cabecera de resposta Strict-Transport-Security, que somente se respeta quando um navegador um recebe por uma conexión segura e que se almacena por cliente como política futura para esse host. Cierra o «problema de um primera petição» que uma 301 por sí sola deja abierto: um petição HTTP inicial de um visitante novo é insegura até que se dispara um redirecionamento, e essa é um ventana que busca um atacante que practique SSL stripping. Tres directivas: max-age (obligatoria, em segundos), includeSubDomains e preload. Quando um navegador aplica HSTS, reescribe o URI um HTTPS internamente, antes de que nenhuma petição llegue um servidor —o RFC 6797 não obliga um código de estado concreto para essa reescritura, embora as ferramentas suelen mostrarla como um 307—, para que seus 301 do lado do servidor siguen siendo obligatorias para os mecanismos de busca e para um autoridade de links (link equity); HSTS se suma um elas, não as sustituye. Preload integra seu dominio em o navegador por meio de hstspreload.org (requiere max-age ≥ 31536000, includeSubDomains e preload) e é casi irreversible: um eliminação é um envío aparte que tarda meses em llegar um os usuários. E HSTS está diseñado para fallar em duro ante qualquer error de certificado, assim que actívelo somente quando HTTPS seja robusto em todos os subdominios.

O hub de HTTPS apresenta o HSTS como uma proteção na camada do navegador que fica por cima dos seus 301s. esta página é o mergulho profundo: um sintaxe exata do cabeçalho, o redirecionamento interno que confunde profissionais de SEO, um quase irreversibilidade da lista de preload e as formas reais pelas quais o HSTS bloqueia o acesso de usuários.

O problema que HSTS resuelve realmente: um primera petição

Imagine um site migrado correctamente. todas as URL http:// redirigen com um 301 um seu gemela https://, o certificado é válido, as canónicas apuntan um HTTPS. Parece hermético. Não é do todo.

Quando um visitante completamente novo escribe yoursite.com (sem esquema) ou faz clic em um link antigo http://yoursite.com, um primera petição do navegador sale por HTTP sem cifrar. Seu servidor responde com um 301 e todas as petições posteriores são seguras. Mas esse primer viagem de ida e vuelta ocurrió em claro, e essa é exactamente um ventana que busca um atacante que practique SSL stripping em um mesma red. Intercepta um petição HTTP, mantém um víctima em HTTP enquanto faz de proxy em HTTPS para seu servidor, e lee ou reescribe todo.

HSTS elimina essa ventana para cualquiera que haya visitado o site antes. web.dev é directo sobre o mecanismo: “use rigoroso Transport Segurança para tell clients eles deve sempre connect para seu servidor usando HTTPS, even quando following um http:// reference. este defeats attacks like SSL Stripping, e avoids o round-trip cost de o 301 redirecionamento.” (traducção) «utilice rigoroso Transport Segurança para indicar um os clientes que sempre devem conectarse um seu servidor mediante HTTPS, incluso ao seguir uma referencia http://. Esto neutraliza ataques como o SSL Stripping e evita o costo do viagem de ida e vuelta de um redirecionamento 301.» “This defeats attacks like SSL Stripping”
(tradução) «este defeats attacks like SSL Stripping»
(web.dev). Essa última cláusula também importa para o desempenho: um navegador que vuelve se salta por completo o viagem de ida e vuelta HTTP→HTTPS. Evidence for this claim After receiving HSTS, a browser upgrades future HTTP attempts to HTTPS before sending the request. Scope: MDN documents user-agent enforcement after the header has been learned; first-visit protection requires preload or a prior secure visit. Confidence: high · Verified: MDN: Strict-Transport-Security header

Dos condições límite que conviene precisar. Primeiro, HSTS é uma política almacenada e por cliente: vive em o estado próprio de esse navegador concreto para esse host, aprendida de uma cabecera entregada por uma conexión segura; um mesma cabecera enviada em uma resposta HTTP se ignora diretamente (um atacante capaz de inyectar ou eliminar cabeceras em HTTP sem cifrar poderia, de outro modo, neutralizarla), e um cliente que nunca um ha recibido —uma instalação nova, outro navegador, um rastreador— não tem nenhuma política que aplicar. Segundo, um reescritura tem em conta o esquema e o puerto: uma petição com puerto 80 implícito pasa um ser uma petição com puerto 443 implícito, mas se o URI original nombraba um puerto explícito não predeterminado, o navegador conserva esse mesmo número de puerto e simplemente o contacta por HTTPS.

UM sintaxis de um cabecera

HSTS é uma única cabecera de resposta com até tres directivas. Segundo MDN, as formas são:

Strict-Transport-Security: max-age=31536000
Strict-Transport-Security: max-age=31536000; includeSubDomains
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
  • max-age=<seconds> — obligatoria. “O tempo, em seconds, que o navegador deve remember que um host é somente para ser accessed usando HTTPS” (traducção) «O tempo, em segundos, que o navegador deve recordar que somente é possível acceder um host mediante HTTPS» (MDN). 31536000 é um ano; 63072000, dos. O contador se reinicia com cada resposta que lleve um cabecera, para que um site activo renueva seu política de forma continua. Se trata de um estado relativo e por cliente: eliminar um cabecera sem mas não um borra de inmediato; um navegador que já aprendió um política sigue aplicándola até que se agota o max-age almacenado. para desactivar HSTS em os clientes que já um aprendieron, há que servir activamente max-age=0 em uma resposta segura; o navegador olvidará então um política em seu siguiente visita segura. (max-age=0 borra somente uma política aprendida: não elimina um dominio de um lista preload, que é aparte.)
  • includeSubDomains — opcional. “Se este directive é specified, o HSTS policy applies para todos subdomains de o host’s domain as well” (traducção) «Se se especifica esta directiva, um política HSTS se aplica também um todos os subdominios do dominio do host» (MDN). Potente e peligrosa um partes iguales: vea os escenarios de bloqueo mas abajo.
  • preload — opcional. Um indicador que señala seu intenção de estar em um lista preload do navegador. por sí somente não faz nada; é um requisito previo para enviar um solicitação um hstspreload.org. Evidence for this claim HSTS preload requires at least a one-year max-age, includeSubDomains, and preload; removal can take months to reach users. Scope: The Chromium preload service documents submission and removal behavior; requirements can change and should be rechecked before submission. Confidence: high · Verified: Chromium: HSTS Preload List Submission

O comportamiento, de novo segundo MDN: “Antes loading um http URL, o navegador checks o domain nome contra seu HSTS hosts lista. Se o domain nome é um caso insensitive match para um HSTS host ou é um subdomain de um que specified includeSubDomains, então navegador replaces o URL scheme com https.” (traducção) «Antes de carregar uma URL http, o navegador coteja o nome de dominio com seu lista de hosts HSTS. Se o nome de dominio coincide, sem distinguir mayúsculas e minúsculas, com um host HSTS ou é um subdominio de uno que especificó includeSubDomains, o navegador sustituye o esquema de um URL por https

UM actualização interna que os rastreadores nunca ven (aqui está o meollo para o SEO)

Esto é o que pior se entiende de HSTS, e um razón por um que não pode sustituir um seus redirecionamentos.

Quando um navegador actualiza uma petição http:// sob HSTS, reescribe o URI um HTTPS internamente, antes de realizar nenhuma petição de red: o RFC 6797 exige um sustitução do esquema em sí, mas não obliga um código de estado concreto para ella (RFC 6797 §8.3), para que um navegador ou uma ferramenta de rastreo podem representar esse etapa interno como prefieran; muitos o mostram como um 307 interno, mas eso é específico do cliente ou um ferramenta, não uma garantía do protocolo. O que importa para o SEO é mas simple e se cumple com independencia de um etiqueta: não se contacta com nenhum servidor para um versión HTTP, assim que nenhum rastreador llega um verla. Googlebot e Bingbot não llevan consigo uma política HSTS aprendida como sí faz o Chrome de um humano que vuelve: acceden um seu servidor em frío, e o que precisam encontrar ali é uma 301 real do lado do servidor. Evidence for this claim 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. Scope: 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. Confidence: high · Verified: RFC 6797 §8.3 — URI Loading and Port Mapping

“301 and other permanent redirects don’t cause a loss in PageRank”
(tradução) «redirecionamentos 301 e outros redirecionamentos permanentes não causam perda de PageRank»
Assim que um regra é tajante: HSTS não sustituye um seus 301 do lado do servidor. UM 301 é o que os mecanismos de busca usam para entender o alteração de protocolo e para consolidar sinais (301 e outro permanent redirecionamentos não cause um perda em PageRank(traducção) «as redirecionamentos 301 e otras redirecionamentos permanentes não provocan uma pérdida de PageRank», segundo Google). UM actualização interna que somente ocurre em o navegador é uma capa de experiência do usuário e segurança por encima. Precisa ambas, haciendo trabajos distintos:

  • 301 (do lado do servidor): para rastreadores, indexação e link equity.
  • Actualização interna de estilo 307 (do lado do navegador, por HSTS): para humanos que vuelven e para um protecção frente ao SSL stripping; um representação exacta do estado varía segundo o cliente ou um ferramenta.

Qualquer guía que lhe diga que HSTS «se encarga de um redirecionamento, assim que pode eliminar seu 301» está equivocada de uma forma que lhe saldrá cara sem que se dé conta.

HSTS preload: um versión casi permanente

max-age protege um os visitantes que vuelven, mas tem um problema de arranque: um visitante que llega por primera vez e nunca ha recibido seu cabecera sigue expuesto em essa petição inicial. Preload o resuelve codificando seu dominio em o próprio código fuente do navegador, para que o navegador sabe que você é somente HTTPS antes incluso de haberse conectado nunca.

Pode darse de alta em hstspreload.org. Os requisitos são exactos:

  1. “Serve um valid certificate.” (traducção) «Sirva um certificado válido.»
  2. “Redirecionamento de HTTP para HTTPS em o mesmo host, se você são listening em port 80.” (traducção) «Redirija de HTTP um HTTPS em o mesmo host, se está escuchando em o puerto 80.»
  3. “Serve todos subdomains over HTTPS” (traducção) «Sirva todos os subdominios por HTTPS», incluido em particular o subdominio www se existe um registro DNS.
  4. Em um resposta HTTPS do dominio base, uma cabecera HSTS onde “o max-age deve ser pelo menos 31536000 seconds (1 year),” (traducção) «o max-age deve ser de ao menos 31536000 segundos (1 ano)», “o includeSubDomains directive deve ser specified,” (traducção) «deve especificarse um directiva includeSubDomains» e “o preload directive deve ser specified.” (traducção) «deve especificarse um directiva preload». (hstspreload.org)

por eso o exemplo de dos anos de mas arriba (max-age=63072000; includeSubDomains; preload) é um forma que um gente envia. Tenha em conta que estes são os requisitos exactos de envío tal e como os publica hstspreload.org: trátelos como o listón real, não como uma constante permanente, e vuelva um consultar um página em vivo antes de enviar seu solicitação.

Conviene ter claros cuatro estados distintos, porque se confunden constantemente:

EstadoO que é cierto em realidade
Token presenteSeu cabecera inclui preload. Esto é somente um indicador: por sí mesmo não faz nada e não lhe inclui em nenhuma lista.
ElegibleSeu site cumple os cuatro requisitos de hstspreload.org anteriores (certificado, redirecionamento, subdominios, forma de um cabecera). Todavía não está em um lista.
Enviado / pendienteHa enviado um solicitação em hstspreload.org e está em cola para incluirse em uma próxima versión do navegador. Todavía não se aplica um usuários reais.
Realmente listadoO dominio está integrado em uma compilação publicada de um navegador concreto. UM aplicação somente existe para os usuários de essa compilação: o despliegue não é instantáneo nem universal entre navegadores.

UM eliminação recorre os mismos cuatro estados um inversa, e com um mesma lentitud: quitar um directiva preload de seu cabecera lhe faz elegible para o formulario de eliminação, depois o envío queda pendiente, e o dominio sigue aplicándose para qualquer usuário com uma compilação do navegador que todavía o incluya, até que essa compilação quede fuera de circulação.

Agora, um parte que convierte preload em uma puerta de um somente sentido. Do próprio site de envío: “Ser aware que inclusion em o preload lista cannot easily ser undone. Domains pode ser removed, mas isso takes months para um altere para reach usuários com um Chrome update e nós cannot faça garante sobre outro browsers.” (traducção) «Tenha em conta que um inclusión em um lista preload não é possível deshacer com facilidade. Os dominios se podem eliminar, mas um alteração tarda meses em llegar um os usuários com uma actualização de Chrome e não podemos oferecer garantías respecto um otros navegadores.» (hstspreload.org). E seu próprio consejo: “Não solicitação inclusion unless você está sure que você pode support HTTPS para seu entire site e todos seu subdomains em o long term.” (traducção) «Não solicite um inclusión um menos que esté seguro de que pode manter HTTPS em todo seu site e em todos seus subdominios um largo plazo.»

Traducção práctica: preload é uma postura de segurança realmente excelente, mas se alguna vez precisa servir qualquer cosa —um subdominio heredado, uma marca adquirida, uma ferramenta interna— por HTTP sem cifrar de novo, se quedará esperando um que os ciclos de publicação de os navegadores lleguen um todos os usuários. UM guía de Kinsta expone um realidade operativa sem rodeos: pode ser um proceso difícil e lento conseguir que se elimine seu dominio. Trate preload como algo permanente.

por o que HSTS está diseñado para doler quando algo se rompe

UM rigidez de HSTS não é um fallo: é toda seu garantía de segurança. web.dev explica um contrapartida: “Clients que têm listed seu site as um known HSTS Host são provável para hard-fail se seu site ever tem um error em seu TLS configuração, (such as um expired certificate). HSTS é explicitly designed este way para ensure que network attackers não pode trick clients em accessing o site sem HTTPS.” (traducção) «É probable que os clientes que han registrado seu site como um host HSTS conocido fallen em duro se seu site llega um ter um error em seu configuração TLS (como um certificado caducado). HSTS está diseñado explícitamente assim para garantizar que os atacantes de red não puedan engañar um os clientes para que accedan ao site sem HTTPS.» “Clients that have listed your site as a known HSTS Host”
(tradução) «Clients que têm listed seu site as um known HSTS Host»
(web.dev).

UM conclusión que saca Google é um frase que lhe tatuaría um cualquiera que esté um punto de activar esto: “Não enable HSTS until você está certain seu site operation é robust enough para avoid ever deploying HTTPS com certificate validation errors.” (traducção) «Não active HSTS até que esté seguro de que um operação de seu site é o bastante robusta como para não desplegar nunca HTTPS com errores de validação do certificado.» (web.dev).

«Fallar em duro» significa exactamente eso: nenhum link de «continuar de todos modos», nenhum clic para saltárselo. Em uma página HTTPS normal, um certificado caducado mostra um intersticial alarmante que um usuário decidido pode esquivar. Em um host HSTS, o navegador se niega em redondo. Assim que o modo de fallo de uma renovação de certificado olvidada altera de categoria: pasa de «o tráfico baja porque um gente se asusta» um «o site é inaccesible para todos os visitantes que já habían estado antes».

Escenarios reais de bloqueo

As formas em que HSTS muerde em um práctica casi sempre se remontan um que includeSubDomains ou preload se adelantan um seu cobertura real de HTTPS:

  • O subdominio olvidado. Activa includeSubDomains em example.com, mas legacy.example.com (uma aplicação antiga, uma página de estado, uma ferramenta de um proveedor) somente habla HTTP ou tem um certificado que não cubre. todos os navegadores que vieron um cabecera se niegan agora um carregar esse subdominio. Em esse servidor não cambió nada: um política se extendió para abajo e o rompió.
  • O hueco do certificado comodín. Um comodín *.example.com cubre foo.example.com mas não foo.bar.example.com (um comodín cubre uma sola etiqueta DNS de profundidade). Se um subdominio mas profundo depende de HTTP ou de um certificado que não coincide, includeSubDomains o deja bloqueado.
  • O certificado caducado em um host HSTS. UM automatização de um renovação falla, o certificado vence e, em vez de um aviso que é possível esquivar, tem um site caído para todos aquellos cuyo navegador recuerde seu política, até que recupere um certificado válido e se reconecten e reciban uma resposta segura nova. Não há forma mas rápida de anularlo.
  • O arrepentimiento por preload. Hizo preload e depois uma necesidade de negócio obliga um poner um servicio somente por HTTP sob o dominio. Revertirlo são dos trabajos distintos e nada instantáneos, não uno: servir max-age=0 por HTTPS somente borra um política aprendida em os clientes que se reconecten antes de que seu antigo max-age hubiera expirado de todos modos, enquanto que sacar o dominio de um lista preload é um envío aparte que aun assim tarda ciclos de publicação de os navegadores —meses— em llegar um os usuários, com independencia de o que cambie em seu servidor.
  • Colisiones com desarrollo local e staging. Fazer preload de example.com com includeSubDomains pode fazer que dev.example.com ou um host interno de tipo localhost sob o mesmo apex rechacen HTTP, rompiendo flujos de trabajo locales de formas sorprendentes.

Nada de esto é motivo para evitar HSTS. São motivos para desplegarlo por fases: primeiro um max-age corto, añadir includeSubDomains somente depois de auditar todos os subdominios e reservar preload para quando esté seguro.

HSTS não é uma jugada de posicionamiento (e não decide um URL principal)

para ser claros sobre o encuadre SEO: HSTS não é um fator de posicionamiento. HTTPS em sí mesmo é uno deliberadamente diminuto —Google o llamó uma “very lightweight sinal” (traducção) «sinal muito ligera» que afecta um menos do 1 % de as consultas— e HSTS é uma capa sobre HTTPS, não uma entrada de posicionamiento aparte. Tampoco decide diretamente um URL principal nem um indexação. Não entanto, um própria documentação de Google é mas específica que um simple «não importa»: Google prefiere HTTPS como URL principal frente um uma página HTTP equivalente excepto quando há um certificado não válido, dependencias inseguras em um página, uma página HTTPS que redirige um HTTP ou uma etiqueta rel="canonical" em HTTP (Google: consolidating duplicate URLs). HSTS não pode arreglar nem anular nada de eso. É uma política do lado do navegador sem nenhuma influencia em um elecção de Google: um certificado defectuoso ou uma cadeia de redirecionamentos rota todavía podem empujar um Google para uma URL principal em HTTP, diga o que diga seu cabecera HSTS. Essa elecção um impulsan seus redirecionamentos, seu certificado, seu rel="canonical" e seus links internos. HSTS se gana seu site por segurança, confianza do usuário e por cerrar um brecha do SSL stripping: hágalo por essas razones, mantenga seus redirecionamentos e seu certificado realmente sólidos, e de todos modos nunca verá HSTS em um relatório de posições.

Se está haciendo o alteração general de HTTP→HTTPS, HSTS é o último que activa, não primeiro: lhe corresponde depois de que um migração se haya asentado, como parte de um disciplina mas amplia de um migração web.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.