Redirecionamento 301 vs. 308

301 e 308 são redirecionamentos permanentes — a principal diferença é que 308 garante que o método HTTP (e o corpo que o acompanha) sobreviva ao salto. Por que 308 existe, por que Google e Bing o processam da mesma forma que processam 301 e quando realmente recorrer a ele.

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

Um 301 e um 308 são redirecionamentos permanentes, e Google e Bing tratam o 308 da mesma forma que tratam o 301 para rastreamento, indexação e sinais — a própria documentação do Google chama 308 de 'equivalent to 301,' _(tradução)_ 'equivalente a 301,' Gary Illyes diz 'we just merge that with 301,' _(tradução)_ 'simplesmente mesclamos isso com 301,' e Fabrice Canel, do Bing, confirma que o Bing os trata da mesma forma. No nível do protocolo, a principal diferença é mecânica: um 308 garante que o cliente repita o mesmo método de requisição (um POST continua sendo POST, e o corpo vai junto) na nova URL, enquanto um 301 — um código da era do HTTP/1.0 — é ambíguo especificamente sobre POST virar GET (a RFC não aborda PUT/DELETE de uma forma ou de outra). Portanto, para uma migração normal de página para página ou de site, 301 continua sendo o padrão pragmático (mais antigo, mais amplamente reconhecido, com melhor suporte de ferramentas/CDNs/plugins). Recorra ao 308 somente quando precisar preservar um método diferente de GET: endpoints de API, URLs de webhook, destinos de action de formulário, fluxos de POST de autenticação — e, mesmo assim, o código de status sozinho não garante que credenciais, cookies ou idempotência sobrevivam, então teste o cliente real. Não há vantagem de SEO em nenhum dos dois — quem disser para migrar em massa seus 301s para 308s em busca de um ganho de posicionamento está vendendo um mito que os mecanismos de busca desmentiram explicitamente.

TL;DR — 301 e 308 são ambos redirecionamentos permanentes, e Google e Bing processam um 308 da mesma forma que processam um 301 — a documentação do Google diz que 308 é “equivalent to 301,” (tradução) “equivalente a 301,” Illyes diz “we just merge that with 301,” (tradução) “simplesmente mesclamos isso com 301,” e Canel confirma que o Bing trata os dois da mesma forma. No nível do protocolo, a principal diferença é a preservação do método: 308 (RFC 7538, 2015) garante mecanicamente que o cliente repita o mesmo método na nova URL (o corpo vai junto); 301 é da era do HTTP/1.0 e ambíguo especificamente sobre POST virar GET — a RFC não aborda PUT ou DELETE de uma forma ou de outra, portanto não generalize a ressalva sobre POST para eles. O 308 existe para ser o irmão permanente do 307 — a RFC 7231 definiu um código temporário que preserva o método (307), mas nenhum permanente, e o 308 preencheu essa lacuna. Prefira 301 para migrações comuns de página/site/HTTPS (mais antigo, mais amplamente reconhecido, com melhor suporte de CDN/CMS/plugins). Recorra ao 308 somente quando precisar preservar uma requisição diferente de GET — endpoints de API, URLs de webhook, destinos de action de formulário, fluxos de POST de autenticação — e, mesmo assim, verifique credenciais, cookies e idempotência no cliente real, em vez de presumir que o código de status cobre tudo. Nenhum dos dois é “melhor para SEO” — é um mito que os mecanismos desmentiram explicitamente.

A diferença semântica vem primeiro

