Código de status HTTP · Erros do cliente (4xx)
Erro 410 Gone
O erro 410 Gone significa que havia um recurso nesta URL e o dono do site o removeu de propósito, sem intenção de trazê-lo de volta. Ele aparece em promoções encerradas, contas excluídas e versões de API desativadas.
| Classe | 4xx, Erros do cliente |
|---|---|
| Definido em | RFC 9110 §15.5.11 |
| Pode ir para o cache por padrão | Sim, de forma heurística; uma CDN pode continuar servindo o 410 depois que a página voltar, a menos que você defina Cache-Control |
| Pode repetir o pedido | Não; o servidor está dizendo que o recurso foi removido de propósito e não vai voltar |
| Cabeçalhos relevantes |
|
O que significa o 410
A RFC 9110, seção 15.5.11, descreve o 410 como o recurso não estar mais disponível no servidor de origem, com a situação provavelmente definitiva. O texto diz que ele serve principalmente para manutenção da web: avisa a quem linkou a URL que os donos querem esses links removidos. Se o servidor não sabe se a remoção é definitiva, deve responder 404.
A diferença para o 404 é a intenção. O 404 não afirma nada; o 410 declara que a remoção foi uma decisão. O Google já disse que trata os dois quase da mesma forma, e que o 410 às vezes tira a URL do índice um pouco antes, então usar 410 é mais uma questão de clareza do que de truque de SEO.
Não é preciso manter o 410 para sempre. A RFC deixa a critério do dono por quanto tempo marcar o recurso como removido; depois de alguns meses, muitos sites deixam essas URLs voltarem a dar 404.
Quando usar
- Uma página de campanha, evento ou cupom com prazo que terminou e não tem página sucessora para redirecionar.
- Um usuário excluiu a conta ou o perfil e você não quer que links antigos sugiram que ele pode voltar.
- Uma versão de API foi desligada depois do prazo de descontinuação: responda 410 com um corpo que aponte para a versão nova.
Causas comuns
Se você está visitando o site
- O link leva a uma promoção, anúncio ou evento que o site tirou do ar quando terminou.
- A página pertencia a uma pessoa ou conta que foi removida do site.
Se você administra o servidor
- Alguém criou uma regra de 410 para um padrão de URL mais amplo do que devia, por exemplo tudo em /blog/2019/ quando só alguns posts foram removidos.
- O CMS ou a plataforma de e-commerce devolve 410 automaticamente para itens na lixeira ou despublicados; plugins de SEO do WordPress e apps da Shopify costumam oferecer isso.
- Uma versão antiga da API foi desativada e ainda há clientes chamando por ela.
Como resolver
Se você está visitando o site
- Não há o que corrigir do seu lado: o dono removeu o conteúdo de propósito. Procure no site uma versão mais nova da mesma oferta ou artigo.
- Para ver o conteúdo antigo, tente o Wayback Machine (web.archive.org).
Se você administra o servidor
- Se existe um substituto próximo, use um 301 para ele em vez de 410; assim links e sinais de ranqueamento são aproveitados.
- Se o 410 foi engano, remova a regra e limpe o cache da CDN, porque o 410 pode ser guardado em cache de forma heurística e continuar aparecendo.
- Para versões de API aposentadas, devolva um corpo que indique o endpoint substituto, e considere o cabeçalho Sunset (RFC 8594) na versão antiga antes de desligá-la.
Como enviar um 410
app.get('/promotions/:slug', (req, res) => {
res.status(410).json({ error: 'This promotion ended on 2026-08-31' });
});// app/promotions/[slug]/route.ts
export async function GET() {
return Response.json(
{ error: 'This promotion ended on 2026-08-31' },
{ status: 410 }
);
}mux.HandleFunc("GET /promotions/{slug}", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusGone) // 410
w.Write([]byte(`{"error":"This promotion ended on 2026-08-31"}`))
})from fastapi import FastAPI, HTTPException
app = FastAPI()
@app.get("/promotions/{slug}")
def get_promotion(slug: str):
raise HTTPException(status_code=410, detail="This promotion ended on 2026-08-31")# One retired page
location = /black-friday-2025 {
return 410;
}
# A whole retired section
location ^~ /api/v1/ {
return 410;
}Costuma ser confundido com
- 410 vs 404
- O 404 não diz nada sobre ser definitivo; o 410 afirma que a remoção foi intencional e final.
- 410 vs 301
- O 301 manda o visitante para um substituto; use 410 só quando não existe página que valha o redirecionamento.
Perguntas frequentes
- O 410 é melhor que o 404 para SEO?
- Só um pouco. O Google trata os dois como sinal para tirar a URL do índice; o 410 pode acelerar isso por ser explícito. Se a página tinha backlinks e existe um substituto próximo, um redirecionamento 301 é melhor que os dois.
- Por quanto tempo devo manter o 410?
- A RFC 9110 deixa isso a critério do dono do servidor. Alguns meses bastam para buscadores e a maioria dos favoritos perceberem; depois disso, deixar a URL cair no 404 não tem problema.
- Um recurso apagado numa API deve devolver 410?
- Só se você guarda o registro de que ele existiu. A maioria das APIs responde 404 depois de uma exclusão definitiva porque não conhece mais o ID; o 410 combina com registros excluídos logicamente e com versões inteiras de API desativadas.
Revisado em por Arielton Oberek.