Google trata 404 e 410 de forma diferente, e a diferença importa quando você está descontinuando URLs em massa. A versão curta: 404 diz "ausente, tente novamente mais tarde"; 410 diz "desaparecido, nunca mais volta". Googlebot revisita 404s por semanas antes de removê-las do índice. Ele remove 410s em dias. Se você está no meio de uma migração e olhando para milhares de URLs que devem desaparecer para sempre, escolher o código certo economiza semanas na limpeza.
O que cada código realmente significa
404 Not Found é a resposta padrão quando um recurso não existe na URL solicitada. O servidor está dizendo "esta URL não tem recurso agora". A implicação é permissiva: talvez a URL tenha um recurso mais tarde, talvez seja um erro de digitação, talvez o recurso tenha se movido e alguém esqueceu de enviar um redirecionamento. O 404 é uma rede ampla.
410 Gone é o código de aposentadoria explícita. O servidor está dizendo "esta URL tinha um recurso, ele foi permanentemente removido, não pergunte novamente". É o sinal da porta se fechando. Google documenta isso explicitamente: 410 é interpretado como um sinal mais forte para remover a URL do índice do que 404.
Como Googlebot trata cada um
Comportamento de 404. Googlebot encontra um 404, marca a URL como ausente, mas a mantém na fila de rastreamento. O bot revisita a URL em um cronograma cada vez mais lento (24h, depois 7d, depois 30d, depois 90d). Se a URL eventualmente retornar um 200 novamente, ela é reintegrada. O ciclo continua por meses. A URL permanece no relatório de Cobertura do Search Console sob "Não encontrado (404)" durante esse período.
Comportamento 410. Quando o Googlebot encontra um 410, marca a URL como permanentemente aposentada, remove-a do índice em dias. A URL aparece brevemente no Search Console sob "Página removida por reclamação legal" ou "Soft 404" dependendo da interpretação do Google, depois desaparece. A fila de rastreamento para de revisitá-la.
A diferença funcional é dias versus meses de poluição do índice.
Quando escolher 410 em vez de 404
- Limpeza de migração: URLs que não existem mais no novo site e não têm equivalente semântico. Use 410. Elas se foram.
- Posts de blog deletados: conteúdo antigo que você intencionalmente aposentou. 410 se você tem certeza; 404 se houver qualquer chance de o post voltar com o mesmo slug.
- Páginas de produtos desativadas: SKUs que você não vende mais. 410 se o produto foi permanentemente aposentado; 404 se pode voltar.
- Aposentadoria de padrão de URL: por exemplo, aposentar /forum/* porque o fórum foi desativado. 410 para todo o caminho.
- URLs inúteis de hacks anteriores ou erros de CMS que de alguma forma acabaram no índice. 410.
Quando 404 é a chamada correta
- Erros de digitação e URLs que nunca existiram: 404 é a resposta convencional. 410 seria errado porque a URL nunca teve conteúdo para começar.
- Conteúdo em revisão para republicação: se a URL pode voltar, 404 mantém a porta aberta para o Google encontrá-la novamente.
- Páginas temporariamente indisponíveis: 404 também está errado aqui — use 503 com um header Retry-After. Mas na falta disso, 404 é o padrão mais seguro para casos ambíguos.
Como configurar 410 em plataformas comuns
Vercel (vercel.json)
Adicione uma rewrite ou uma regra de status code. O padrão mais limpo é colocar um endpoint /410 e reescrever URLs aposentadas para ele com statusCode 410. Note que vercel.json nativamente suporta redirects, não rewrites de status-code para URLs arbitrárias; o padrão é usar um middleware Next.js que retorna new Response(null, { status: 410 }) para qualquer URL na sua lista de aposentadoria.
Netlify (netlify.toml ou _redirects)
Use a sintaxe _redirects: /retired-url 410! — o ponto de exclamação final é a flag de força de status. Ou em netlify.toml, use um bloco [[redirects]] com status = 410.
Apache (.htaccess)
Redirect gone /retired-url — ou use RewriteRule com a flag [G]: RewriteRule ^retired-url$ - [G,L].
Nginx
return 410; dentro de um bloco location que corresponda ao padrão de URL. Para padrões em massa: location ~ ^/old-pattern/ { return 410; }.
Por que isso importa em escala
Um site com 10.000 URLs aposentadas divididas 50/50 entre 404 e 410 verá a metade com 410 desaparecer do relatório de Cobertura dentro de duas semanas, e a metade com 404 ficar à deriva no relatório de Cobertura por três a seis meses. O conjunto 404 ocupa orçamento de rastreamento do Googlebot que deveria ir para as URLs que você quer indexadas. Em sites maiores o impacto no orçamento é mensurável: menos orçamento para aposentadoria significa mais para conteúdo novo.
O padrão de migração
Três passos para qualquer limpeza de migração. Um: puxe cada URL do Search Console, Ahrefs e do sitemap antigo. Dois: categorize cada URL em um de quatro grupos: (a) mapeia para uma nova URL → redirecionamento 301, (b) renomeada para novo slug → 301, (c) permanentemente aposentada → 410, (d) status ambíguo → 404. Três: implante as regras de redirecionamento/410/404 em vercel.json ou .htaccess no mesmo deploy do novo conteúdo, mais um linter de SEO em tempo de build que falha a construção se qualquer URL pré-migração estiver faltando no conjunto de regras.
Vale saber: o código 451
451 Indisponível Por Razões Legais existe para conteúdo que você foi legalmente obrigado a remover. É raro e específico — takedowns DMCA, direito ao esquecimento GDPR quando a URL é aposentada inteiramente, ordens judiciais. Google interpreta de forma similar a 410 (remove do índice) mas o sinal legal é o que importa. Use apenas quando o contexto legal se aplica.
O resumo
Use 410 para aposentadoria permanente. Use 404 para conteúdo genuinamente faltante ou ambíguo. A diferença de limpeza de índice entre duas semanas e seis meses aparece em toda migração acima de alguns milhares de URLs. A solução é uma regra em vercel.json, netlify.toml ou .htaccess. Acerte no momento da mudança e você economiza a limpeza pós-lançamento que ninguém orça.
Leitura adjacente: 301 vs 302 vs 307 vs 308 é a decisão relacionada para URLs que não são aposentadas mas movidas. A mesma limpeza de migração que precisa de 410 também precisa da decisão de código de redirecionamento; veja o post de estratégia de redirecionamento para esse enquadramento.