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:
- Migrar um site para um novo domínio
- Reestruturar caminhos de URL
- Atualizar de HTTP para HTTPS
- Servir URLs diferentes para mobile e desktop
- Encurtadores de URL (bit.ly, t.co, etc.)
- Testes A/B e divisão de tráfego
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
- Mudança permanente de domínio → 301
- Manutenção temporária → 302
- HTTP → HTTPS → 301
- Canonicalização www / sem www → 301
- Após envio de formulário → 303
- Teste A/B → 302
- Redirecionamento permanente, preservar método → 308
- Redirecionamento temporário, preservar método → 307
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:
- Descobre o redirecionamento em dias
- Atualiza o índice em 1–4 semanas
- Transfere completamente a autoridade em 1–3 meses
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
- Use 301 para mudanças permanentes, 302 para temporárias
- Na dúvida, comece com 302 — você sempre pode mudar para 301 quando tiver certeza
- Evite cadeias de redirecionamento; redirecione diretamente para a URL final
- Preserve os query strings nas suas regras de redirecionamento
- Monitore com o Google Search Console após migrações importantes
- Documente todas as regras de redirecionamento para que a equipe saiba o que está configurado
- Teste com o 301check.com antes e depois de qualquer mudança