Tanto 301 quanto 308 dizem aos mecanismos de busca a mesma coisa sobre a permanência: o recurso mudou para sempre, e o destino deve se tornar canônico. A diferença está em uma garantia mecânica e estreita sobre como o cliente reemite a requisição.

  • 301 (Moved Permanently) é o código original de redirecionamento permanente, que remonta à era do HTTP/1.0. O ponto crucial é que ele sempre foi ambíguo quanto à obrigatoriedade de preservar o método da requisição. Na prática, navegadores e outros clientes historicamente converteram um POST em um GET ao seguir um 301 — o que funciona para uma página comum, mas quebra silenciosamente tudo que depende do método ou do corpo da requisição.
  • 308 (Permanent Redirect) é a versão estrita. Ele garante que o cliente repita o mesmo método e corpo exatos na nova URL. Um POST continua sendo POST; o payload vai junto.

A formulação em uma frase que eu daria a alguém: um 308 é um 301 que também garante que o navegador não trocará silenciosamente seu POST por um GET. Evidence for this claim RFC 9110 defines both 301 and 308 as permanent redirects; 308 forbids changing the request method, while 301 permits POST-to-GET rewriting for historical reasons. Scope: HTTP semantics for 301 and 308 responses. Confidence: high · Verified: IETF: RFC 9110 §§15.4.2, 15.4.9 IETF: RFC 7538 §3 — 308 Permanent Redirect

Por que o 308 existe: o “307 permanente” que faltava

Esta é a parte que quase ninguém explica, e é a forma mais clara de entender toda a comparação. É sobre uma lacuna na especificação.

Os códigos modernos de redirecionamento vêm em uma grade temporário/permanente, flexível/estrito:

TemporárioPermanente
O método pode mudar (flexível)302301
O método é preservado (estrito)307308

A RFC 7231 definiu o 307 — um redirecionamento temporário que preserva o método — como contraparte estrita do 302 flexível e ambíguo. Mas ela nunca definiu um equivalente permanente que preservasse o método. Havia um código temporário estrito e nenhum código permanente estrito. A RFC 7538 (abril de 2015) acrescentou o 308 especificamente para preencher essa lacuna: ele está para o 301 assim como o 307 está para o 302. Se você leu a comparação 302-vs-307 neste cluster, 301-vs-308 é exatamente a mesma relação uma linha acima — permanente flexível versus permanente estrito.

O 301 é anterior a toda essa estrutura. Ele veio do HTTP/1.0, antes de o conceito de “preservar o método” ser formalizado, e é exatamente por isso que é ambíguo e que o 308 precisou ser criado, em vez de apenas esclarecido.

O que significa preservar “método e corpo” na prática

Para a enorme maioria dos redirecionamentos — alguém clica em um link, seu navegador emite um GET, o servidor o envia para outro lugar — não há diferença prática. Os navegadores modernos preservam GET em um 301 sem problemas. A distinção só aparece quando a requisição não é um GET simples:

Tipo de requisiçãoCom um 301Com um 308
GET (uma página normal)Segue como GET (na prática, tudo bem)Segue como GET
POST (envio de formulário, API)Pode ser convertido silenciosamente em GET, e o corpo se perdeRepetido como POST, corpo intacto
PUT / DELETE (API)Não documentado pela RFC — a permissão histórica é apenas POST→GET; trate como específico do cliente e não verificadoMétodo preservado (a regra de seguimento automático do 308 não é específica de POST)

Portanto, o risco de um 301 está diretamente ligado a POST e corpos de requisição — formulários, APIs, webhooks, fluxos de autenticação. Dizer que um “301 will always break my form” (tradução) “um 301 sempre quebrará meu formulário” é exagero; um GET simples é seguro. A exceção histórica da especificação para 301 é especificamente POST→GET; ela não documenta o comportamento de PUT ou DELETE, então não presuma como nenhum dos dois códigos lidará com esses métodos sem testar o cliente real. O que a especificação deixa claro: 308 impede o cliente de mudar qualquer método que repita — essa regra não se limita a POST. A preservação do método é o que é garantido aqui; ela não promete separadamente que headers, cookies, credenciais ou a transação mais ampla sobreviverão intactos — isso depende do cliente e da integração, e vale testar qualquer coisa importante (veja a lista abaixo).

