Guia completo de redirecionamentos HTTP

Conteúdo

O que é um redirecionamento HTTP?

Um redirecionamento HTTP (redirecionamento de URL) é um mecanismo que envia automaticamente um usuário de uma URL para outra. Quando você solicita uma página, o servidor pode responder com um código de status 3xx e um cabeçalho Location apontando para o novo endereço — o navegador então segue esse endereço automaticamente.

Os redirecionamentos são usados em muitos cenários comuns:

Como funcionam os redirecionamentos

Requisição do cliente:
GET /old-page HTTP/1.1
Host: example.com

Resposta do servidor:
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page

Tipos de redirecionamento explicados

301 Movido permanentemente

301 é o tipo de redirecionamento mais comum. Ele informa aos clientes e mecanismos de busca que o recurso foi movido permanentemente para uma nova URL.

✅ Quando usar 301

  • Migração permanente de domínio
  • Reestruturação permanente de URLs
  • Atualização de HTTP → HTTPS
  • Consolidação de conteúdo duplicado

SEO: Os mecanismos de busca transferem a autoridade de link (PageRank) para a nova URL e atualizam seu índice. O Google geralmente completa isso em algumas semanas.

Comportamento do navegador: Os navegadores podem armazenar em cache os redirecionamentos 301, pulando a URL original em visitas futuras.

302 Encontrado (Temporário)

302 sinaliza um movimento temporário. A URL original permanece válida e indexada.

✅ Quando usar 302

  • Páginas de manutenção
  • Testes A/B
  • Roteamento temporário baseado em geolocalização
  • Divisões temporárias mobile/desktop

303 Ver outro

303 força o cliente a usar GET para a requisição redirecionada, independentemente do método original. Usado principalmente após envios POST para evitar o reenvio de formulários ao atualizar a página (padrão Post/Redirect/Get).

307 Redirecionamento temporário

307 é como 302, mas preserva estritamente o método de requisição original. Um POST continua sendo POST após o redirecionamento — diferente do 302, que historicamente permitia mudanças de método.

308 Redirecionamento permanente

308 é a contraparte do 301 que preserva o método. Para requisições GET, 301 e 308 se comportam de forma idêntica. Use 308 quando precisar de um redirecionamento permanente que não deve alterar o método de requisição.

Redirecionamentos do lado do cliente

Meta refresh

<meta http-equiv="refresh" content="0; url=https://example.com/new-page">

Evite para SEO — os mecanismos de busca podem não lidar corretamente com isso.

Redirecionamento com JavaScript

window.location.href = "https://example.com/new-page";

Não é ideal para SEO, pois os rastreadores podem não executar JavaScript.

⚠️ Limitações dos redirecionamentos do lado do cliente

Redirecionamentos do lado do cliente não carregam códigos de status HTTP, então os mecanismos de busca não conseguem determinar se a mudança é permanente ou temporária. Sempre prefira redirecionamentos do lado do servidor.

Quando usar cada tipo

Impacto no SEO

Transferência de autoridade de link

Um redirecionamento 301 transfere quase toda a autoridade de link para a nova URL. O Google declarou que os 301 transferem perto de 100% do PageRank. Um 302 não transfere autoridade — a URL original mantém seus sinais de ranqueamento.

Tempo de atualização do índice

Após um 301, o Google geralmente:

Impacto da cadeia de redirecionamento

Cada salto adicional em uma cadeia (A → B → C) adiciona latência e pode diluir a autoridade. O Google segue até ~10 saltos, mas cadeias com mais de 3 são um sinal de alerta. Sempre redirecione diretamente da URL original para o destino final.

🎯 Melhor prática

Use redirecionamentos diretos (A → C). Audite suas cadeias regularmente e simplifique-as sempre que possível.

Problemas comuns e soluções

1. Loops de redirecionamento

Sintoma: O navegador mostra "muitos redirecionamentos".

Causas comuns: Conflito de configuração HTTPS entre CDN e origem, siteurl incorreto no WordPress, regras conflitantes no Nginx/Apache, configuração errada do .htaccess.

# Diagnosticar com curl
curl -I -L https://example.com

Ou use o 301check.com para visualizar a cadeia completa.

2. Perda de query string

Certifique-se de que suas regras de redirecionamento preservem os parâmetros de consulta. No Nginx, use $request_uri ou $is_args$args.

3. Redirecionamentos 301 em cache

Os navegadores armazenam em cache os redirecionamentos 301. Se você alterar um redirecionamento, os usuários podem continuar vendo o destino anterior. Teste em uma janela privada ou limpe o cache.

4. Redirecionamento mobile incorreto

Se os usuários mobile são redirecionados para a página inicial em vez da página mobile equivalente, corrija o mapeamento de URLs ou mude para um design responsivo.

Melhores práticas