technical
Redireciona HTTP para HTTPS
O MetricSpot verifica se os pedidos http:// são redirecionados com 301 para https://. Sem isso, o teu site tem duas cópias indexáveis — e uma janela de downgrade para cada visitante de primeira vez.
O que esta verificação faz
Faz um pedido a http://teudominio.com/ e procura uma resposta 301 ou 308 com um cabeçalho Location: a apontar para https://. A verificação falha se a versão HTTP devolver 200 (o teu site é servido em dual em texto simples) ou não devolver nada (a porta 80 HTTP não está à escuta).
Porque é importante
Mesmo com HTTPS disponível, o primeiro pedido que um novo visitante faz é quase sempre em texto simples. Escreve teudominio.com e o browser tenta primeiro HTTP. Sem redirecionamento, três coisas correm mal ao mesmo tempo.
- Duas cópias indexáveis. O Google trata
http://example.com/pageehttps://example.com/pagecomo URLs separados. Sem um 301, ambos podem aparecer no índice, dividindo backlinks e sinal de ranking. - Janela de downgrade. Esse primeiro pedido em texto simples é quando os ataques estilo sslstrip acontecem em redes hostis. O servidor deve recusar a conversa e forçar o upgrade.
- Avisos de conteúdo misto. Se a versão HTTP renderizar mesmo, cada URL de asset na página que não for protocol-relative é obtido por HTTP — e os browsers modernos bloqueiam-nos em silêncio.
O redirecionamento é a ponte para o HSTS. Uma vez definido o HSTS, os browsers deixam de bater em HTTP nas visitas seguintes — mas o redirecionamento ainda tem de apanhar visitantes de primeira vez e crawlers.
Como corrigir
Põe-te à escuta na porta 80 e devolve 301 para o equivalente HTTPS de cada caminho:
nginx:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
Apache (.htaccess):
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Caddy — automático. O Caddy redireciona HTTP→HTTPS por defeito assim que um site block tem um hostname elegível para TLS.
Cloudflare — SSL/TLS → Edge Certificates → “Always Use HTTPS” → On.
Vercel / Netlify / Render / Dokku — o redirecionamento HTTPS está ligado por defeito em qualquer projeto com domínio personalizado.
Trata do certificado primeiro. Se ainda não tens, Let’s Encrypt + Certbot é gratuito e renova-se automaticamente:
sudo certbot --nginx -d example.com -d www.example.com
Audita por ti — curl -sI http://example.com/ deve imprimir HTTP/1.1 301 Moved Permanently e um cabeçalho Location: https://.... Qualquer outra coisa (200, 404, connection refused) falha a verificação.
Perguntas frequentes
301 ou 308?
O 301 é o padrão. O 308 (RFC 7538) é a mesma ideia, mas garante que o método e o body não são reescritos no redirecionamento, o que importa em pedidos POST. Para um site típico com tráfego GET, o 301 chega e é o que cada CDN / WAF usa por defeito.
E o subdomínio da API — mesma regra?
Sim. Qualquer subdomínio que sirva tráfego real deve redirecionar HTTP para HTTPS da mesma maneira. Se a API for daquelas que só aceita HTTPS (sem fallback) também podes configurar o servidor para recusar a porta 80 por completo com connection: close.
Devo redirecionar para www ou não-www ao mesmo tempo?
Se vais colapsar as duas decisões num só redirecionamento, sim — combina-as para que os visitantes aterrem no URL canónico após um salto, não dois. Vê Mantém as cadeias de redirecionamento curtas para a armadilha de empilhar redirecionamentos.
Fontes
Última atualização 2026-05-11