Redirecionamento 303 (See Other)

O que é um redirecionamento 303 See Other, o padrão Post/Redirect/Get que ele viabiliza, por que ele troca a requisição para GET ou HEAD (ao contrário do 307), como difere do 302 e por que Google e Bing publicam quase nenhuma orientação de SEO específica para 303.

Publicado pela primeira vez: 2 de jul. de 2026 · Última atualização: 6 de ago. de 2026 · Avançado
Idiomas

Um 303 See Other é um redirecionamento HTTP temporário que diz ao cliente para buscar uma URL diferente com uma requisição GET ou HEAD, independentemente do método usado na requisição original. Ele é o mecanismo por trás do padrão Post/Redirect/Get (PRG): envie um formulário com POST, receba um 303 para uma página de resultados acessível por GET e, assim, atualizar a página não reenviará o POST original. Ao contrário de um 307 (que sempre preserva o método), um 303 o troca para GET ou HEAD; ao contrário de um 302, seu tratamento do método é inequívoco. Para SEO, ele quase não importa — é um padrão de aplicação web, não uma ferramenta de migração de URLs. O Google o documenta apenas como parte do grupo genérico de 3xx temporários com 302 e 307 e diz que o redirecionamento em si não é um sinal de que o destino deve ser canônico (embora outros sinais ainda possam levar o destino a ser indexado), e nem Google nem Bing publicam orientações específicas para 303. Você normalmente não o verá em redirecionamentos de SEO e, se vir, ele será tratado como um 302/307.

TL;DR — Um 303 (HTTP “303 See Other”) é um redirecionamento temporário cuja característica definidora é direcionar o cliente a recuperar outro recurso com GET ou HEAD, independentemente do método usado pela requisição original. É isso que viabiliza o padrão Post/Redirect/Get (PRG): POST303 → página de resultados GET, para que uma atualização busque a página novamente em vez de reenviar o formulário. Ele difere do 307 (que sempre preserva o método) e do 302 (cujo tratamento do método foi historicamente ambíguo). É genuinamente raro como redirecionamento de SEO de uma página para outra — é um mecanismo de aplicação web, não uma ferramenta de migração de URLs. O Google documenta o 303 apenas como membro do grupo genérico de 3xx “temporários” com 302 e 307 — um sinal fraco de canonicalização — e não publica orientações específicas para 303; também não encontrei nenhuma do Bing. Não invente uma autoridade que não existe: diga claramente que há pouco a dizer.

O que um 303 realmente é

Um 303 é um código de status HTTP retornado nos cabeçalhos da resposta, antes de qualquer corpo, com um cabeçalho Location apontando para a URL que o cliente deve buscar em seguida. A semântica é restrita e específica: a resposta à sua requisição está em outro lugar, e você deve recuperá-la com GET ou HEAD. Evidence for this claim RFC 9110 defines 303 See Other as directing the client to retrieve another resource identified by Location using GET or HEAD. Scope: HTTP semantics for 303 responses. Confidence: high · Verified: IETF: RFC 9110 §15.4.4 — 303 See Other

Esse comportamento de recuperação por GET ou HEAD é a razão inteira de o 303 existir como um código distinto e é o eixo em que os três redirecionamentos temporários se diferenciam.

303 vs. 302 vs. 307: a questão do método

Do ponto de vista de SEO, os três são “temporários” — o Google os agrupa como sinais fracos. Tecnicamente, porém, eles respondem de forma diferente a uma pergunta: quando o cliente segue o redirecionamento, qual método HTTP ele usa?

CódigoSignificadoMétodo na requisição redirecionada
302 FoundTemporárioHistoricamente ambíguo — muitos clientes trocavam POST por GET, mas a especificação não garantia isso, então o comportamento variava
303 See OtherSee Other (temporário)GET ou HEAD — o método original é alterado deliberadamente
307 Temporary RedirectTemporárioSempre preservado — um POST continua POST, um PUT continua PUT

303 e 307 foram introduzidos em parte para desambiguar a confusão em torno do 302. Se quiser forçar o método para GET após o envio de um formulário, use 303. Se precisar que o método original seja mantido (por exemplo, reenviar um POST para um novo endpoint), use 307. O 302 é o meio-termo histórico flexível que não fixa nenhum dos dois comportamentos.

Outra diferença prática: respostas 303 não podem ser armazenadas em cache por padrão, enquanto um 301 pode. Isso importa se você teme que um navegador ou CDN armazene o destino do redirecionamento de forma inadequada — com um 303, você não tem essa preocupação.

O padrão Post/Redirect/Get, com precisão

PRG é o uso canônico de um 303 e é um padrão de projeto deliberado e correto — não um estado de erro:

  1. O cliente envia um formulário como POST (cria um pedido, publica um comentário, executa um pagamento).
  2. O servidor processa o efeito colateral e retorna 303 See Other com um cabeçalho Location apontando para uma URL de resultados acessível por GET (um recibo, uma confirmação ou uma visualização atualizada do recurso).
  3. O cliente segue com um GET (ou HEAD) para essa URL. O histórico do navegador e o botão de atualização agora apontam para uma recuperação segura e idempotente — recarregar ou voltar busca novamente a página de resultados em vez de repetir o POST.

