308 Redirecionamento Permanente

O que é um 308 Permanent Redirect, como ele preserva o método HTTP enquanto sinaliza permanência, ao contrário de um 301, e como o Google passa sinais de ranking por ele.

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

Um 308 Permanent Redirect é uma mudança permanente (igual a 301) com uma garantia extra e rígida: o cliente não pode mudar o método da solicitação na nova URL — e, como um cliente compatível repete a mesma solicitação em vez de emitir uma nova, o corpo segue junto, então POST continua sendo POST. Para SEO, ele é idêntico a 301: a documentação do Google o chama de equivalente a 301, Gary Illyes diz que o Google o mescla com 301 e Fabrice Canel confirma que o Bing os trata da mesma forma. Portanto, não há motivo de ranking para escolher um em vez do outro. Escolha 308 quando estiver redirecionando uma solicitação não-GET que precisa chegar intacta — um endpoint de API, webhook, formulário ou POST de autenticação — porque 301 pode, “por razões históricas”, rebaixar silenciosamente esse POST para GET e deixar o corpo para trás. Para uma mudança comum de página, troca para HTTPS ou alteração de domínio (todos GETs simples), 301 continua sendo o padrão pragmático graças ao suporte mais amplo de ferramentas, CDNs e plugins. O suporte dos navegadores é alto em 2026 — o caniuse registra atualmente cerca de 96,5%+ —, mas a ressalva que vale verificar é sua própria stack: alguns plugins de CMS, UIs de regras de edge e proxies antigos ainda só expõem 301/302/307.

TL;DR — 308 é o redirecionamento permanente que preserva estritamente o método: o mesmo sinal de canonicalização do 301 (a documentação do Google diz “Equivalent to 301), mas com a garantia de que o cliente não alterará o método na nova URL — e, como um cliente compatível repete a mesma solicitação em vez de criar uma nova, o corpo segue junto. Ele existe porque o HTTP teve um código temporário que preservava o método (307) anos antes de ter um permanente — a RFC 7538 (2015) preencheu essa lacuna, e a RFC 9110 agora aponta diretamente para 308 na própria definição de 301. Para SEO, os dois são intercambiáveis (Illyes: o Google “merges” (tradução) «mescla» 308 com 301; Canel, do Bing, confirma a paridade). Escolha 308 quando uma solicitação não-GET precisar sobreviver: migrações de API/versão, URLs de webhook e fluxos POST de autenticação/formulário — mas verifique a preservação de método e corpo no seu próprio cliente, em vez de presumir isso apenas pela especificação. Fora disso, 301 continua sendo o padrão — o suporte dos navegadores ao 308 é forte em 2026 (o caniuse registra atualmente cerca de 96,5%+), mas a própria RFC 9110 ainda sinaliza que 308 é mais novo e não é reconhecido universalmente, e alguns plugins de CMS, UIs de regras de edge e proxies antigos ainda só expõem 301/302/307.

O que 308 significa, mecanicamente

Um Permanent Redirect 308 carrega a mesma mensagem de um 301 — este recurso agora fica permanentemente em uma nova URL — com uma adição que o 301 nunca garantiu: o cliente não deve alterar o método da solicitação no destino. Como o cliente repete a mesma solicitação em vez de emitir uma nova, o corpo segue junto em um cliente compatível com a especificação — isso é uma consequência da garantia do método, não uma promessa certificada separadamente; portanto, verifique de ponta a ponta para seu próprio cliente e servidor em vez de assumir sem ressalvas. A MDN descreve 308 como o código que mantém inalterados o método (e, na prática, o corpo) da solicitação durante o redirecionamento, enquanto um 301 pode não fazer isso.

