Redirects

Redirect 301 ou 302: qual usar e como o Google trata cada um

A diferença entre permanente e temporário, cadeias, loops e o redirect 1:1 numa migração, com o jeito de conferir cada salto pelo terminal.

Equipe VarridaAtualizado em 10 min de leitura
Corrente azul-noite com um elo partido e faíscas âmbar
Neste artigo
  1. Redirect 301 ou 302: o que muda pro Google
  2. Quando usar redirecionamento 301 (e quando não usar)
  3. Cadeia de redirecionamento: quantos saltos o Google segue
  4. Loop de redirecionamento: por que acontece
  5. Redirect pra página errada: tudo pra home vira soft 404
  6. Migração de domínio ou de URLs: redirect 1:1
  7. Como configurar o redirect 301 no servidor
  8. Como conferir: curl -IL, Inspeção de URL e relatório Páginas
  9. Checklist rápido
  10. Perguntas frequentes

Use redirect 301 (ou 308) quando o endereço mudou de vez, e 302 (ou 307) quando a mudança é temporária. O Google trata o redirect permanente como sinal forte de que o destino deve ser a URL canônica e passa a mostrar o endereço novo na busca. No temporário, a URL antiga costuma continuar nos resultados. E nos dois casos o certo é um salto só, direto pra página final.

Redirect 301 ou 302: o que muda pro Google

O código de status diz ao Google se a mudança é definitiva. Na documentação sobre como os códigos de status HTTP afetam os rastreadores do Google, o 301 é um "indicador forte" de que o destino precisa ser processado, e o 302 é um "indicador fraco". Na prática:

  • Permanente (301, 308): o Google usa isso como indicador de que o destino deve ser a canônica e mostra o destino nos resultados.
  • Temporário (302, 303, 307): a URL de origem costuma continuar na busca. O destino ainda pode ser indexado se outros sinais apontarem pra ele.

O problema clássico é deixar um 302 numa mudança que era definitiva. O Google segue o redirect, mas pode continuar mostrando o endereço antigo.

Tabela: cada tipo de redirect e o que o Google faz

Tipo Permanente ou temporário Quando usar O que o Google faz
301 Permanente URL mudou de vez, domínio novo, http pra https Segue e usa como sinal forte de que o destino é a canônica
308 Permanente Mesmo caso do 301 (é o padrão do Next.js e da Vercel) Trata igual ao 301
302 Temporário Manutenção, promoção curta, variação de teste A/B Segue, mas como sinal fraco; a origem costuma ficar na busca
307 Temporário Mesmo caso do 302 Trata igual ao 302
303 Temporário Resposta a envio de formulário Trata como temporário
meta refresh de 0 segundo Permanente Quando você não controla o servidor Trata como permanente
meta refresh com atraso Temporário Quase nunca Trata como temporário
JavaScript (window.location) Permanente Último recurso Só enxerga se a renderização da página der certo

A página oficial Redirecionamentos e Pesquisa Google recomenda redirect do lado do servidor sempre que der. Se não der, meta refresh instantâneo:

<meta http-equiv="refresh" content="0; url=https://www.seusite.com.br/pagina-nova">

JavaScript fica pro caso em que nem isso é possível.

Por que o Next.js e a Vercel usam 307 e 308

Com 301 e 302, muitos navegadores trocam o método da requisição ao seguir o redirect: um POST vira GET. O 307 e o 308 preservam o método. Pro Google não faz diferença: 308 equivale a 301, e 307 equivale a 302. Ver 308 onde você esperava 301 não é problema. Ver 307 numa mudança definitiva é.

Quando usar redirecionamento 301 (e quando não usar)

Use redirect permanente quando:

  • a URL de uma página mudou e não vai voltar;
  • você juntou duas páginas parecidas numa só;
  • o site passou de http pra https, ou escolheu entre www e sem www;
  • você mudou de domínio.

Não use 301 quando:

  • a página sai do ar por pouco tempo (use 302 ou 307);
  • é uma variação de teste A/B;
  • a página foi removida e não tem substituta. Aí o certo é 404 ou 410.