O benefício é que uma simples atualização do navegador deixa de reenviar o formulário — não há mais a caixa de diálogo de “confirmar reenvio do formulário”. Seja preciso sobre o que isso é e não é: PRG impede esse caminho específico de repetição, não toda gravação duplicada. Ele não garante processamento exatamente uma vez. Novas tentativas, timeouts, cliques duplos e requisições simultâneas ainda podem disparar o POST original duas vezes, portanto tudo que altera estado — pedidos, pagamentos, comentários — ainda precisa de controles no nível do aplicativo (chaves de idempotência, limites de transação, detecção de requisições duplicadas) se a duplicação for um risco real. Em APIs RESTful, você também verá 303 depois de um PUT ou DELETE para enviar o cliente a uma representação do recurso afetado.

Como o Google trata o 303 (e por que há tão pouco a tratar)

Esta é a descoberta central e honesta sobre o assunto: o Google não tem orientações de SEO específicas para 303. Ele aparece na documentação de redirecionamentos do Google apenas como uma linha da tabela de redirecionamentos “temporários”, ao lado de 302 e 307. O enquadramento do próprio Google para todo o grupo é preciso: o rastreador segue o redirecionamento, mas o pipeline de indexação não usa o redirecionamento em si como sinal de que o destino deve ser canônico — embora outros sinais ainda possam levar o Google a indexar o destino. Isso é diferente — e mais limitado — da canonicalização forte fornecida por um 301 permanente. Evidence for this claim Google groups HTTP 303 with temporary redirects, follows it, and does not use it as a signal that the destination should become canonical. Scope: Google Search canonicalization behavior for server-side temporary redirects. Confidence: high · Verified: Google: Redirects and Google Search

O texto informal do próprio John Mueller sobre tipos de redirecionamento é ainda mais revelador. Depois de explicar 301, 302 e 307 em detalhes, ele dispensa o 303 em uma única observação: “E quanto a 303? 304,5? Se você tem sentimentos fortes sobre um dos outros tipos de redirecionamento, sinta-se à vontade para usá-los.” A conclusão prática que ele acrescenta é a parte útil: “Teremos que descobrir em qual URL indexar o conteúdo; portanto, se você também tem sentimentos fortes sobre isso, não deixe de acompanhar com outros sinais de canonicalização.” Em outras palavras — se você usar um 303 de alguma forma e se importar com qual URL será indexada, não dependa do tipo de redirecionamento; reforce-o com rel="canonical", links internos e sitemaps.

A documentação do Google também acrescenta uma observação que vale internalizar para todos esses códigos: embora ele os trate da mesma forma, pede que você “keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect.” (tradução) «tenha em mente que eles são semanticamente diferentes. Use o código de status apropriado para o redirecionamento.» Portanto, a realidade de que “SEO não se importa” não é licença para colocar um 303 em uma mudança permanente — use o código que corresponde à sua intenção para que outros clientes também se comportem corretamente.

Como o Bing trata o 303

Claramente: não encontrei nenhuma orientação pública específica do Bing sobre o tratamento de 303 além de referências genéricas a códigos de status HTTP na ajuda do Bing Webmaster Tools. Não há uma declaração verificada de Fabrice Canel ou de qualquer outra pessoa da Microsoft destacando o 303. Este é um dado legítimo de “não temos documentação sobre isso”, não uma lacuna para encobrir — e não vou preenchê-la presumindo que o Bing simplesmente espelha o comportamento declarado pelo Google. A ausência de documentação não é evidência de que o tratamento seja idêntico; se você precisa de uma resposta definitiva especificamente para o Bing, isso continua sendo uma questão em aberto, não algo estabelecido.

O 303 importa para SEO? Raramente.

Aqui está minha conclusão honesta, que corresponde ao que escrevi publicamente. Um 303 não é uma ferramenta de migração de páginas. Em 11 tipos de redirecionamentos e seu impacto em SEO, coloquei assim: “Um redirecionamento 303 encaminha o usuário para um recurso semelhante ao solicitado e é uma forma temporária de redirecionamento. Ele costuma ser usado para evitar o reenvio de formulários quando o usuário clica no botão “voltar” do navegador. Você normalmente não verá redirecionamentos 303 usados para fins de SEO, mas, se vir, ele será tratado como um 302/307.”

Vou apontar uma tensão honesta no meu próprio arquivo histórico. Em Códigos de status HTTP e seu impacto em SEO, descrevi o tratamento de 303 como “indefinido… Eles podem ser tratados como 301 ou 302, dependendo de como funcionam.” Hoje eu formularia isso com mais precisão: a documentação do Google afirma com segurança que o 303 pertence ao grupo temporário/fraco com 302 e 307. A razão de “indefinido” ter parecido verdadeiro na prática é que 303 é tão raro na natureza que o Google nunca teve motivo para esclarecer publicamente os casos extremos — não porque exista um comportamento oculto e mais forte. Comece pelo padrão documentado (fraco/temporário, agrupado com 302/307); trate qualquer surpresa como consequência da raridade, não como uma regra secreta.