A versão em linguagem simples que uso no guia de redirecionamentos da Ahrefs: “A 308 redirect is the same as a 301 redirect, except it retains the HTTP method of the original request, GET or POST, when performing the redirect.” (tradução) «Um redirecionamento 308 é igual a um redirecionamento 301, exceto por manter o método HTTP da solicitação original, GET ou POST, ao realizar o redirecionamento.» Ou, ainda mais curto, no guia de códigos de status HTTP: “308 Permanent Redirect – Has the same functionality as a 301 redirect, except you can’t switch between POST and GET.” (tradução) «308 Permanent Redirect — tem a mesma funcionalidade de um redirecionamento 301, exceto que não permite alternar entre POST e GET.» Evidence for this claim RFC 7538 defines 308 Permanent Redirect as a permanent move whose redirect follow-up must not change the request method. Scope: HTTP semantics for 308 responses. Confidence: high · Verified: IETF: RFC 7538 §3 — 308 Permanent Redirect

Veja a diferença na prática. Imagine que um cliente envie POST de um pedido para /api/orders com um corpo JSON:

POST /api/orders HTTP/1.1
Host: shop.example.com
Content-Type: application/json

{ "sku": "A-100", "qty": 2 }

Se esse endpoint responder com 301 e o cliente respeitar a permissão histórica “você pode mudar para GET”, a solicitação pode chegar à nova URL como um GET vazio — o corpo desaparece e o pedido se perde. Responda com 308 e o cliente deve repetir o POST na nova URL; um cliente compatível carrega o corpo junto, então o pedido é processado — confirme isso nos logs do seu próprio cliente e servidor (veja a aba Scripts) em vez de presumir que funcione universalmente. Essa é toda a distinção prática: ela só aparece quando a solicitação original não era um GET simples.

Por que 308 existe — a história da especificação

Esta é a parte que a maioria das explicações deixa de fora e a forma mais clara de entender o código.

307 veio primeiro. O HTTP já tinha um redirecionamento temporário que preservava o método — o 307 — muito antes de ter um equivalente permanente. A especificação central original (RFC 7231) nunca definiu um equivalente permanente do 307. Assim, havia um código temporário “mantenha o método” e um código permanente “você pode mudar o método” (301), mas nenhum código permanente “mantenha o método”.

A RFC 7538 preencheu a lacuna. 308 foi adicionado especificamente para ser o 307 permanente que faltava — primeiro como a RFC 7238 experimental (junho de 2014), depois padronizado como a RFC 7538 (abril de 2015). É um encaixe para uma lacuna real, não um substituto do 301.

A especificação atual aponta diretamente para ele. A RFC 9110, especificação atual de semântica HTTP, ainda documenta a ambiguidade incorporada ao 301 — e então nomeia 308 como a correção dentro da própria definição de 301: um agente de usuário “MAY change the request method from POST to GET for the subsequent request… If this behavior is undesired, the 308 (Permanent Redirect) status code can be used instead.” (tradução) «PODE mudar o método da solicitação de POST para GET na solicitação seguinte… Se esse comportamento for indesejado, o código de status 308 (Permanent Redirect) pode ser usado.» Essa única frase é a razão inteira de 308 existir, diretamente da especificação oficial. E, em sua própria seção sobre 308, a RFC 9110 acrescenta a ressalva honesta: esse código “is much younger (June 2014) than its sibling codes and thus might not be recognized everywhere.” (tradução) «é muito mais novo (junho de 2014) que seus códigos irmãos e, portanto, pode não ser reconhecido em todos os lugares.»

O comportamento POST-para-GET do 301 não é um bug — é uma permissão documentada “por razões históricas” incorporada à especificação, e 308 é a forma oficialmente aprovada de não aceitá-la.

301 versus 308 — a diferença prática em uma tabela

Solicitação GET simplesPOST/PUT/DELETE com corpo
301Comporta-se de forma idêntica a 308Pode ser rebaixado para GET; o corpo pode ser descartado
308Comporta-se de forma idêntica a 301Método e corpo garantidamente repetidos
Sinal de SEOIgual (permanente, consolida)Igual (permanente, consolida)

A conclusão: para a grande maioria dos redirecionamentos — que são GETs simples — 301 e 308 fazem exatamente a mesma coisa. A garantia só se justifica quando um método não-GET com corpo está envolvido. (Para a comparação completa, veja o artigo dedicado a 301 versus 308.)

O Google trata 308 da mesma forma que 301 para SEO?