O Google trata 301 e 308 de forma diferente para SEO? Não.

Esta é a rara questão sobre redirecionamentos em que a documentação, os Googlers e o Bing concordam — e concordam de forma consistente há anos.

A documentação de códigos de status HTTP do Google coloca 301 e 308 no mesmo grupo. A linha do 301 diz: “Google follows the redirect, and Google systems use the redirect as a strong signal that the redirect target should be processed.” (tradução) “O Google segue o redirecionamento, e os sistemas do Google usam o redirecionamento como um sinal forte de que o destino do redirecionamento deve ser processado.” A linha do 308 tem uma única frase: “Equivalent to 301.” (tradução) “Equivalente a 301.” Essa é a afirmação mais forte e mais fácil de citar sobre a resposta — a própria documentação do Google literalmente equipara os dois. Evidence for this claim Google treats 308 as equivalent to 301 for Search while advising sites to use the semantically appropriate status code. Scope: Google Search processing; client behavior still differs when method preservation matters. Confidence: high · Verified: Google: HTTP status codes and Search

O guia de redirecionamentos reforça isso, começando com “The 301 and 308 status codes mean that a page has permanently moved to a new location” (tradução) “Os códigos de status 301 e 308 significam que uma página mudou permanentemente para um novo local” e não traçando nenhuma outra distinção entre eles.

Os Googlers dizem a mesma coisa informalmente há anos, muito antes de isso aparecer na documentação:

  • Gary Illyes (2021): em uma discussão sobre o Google tratar 308 como 301, ele disse que o Google “just merge[s] that with 301 so we really don’t care.” (tradução) “simplesmente mescla isso com 301, então realmente não se importa.” O texto de Barry Schwartz descreveu isso como o momento em que se tornou oficial: “Three years later it was added to the official Google documents that Google treats 308 redirects like 301 redirects — so now it is official.” (tradução) “Três anos depois, isso foi adicionado aos documentos oficiais do Google, que tratam redirecionamentos 308 como redirecionamentos 301 — então agora é oficial.”
  • John Mueller (2018): três anos antes — “If you use it [a 308 redirect] like a 301 we’ll treat it as such.” (tradução) “Se você usá-lo [um redirecionamento 308] como um 301, nós o trataremos como tal.” Portanto, essa é a posição informal do Google desde muito antes de a documentação alcançá-la.

Há uma nuance importante na documentação do Google, porém, e ela é a tese de todo este artigo. Logo após equiparar os códigos, o Google acrescenta: “While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (tradução) “O Google trata esses códigos de status como equivalentes, mas eles têm semânticas diferentes. Use o código apropriado para o redirecionamento, para que outros clientes (como leitores eletrônicos e outros mecanismos de busca) possam se beneficiar.” Em outras palavras: escolha o código pela correção e interoperabilidade, não pelo SEO — porque SEO não importa aqui.

O Bing trata 301 e 308 de forma diferente? Também não.

A maioria dos textos sobre este tema fala apenas do Google, o que deixa uma lacuna. Fabrice Canel, do Bing, respondeu diretamente à pergunta em setembro de 2024, em resposta a alguém que perguntou se o Bing trata um 308 permanente da mesma forma que um 301: “Bing treats 308 redirects the same as 301 redirects.” (tradução) “O Bing trata os redirecionamentos 308 da mesma forma que os redirecionamentos 301.” Schwartz observou que isso correspondia ao que o Google havia dito em 2021.

Portanto, os dois mecanismos principais estão registrados: 308 é funcionalmente idêntico a 301 para rastreamento, indexação e consolidação de sinais. Não existe mecanismo que trate 308 como superior para SEO.

O mito a desmentir: “308 é melhor para SEO / migre todos os seus 301”