Quando ele poderia importar? Realmente apenas em sites com fluxos intensos de formulários/checkout ou aplicativos orientados por API em que 303 aparece em um rastreamento de códigos de status. Mesmo assim, a resposta geralmente é “está funcionando como planejado, deixe como está”. Se você está movendo uma URL deliberadamente, não use 303 — use 301 (permanente) ou 302 (temporário), e use 308/307 se precisar especificamente preservar o método.

303 vs. 201, 202 e 204: escolhendo o status certo para uma gravação

303 não é a única opção após uma requisição que altera estado, e é fácil escolhê-lo por hábito. Em uma API (em vez de um fluxo de formulário no navegador), três códigos 2xx costumam se encaixar melhor:

  • 201 Created — a requisição criou um ou mais recursos de forma síncrona, e a resposta deve identificar o principal, em Location se fornecido; caso contrário, na própria URI de destino. Use-o quando a criação terminou e você quer que o cliente receba o novo recurso diretamente, sem uma ida separada por GET.
  • 202 Accepted — a requisição foi aceita, mas o processamento ainda não terminou (trabalho enfileirado, tarefas assíncronas). A resposta é deliberadamente não comprometedora: descreva o status atual e, idealmente, aponte o cliente para um monitor de status que ele possa consultar.
  • 204 No Content — a ação foi concluída e não há mais nada a enviar: nenhum corpo, nenhum redirecionamento necessário. A resposta termina na seção de cabeçalhos.

303 tem uma forma diferente das três opções: serve quando o cliente deve recuperar um recurso de resultado identificado separadamente depois da gravação — na maioria das vezes, o padrão PRG em um navegador. Ele não substitui a criação síncrona (201), a aceitação assíncrona (202) nem um sucesso simples sem conteúdo (204); cada um comunica um resultado distinto que um redirecionamento não comunica.

Mitos comuns

  • “Um 303 significa que a página mudou ou está quebrada.” Não. É uma resposta deliberada que altera o método — geralmente após POST/PUT/DELETE — e não um sinal de “conteúdo realocado” ou de erro. Sites que o descrevem como “o navegador não consegue encontrar a URL porque a página mudou” estão confundindo-o com um 301/302 ou um 404.
  • “Um 303 passa valor de SEO como um 301.” Não passa. Ele é temporário/fraco, no mesmo grupo que 302 e 307 segundo a documentação do Google.
  • “Profissionais de SEO devem usar 303 como redirecionamento geral.” Ele não foi criado para isso. É um padrão restrito para formulários/APIs; usá-lo em migrações comuns de URL é atípico.
  • “O Google tem regras detalhadas específicas para 303.” Não tem. Há uma menção agrupada e o encolher de ombros de Mueller, “sinta-se à vontade para usá-los”. Esse é o registro completo.
  • “303 e 302 possuem semelhança técnica.” Eles são equivalentes no tratamento de busca, mas não tecnicamente iguais: um 303 muda a requisição seguinte para GET ou HEAD, enquanto o tratamento do método no 302 foi historicamente inconsistente — exatamente por isso 303 e 307 foram introduzidos para desambiguá-lo.

Onde isso se encaixa

Um 303 é um código no grupo de redirecionamentos temporários. Seus parentes mais próximos são o 302 (o redirecionamento temporário flexível com o qual ele costuma ser agrupado) e o 307 (seu oposto, que preserva o método — 307 mantém o método, 303 troca para GET ou HEAD). Ele se diferencia do 301, o redirecionamento permanente que realmente consolida sinais de ranking e faz o trabalho de migração de URLs para o qual um 303 nunca foi criado. Para a família completa — 301/308 permanentes, 302/303/307 temporários, 404/410 ausentes, erros 5xx — consulte o cluster de códigos de status HTTP em que esta página vive.

Validando um fluxo 303 com segurança

Antes de confiar em um 303 em produção, verifique-o sem seguir automaticamente às cegas: inspecione o próprio valor de Location (é absoluto, relativo e resolvível?), procure loops ou cadeias desnecessárias de redirecionamento, confirme que a requisição seguinte usa GET ou HEAD e confira o status e o conteúdo da resposta final. Em um fluxo de formulário ou API, verifique também os logs do aplicativo para confirmar que a gravação original não foi repetida.

Um alerta: não transforme o comportamento de um único cliente em uma regra universal. O comportamento de seguimento automático de navegadores, clientes HTTP e frameworks varia conforme o produto, a versão e a configuração — um relatório sobre um cliente/versão específico não é evidência para todos. Um verificador no nível da URL pode confirmar o redirecionamento e o formato do destino; não pode validar idempotência, tratamento de credenciais ou segurança entre origens — isso ainda exige testar o fluxo de envio real.

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.