Sim, sem ambiguidade, e isso está documentado. A documentação de códigos de status HTTP do Google lista 301 como um redirecionamento que o Google “use[s]… as a strong signal that the redirect target should be processed,” (tradução) «usa como um sinal forte de que o destino deve ser processado» e lista 308 simplesmente como “Equivalent to 301.” (tradução) «Equivalente a 301.» Ela acrescenta uma ressalva sensata: “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) «Embora o Google trate esses códigos de status da mesma forma, lembre-se de que são semanticamente diferentes. Use o código apropriado para o redirecionamento para que outros clientes possam se beneficiar dele.» Em termos simples: o Google não vai penalizar você por usar o código “errado”, mas você ainda deve usar o que é correto para a solicitação, pois outros softwares dependem da distinção.

Evidence for this claim Google treats 308 as equivalent to 301 for Search and groups both as permanent redirects. Scope: Google Search processing; the two status codes remain semantically different for HTTP clients. Confidence: high · Verified: Google: HTTP status codes and Search Google: Redirects and Google Search

A documentação de redirecionamentos do Google coloca os dois códigos na mesma categoria recomendada: “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 a orientação de mudança de site cita 308 explicitamente, em vez de tratá-lo como uma nota secundária do 301 — a recomendação é usar redirecionamentos HTTP permanentes “such as 301 and 308” (tradução) «como 301 e 308» ao fazer uma mudança permanente.

Vale saber: essa paridade nem sempre foi documentada. Gary Illyes disse que o Google mescla 308 com 301 internamente, e a cobertura do Search Engine Roundtable apresenta o momento em que isso entrou na documentação oficial como o ponto em que uma observação informal finalmente se tornou algo em que você podia confiar — os proprietários que perguntavam “isso está realmente documentado?” alguns anos atrás tinham razão em ser cautelosos, embora o comportamento subjacente nunca tenha mudado. Se quiser a formulação exata do Google e de seus representantes, a aba Citações contém as citações verificadas e os links profundos.

O Bing trata 308 da mesma forma que 301?

Sim. O Bing não tem uma página de documentação dedicada explicando 308 como o Google tem, mas Fabrice Canel, da Microsoft, confirmou isso diretamente no X em setembro de 2024, conforme relatado pelo Search Engine Roundtable: o Bing trata redirecionamentos 308 da mesma forma que redirecionamentos 301. Essa é a declaração autoritativa do Bing — veja a aba Citações para a frase literal.

Quando realmente usar um 308

É aqui que está o caso independente para 308 — e quase sempre é uma solicitação não-GET.

Endpoint de API e migrações de versão. Mover /v1/ para /v2/, ou realocar um host de API, é o caso clássico. Clientes acessam esses endpoints com POST/PUT/PATCH/DELETE e corpos reais. Um 308 garante que o método e a carga útil sobrevivam ao salto; um 301 arrisca um rebaixamento silencioso que deixa a solicitação perdida.

Migrações de site com muitos POSTs. Fluxos de checkout, endpoints de login/autenticação e destinos de ações de formulário enviam dados POST. Se qualquer uma dessas URLs mudar durante uma migração, 308 mantém o envio intacto onde 301 talvez não consiga.

Mudanças de URL de webhook. Quando outro serviço envia POST para uma URL de webhook que você está realocando, 308 diz ao cliente HTTP para reenviar o POST ao novo endereço com o corpo intacto — exatamente o que um consumidor de webhook precisa.

O ponto em comum: use 308 sempre que perder o corpo ou deixar o método cair silenciosamente para GET quebrar a funcionalidade, não apenas alterar um pouco de valor de SEO.

Antes de mudar qualquer um desses caminhos, teste como uma integração, não apenas como um código de status:

  • Repita o método e a carga útil reais contra uma cópia de staging do novo endpoint.
  • Confirme se cabeçalhos de autorização ou cookies devem ser transportados e verifique se realmente são.
  • Se a solicitação original não for idempotente (um POST que cria um pedido, por exemplo), observe possíveis efeitos duplicados durante o salto do redirecionamento.
  • Confirme que a query string e o cabeçalho Content-Type sobrevivem, não apenas o corpo.
  • Verifique se o cliente real — o remetente do webhook, o SDK da API ou o navegador — segue automaticamente um 308 antes de aposentar o endpoint antigo. Nem todo cliente HTTP faz isso por padrão.