Vou ser direto sobre isso, porque páginas de baixa qualidade continuam sugerindo o contrário. Não há benefício de SEO em escolher 308 em vez de 301 para um redirecionamento típico, nem motivo para migrar em massa seus 301 existentes para 308. Isso não é opinião minha; é a posição declarada dos mecanismos de busca:

  • A documentação do Google diz que 308 é “equivalent to 301.” (tradução) “equivalente a 301.”
  • Illyes: “we just merge that with 301.” (tradução) “simplesmente mesclamos isso com 301.”
  • Canel: o Bing “treats 308 redirects the same as 301 redirects.” (tradução) “trata os redirecionamentos 308 da mesma forma que os redirecionamentos 301.”

Trocar 301→308 em massa não traz nenhum ganho de posicionamento e introduz risco em qualquer ferramenta legada ou de borda que reconheça claramente apenas 301/302 (mais sobre isso abaixo). É pura movimentação.

Vale contrastar isso com um mito realmente controverso: a antiga alegação de “301s lose/dilute PageRank” (tradução) “301s perdem/diluem o PageRank”. Ela continua reaparecendo e foi desmentida repetidamente pelo Google. Mas note a diferença — o mito da diluição de PageRank é o Google corrigindo um equívoco, enquanto a equivalência entre 301 e 308 é algo que Google, Bing e a documentação vêm afirmando da mesma forma desde 2018. É uma questão resolvida, não uma questão controversa. (A história completa do PageRank está na comparação 301-vs-302 deste cluster.)

Quando 308 é a escolha tecnicamente correta

Recorra ao 308 quando perder o método ou o corpo da requisição quebraria a funcionalidade (não o posicionamento):

  • Endpoints de API que você está movendo, nos quais os clientes enviam POST/PUT/DELETE.
  • URLs de webhook — o remetente envia um POST com um payload que você não pode perder.
  • Destinos de action de formulário — o <form> envia dados que precisam chegar intactos à nova URL.
  • Fluxos de POST de autenticação/login nos quais credenciais ou tokens vão no corpo.

No caso de POST especificamente, um 301 corre o risco de o cliente converter a requisição em GET e deixar o corpo perdido; 308 proíbe essa conversão. Para PUT/DELETE, a RFC não especifica o comportamento do 301 de uma forma ou de outra, então não presuma — a regra de preservação do método do 308 continua valendo independentemente do método.

Antes de trocar uma API, um webhook ou um fluxo de autenticação, o código de status sozinho não garante que tudo sobreviverá ao salto — vale verificar como parte da mesma mudança:

  • Credenciais, cookies e headers de autenticação. Nenhum dos códigos promete isso; teste o cliente real (navegador, SDK, remetente do webhook), em vez de presumir que eles irão junto.
  • Comportamento entre origens. Um redirecionamento que cruza origens pode alterar o que um navegador ou cliente fetch enviará — verifique com o chamador real, não apenas com um curl manual.
  • Idempotência e efeitos colaterais duplicados. Se a requisição repetida não for idempotente (um webhook que cria um registro, um POST de pagamento), um cliente que tente novamente depois de um redirecionamento pode dispará-la duas vezes. Confirme que o destino trata uma repetição com segurança antes de depender de 308 para “simplesmente funcionar”.
  • Faça em etapas e reverta levando o cache em conta. Tanto as respostas 301 quanto 308 são heurísticamente armazenáveis em cache, então um cliente ou intermediário que já tenha armazenado a resposta antiga pode continuar usando-a depois que você mudar o código — teste com um cliente novo e com um que acessou a URL antes da mudança, e tenha um plano de reversão que leve esse estado em cache em conta, em vez de presumir que a troca é instantânea.

Quando 301 continua sendo o padrão pragmático

Para tudo que seja um GET simples — que é a maior parte do que SEOs redirecionam — 301 continua sendo o padrão sensato:

  • Mudanças comuns de página/URL e transferências de conteúdo.
  • Mudanças de domínio e fusões de sites.
  • Migrações de HTTP → HTTPS.
  • Consolidação de variantes www/sem www ou com/sem barra final.