Redirect no teste A/B: 302 nas variações

Se o teste manda parte das pessoas pra outra URL, a orientação do Google é usar 302, e não 301, porque o redirect vale só durante o experimento. As variações levam rel="canonical" apontando pra página original, e o teste fica no ar só pelo tempo necessário. Mais detalhes em teste A/B e SEO.

Cadeia de redirecionamento: quantos saltos o Google segue

Por padrão, os rastreadores do Google seguem até 10 saltos de redirecionamento. Mas o próprio guia de migração pede pra redirecionar direto pro destino final e, se não der, manter a cadeia em no máximo três saltos, cinco no limite. Cada salto aumenta a latência, e nem todo navegador consegue seguir cadeias longas.

Cadeia típica, fruto de regras empilhadas com o tempo:

http://seusite.com.br/produto-antigo
  301 → https://seusite.com.br/produto-antigo
  301 → https://www.seusite.com.br/produto-antigo
  301 → https://www.seusite.com.br/produtos/produto-novo
  200

Três saltos onde bastava um. Pra resolver:

  1. Faça cada regra apontar pro endereço final completo, já com https e o host certo. Se o destino mudar de novo, atualize os redirects antigos também.
  2. Coloque as regras de URLs específicas antes da regra geral de host (veja o exemplo de Apache abaixo).
  3. Troque links internos, canonical e sitemap pela URL final. Link interno não devia passar por redirect nenhum.

Loop de redirecionamento: por que acontece

Loop é quando A manda pra B e B manda de volta pra A. O navegador desiste com erro de "muitos redirecionamentos", e o Google não chega a página nenhuma. Onde costuma estar o problema:

  • www brigando com sem www: o painel da CDN manda pra sem www, e o servidor manda pra www.
  • Cloudflare no modo Flexible: a Cloudflare fala com o seu servidor em http, o servidor força https, e a volta nunca termina. A Cloudflare indica subir o modo de criptografia pra Full ou superior.
  • Barra no fim: uma regra tira a barra final e outra coloca.
  • Parâmetro mal escrito no Next.js: a documentação avisa que esquecer a barra antes dos dois-pontos (/:slug) faz o caminho virar texto literal e pode causar redirect infinito.

No Search Console, loop e cadeia longa demais aparecem como Erro de redirecionamento no relatório Páginas. O mesmo status cobre URL que passou do tamanho máximo e URL inválido ou vazio na cadeia.

Redirect pra página errada: tudo pra home vira soft 404

Na migração, é tentador mandar tudo que não tem par pra home. O Google pede pra não fazer isso: redirecionar muitas URLs antigas pra um destino irrelevante, como a página inicial, pode confundir quem chega e ser tratado como erro soft 404.

O que fazer em cada caso:

  • URL antiga com equivalente: redirect permanente pra página equivalente. Produto vai pra produto, artigo pra artigo.
  • Várias páginas antigas que viraram uma só: pode mandar todas pra página consolidada.
  • Sem equivalente: deixe responder 404 ou 410.

Vale pro dia a dia também: jogar toda URL inexistente na home é soft 404 (teste no verificador de soft 404). Confira também se o destino responde 200 e se a canonical dele não aponta de volta pra URL antiga, o que contradiz o redirect (veja canonical errada).

Migração de domínio ou de URLs: redirect 1:1

Um roteiro alinhado ao guia oficial de mudanças e migrações de sites:

  1. Liste as URLs antigas. Sitemap, Search Console, logs e analytics ajudam a não esquecer nenhuma.
  2. Mapeie cada URL antiga pra nova. Uma planilha com duas colunas: endereço antigo e destino.
  3. Configure redirect permanente no servidor (301 ou 308), direto pro destino final.
  4. Sem equivalente, 404 ou 410.
  5. Atualize links internos, canonical e sitemap e envie o sitemap novo no Search Console.
  6. Mudou de domínio ou subdomínio? Envie uma Alteração de endereço no Search Console, na propriedade do site antigo. Pra http → https ou www ↔ sem www no mesmo domínio, não precisa.
  7. Mantenha os redirects pelo maior tempo possível. O Google fala em pelo menos um ano.