Quando 301 ainda é o padrão pragmático

Para tudo que seja um GET simples, 301 continua sendo o padrão sensato:

  • Mudanças comuns de conteúdo/URL de página.
  • Migrações de HTTP → HTTPS.
  • Mudanças de domínio e migrações comuns de site.
  • Normalização de barra final e de www/sem www.

Aqui a solicitação é um GET simples, então a garantia do 308 não oferece nada — e 301 vence pela universalidade. Não há custo de SEO em nenhum dos dois. Não migre em massa 301s existentes para 308s em busca de aumento de rankings; esse benefício não existe. Observe que, na hierarquia de preferência de redirecionamentos do guia da Ahrefs, 308 e 301 ficam juntos no nível mais alto (à frente de meta refresh, JavaScript e outras soluções alternativas) — são pares, não degraus.

Ressalvas de adoção e suporte — qual é o risco real em 2026

O suporte dos navegadores não é o risco prático de antes. Segundo o acompanhamento atual do caniuse, 308 tem cerca de 96,5%+ de suporte global — consulte a tabela ativa para o número de hoje, pois ele muda — e as lacunas visíveis se concentram em navegadores mortos há anos: anteriores ao IE11, Chrome/Firefox/Safari antigos e Android Browser antigo. Se você ainda vê circulando o alerta antigo “IE11 falha com 308”, ele está desatualizado para tráfego mainstream.

As ferramentas são a ressalva mais atual. A lacuna honesta de 2026 é que nem toda camada expõe uma opção 308. Alguns plugins de redirecionamento de CMS, algumas UIs de regras de redirecionamento de CDN/edge e alguns proxies reversos ou balanceadores antigos ainda só deixam escolher 301/302/307. Antes de se comprometer com 308, verifique se a camada que realmente serve o redirecionamento pode emiti-lo, em vez de rebaixá-lo silenciosamente — a aba Scripts tem uma linha única para confirmar o código real na rede. A observação da RFC 9110 sobre ser “much younger… might not be recognized everywhere” (tradução) «muito mais novo… pode não ser reconhecido em todos os lugares» não se limita a navegadores — é a cautela geral da especificação para implantação de 308. Em 2026, o impacto prático dessa cautela aparece sobretudo nas ferramentas, não nos navegadores mainstream, mas vale lê-la como a ressalva de base da especificação, não como algo completamente aposentado.

Uma nota de rodapé não padrão: “308 Resume Incomplete”

Uma peculiaridade que reforça como esse código ainda é novo: 308 não é somente um código de redirecionamento no mundo real. A API de upload do Google Drive reutiliza 308 com um significado completamente diferente — “Resume Incomplete”, sinalizando que um upload em partes parou e que o cliente deve retomá-lo. John Mueller destacou isso (veja a aba Citações) e a MDN documenta o mesmo uso não padrão. Isso não muda nada sobre 308 como redirecionamento, mas é uma ilustração interessante de que 308 é um código de status mais novo e menos “assentado” culturalmente que o venerável 301.

Cadeias e saltos de redirecionamento funcionam da mesma forma

Nada acima muda o funcionamento das cadeias de redirecionamento. Por padrão, os rastreadores do Google seguem até 10 saltos — mas isso é um padrão, não uma constante universal; a documentação do próprio Google observa que produtos específicos podem ser diferentes (a ferramenta de Inspeção de URL, por exemplo, não segue redirecionamentos), portanto verifique o número atual na documentação do Google em vez de tratar 10 como fixo para sempre. Esse limite padrão é idêntico quando os saltos são 301 ou 308. Se você estiver empilhando redirecionamentos (por exemplo, um caminho de API antigo que salta duas vezes antes de chegar ao destino), aplique a mesma higiene de cadeias e loops — reduza a cadeia a um único salto quando puder. Veja o artigo dedicado a cadeias de redirecionamento para a mecânica.

Try it live

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

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.