Por que usar como padrão o código mais antigo quando 308 é “stricter” (tradução) “mais estrito”? Três razões práticas:

  1. Reconhecimento mais amplo. 301 antecede 308 em duas décadas e é reconhecido pela esmagadora maioria dos navegadores, proxies, CDNs, crawlers e ferramentas de analytics em uso atual e legado. 308 já tem mais de uma década e é amplamente compatível, mas a cauda longa de clientes legados e ferramentas de borda é menos certa — não presuma que toda ferramenta da sua pilha o reconhece sem verificar.
  2. Realidade das ferramentas. Muitas ferramentas comuns usam 301/302 por padrão — ou só os expõem claramente. Plugins de redirecionamento do WordPress, criadores de regras da Cloudflare e algumas plataformas serverless/CDN se apoiam em 301/302, e algumas emitem 302/307 independentemente do que você acha que configurou. Para quem administra um site sem perfil técnico, “o que minha plataforma realmente suporta” costuma ser o fator decisivo.
  3. Nada a ganhar. Como Google e Bing processam os dois códigos da mesma forma para rastreamento e indexação, não há vantagem em escolher o código menos amplamente compatível em uma mudança de página simples.

A regra prática: GET simples → 301; requisição diferente de GET que você precisa preservar → 308.

Como implementar cada um

A sintaxe é quase idêntica — você só muda o número.

Apache (.htaccess)

# 301 — permanent, for a normal page move
Redirect 301 /old-page /new-page

# 308 — permanent + method-preserving, for an API/form endpoint
RewriteEngine On
RewriteRule ^old-api/(.*)$ /new-api/$1 [R=308,L]

nginx

# 301
location = /old-page {
    return 301 /new-page;
}

# 308 — preserves POST body to the API
location = /old-api {
    return 308 /new-api;
}

Uma ressalva se aplica a ambos: algumas CDNs, plataformas de borda e plugins de CMS não honrarão um 308 que você configurar e emitirão 301/302/307 em vez disso. Se a preservação do método realmente importa para você, verifique a resposta que você está realmente enviando (faça um curl na URL e leia a linha de status), em vez de confiar na configuração. A sintaxe das diretivas também muda entre versões de servidor e frameworks — consulte a documentação da versão atual do Apache/nginx (ou do seu framework, se ele estiver gerando o redirecionamento), em vez de presumir que os trechos acima estão atuais byte a byte para a sua configuração.

Uma alavanca mais importante que escolher 301 ou 308: o tamanho da cadeia

Qualquer que seja o código escolhido, a alavanca de desempenho maior é manter os redirecionamentos curtos. O Google segue até cerca de 10 saltos de redirecionamento antes de desistir, e cada salto extra acrescenta latência e uma chance de os sinais se perderem. Um salto único e limpo com o código certo é melhor que uma cadeia de códigos “tecnicamente corretos”. Redirecione diretamente para o destino final.

Onde isso se encaixa

301 e 308 são os dois códigos de redirecionamento permanente, e cada um tem seu próprio aprofundamento neste cluster, ao lado dos equivalentes temporários (302 e seu irmão estrito 307) e do outro membro 3xx, 303. As comparações formam uma grade: 301-vs-302 é permanente versus temporário, 302-vs-307 é o par temporário flexível versus estrito, e esta — 301-vs-308 — é o par permanente flexível versus estrito. Fique atento também aos riscos operacionais: cadeias de redirecionamento e loops de redirecionamento. Para toda a família de respostas do servidor, veja o hub de códigos de status HTTP; o tipo de redirecionamento também é um dos sinais de canonicalização abordados em canonicalização.

Try it live

These are real endpoints on this site — not a simulation. Hit them from the button, open them in a new tab, or curl -i them from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗
Open in new tab ↗

Add an expert note

Pin an expert quote

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