O guia avisa que pode haver flutuação temporária no ranking e que, num site de porte médio, a maioria das páginas é movida em algumas semanas. Se o tráfego caiu e não voltou, veja o que fazer quando o site sumiu do Google.

Como configurar o redirect 301 no servidor

nginx

Guarde as URLs que mudaram num arquivo e inclua em todos os blocos. Assim, até quem chega por http e sem www vai pro destino final num salto só.

# /etc/nginx/redirects.conf
location = /produto-antigo {
    return 301 https://www.seusite.com.br/produtos/produto-novo;
}
# http (com e sem www) e https sem www
server {
    listen 80;
    server_name seusite.com.br www.seusite.com.br;
    include redirects.conf;
    location / { return 301 https://www.seusite.com.br$request_uri; }
}
server {
    listen 443 ssl;
    server_name seusite.com.br;
    # ssl_certificate e ssl_certificate_key aqui
    include redirects.conf;
    location / { return 301 https://www.seusite.com.br$request_uri; }
}
# no server do www (443), inclua redirects.conf também

Apache (.htaccess)

RewriteEngine On

# 1. URLs que mudaram: direto pro final, já com https e www
RewriteRule ^produto-antigo$ https://www.seusite.com.br/produtos/produto-novo [L,R=301]

# 2. Resto: http ou sem www vai pra https://www num salto só
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.seusite.com.br%{REQUEST_URI} [L,R=301]

A ordem importa: com a regra de host primeiro, http://seusite.com.br/produto-antigo daria dois saltos. Se o site está atrás de uma CDN que fala http com o servidor, %{HTTPS} fica sempre off e isso vira loop. Nesse caso, faça o redirect pra https na CDN.

Next.js (next.config.js)

module.exports = {
  async redirects() {
    return [
      {
        source: '/produto-antigo',
        destination: '/produtos/produto-novo',
        permanent: true, // responde 308
      },
    ]
  },
}

Pela documentação do Next.js, permanent: true gera 308 e permanent: false gera 307. Precisa de 301? Use statusCode: 301 no lugar de permanent, nunca os dois. Esses redirects rodam antes das páginas e da pasta /public.

Cuidado com a função redirect() dentro de componentes: ela responde 307, que é temporário. Pra mudança definitiva, use permanentRedirect() (308) ou, melhor, o next.config.js, que age antes da renderização.

Vercel

No vercel.json, a lógica é a mesma, e permanent vale true por padrão (308):

{
  "redirects": [
    { "source": "/produto-antigo", "destination": "/produtos/produto-novo", "permanent": true }
  ]
}

Pra www e sem www, use o painel: Settings, Domains, Edit no domínio de origem e escolha o destino em "Redirect to".

Cloudflare

Pra forçar https, ligue Always Use HTTPS em SSL/TLS, Edge Certificates. Pra outras regras, crie uma Redirect Rule em Rules, Overview. O código padrão é 301, e a opção Preserve query string vem desligada: se seus links carregam parâmetros, ligue.

WordPress e Shopify

  • WordPress: quando você troca o slug de um post, o próprio WordPress guarda o slug antigo e redireciona com 301. Pra páginas e outras mudanças, não conte com isso: confira com curl.
  • Shopify: os redirecionamentos de URL ficam no admin, na área de menus. Detalhe importante: o redirect só funciona se a URL antiga estiver quebrada (404). Se ela ainda carrega uma página, ele é ignorado.

Como conferir: curl -IL, Inspeção de URL e relatório Páginas

No terminal, com curl -IL

Teste sempre a pior entrada possível: http, sem www, URL antiga.

curl -sSIL http://seusite.com.br/produto-antigo | grep -iE '^(HTTP|location)'
HTTP/1.1 301 Moved Permanently
Location: https://seusite.com.br/produto-antigo
HTTP/2 301
location: https://www.seusite.com.br/produto-antigo
HTTP/2 302
location: https://www.seusite.com.br/produtos/produto-novo
HTTP/2 200

Cada linha HTTP é um salto. Aqui são três, e um deles é 302 numa mudança definitiva: dois problemas pra corrigir. Pra pegar loop, limite os saltos como o Google faz:

curl -sSIL --max-redirs 10 http://seusite.com.br/produto-antigo

Se terminar em curl: (47) Maximum (10) redirects followed, tem loop ou cadeia longa demais. Alguns servidores respondem diferente a HEAD (o -I). Se o resultado parecer estranho, troque por curl -sSL -o /dev/null -D - URL, que faz GET e mostra os cabeçalhos de cada salto.

Sem terminal, o verificador de redirect da Varrida mostra cada salto com o código até a página final e confere se http, https, com e sem www caem no mesmo endereço.

No Search Console: Página com redirecionamento

No relatório de indexação de páginas, dois status importam:

  • Página com redirecionamento: a URL redireciona pra outra, então ela própria não é indexada. Pra URL antiga, é o esperado. É problema quando aparece ali uma URL que você quer na busca, ou quando links internos e sitemap ainda apontam pra ela.
  • Erro de redirecionamento: loop ou cadeia quebrada. Esse precisa de correção.

Na Inspeção de URL, inspecione a URL nova, não a antiga: o "Testar o URL publicado" segue os redirects sem avisar. Na nova, o "URL canônico selecionado pelo Google" deve ser ela mesma.

Pra ver redirects junto com canonical, sitemap e status das páginas, a auditoria grátis da Varrida mostra os problemas mais graves em menos de 1 minuto, sem cadastro.

Checklist rápido

  • Mudança definitiva usa 301 ou 308. 302 e 307 só pro que é temporário, como teste A/B.
  • A URL antiga, testada a partir de http e sem www, chega na página final em um salto.
  • curl -sSIL --max-redirs 10 não termina com o erro 47.
  • Nada de redirect em massa pra home: sem equivalente, 404 ou 410.
  • Links internos, canonical e sitemap apontam pra URL final, sem redirect no meio.
  • No Next.js, redirect definitivo via permanent: true ou permanentRedirect(), não redirect().
  • Na Cloudflare, Preserve query string ligado quando os parâmetros importam.
  • Redirects da migração mantidos por pelo menos um ano.

Perguntas frequentes

Por quanto tempo preciso manter um redirect 301?

Pelo maior tempo possível. No guia de migração, o Google fala em pelo menos um ano, e pra quem ainda tem links antigos o ideal é nunca remover.

307 e 308 são piores que 301 e 302 pro SEO?

Não. Pro Google, 308 equivale a 301 e 307 equivale a 302. A diferença é técnica: 307 e 308 mantêm o método da requisição, então um POST continua POST.

Redirect em JavaScript funciona pro Google?

Funciona e é tratado como permanente, mas só se a renderização da página der certo. O Google recomenda usar só quando não dá pra fazer redirect no servidor nem meta refresh.

Preciso usar a ferramenta Alteração de endereço ao migrar pra https?

Não. Ela serve pra mudança de domínio ou subdomínio. Migração de http pra https e troca entre www e sem www no mesmo domínio não precisam dela.

O que fazer com uma URL antiga que não tem página equivalente no site novo?

Deixe ela responder 404 ou 410. Mandar muitas URLs assim pra home ou pra uma página sem relação pode ser tratado como soft 404.

Fontes

Publicado em 8 de outubro de 2026. Viu algo desatualizado? Escreve pra contato@varrida.com.

Varredura grátis

Veja o que o Google enxerga no seu site.

Cole o endereço e, em menos de 1 minuto, veja a nota e os problemas mais graves, cada um com a correção. Sem cadastro.

  • Grátis
  • Sem cadastro
  • Menos de 1 minuto
Continue lendo

Outros guias do blog