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.
Ponto-chave: Google mantém URLs com 404 no índice por meses, mas remove 410s em dias; use 410 para páginas removidas permanentemente e 301 quando existe uma substituição.Google keeps 404 URLs in the index for months but drops 410s in days; use 410 for pages removed for good and a 301 when a replacement exists.
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 é errado aqui também, use 503 com um header Retry-After. Mas na ausência 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.Next.js middleware that returns new Response(null, { status: 410 }) for any URL in your retirement list.
Netlify (netlify.toml ou _redirects)
Use a sintaxe _redirects: /retired-url 410! o ponto de exclamação à direita é a flag force-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 Unavailable For Legal Reasons 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 similarmente a 410 (remove do índice), mas o sinal legal é o que importa. Use-o 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.
Perguntas frequentes
Qual é a diferença entre um código de status 404 e 410?
404 significa não encontrado: a página está faltando, mas o servidor não está dizendo se ela voltará. 410 significa removida: a página foi intencionalmente e permanentemente removida. 410 é um sinal mais forte para mecanismos de busca removerem a URL do índice mais rapidamente.
Devo usar 404 ou 410 para páginas deletadas?
Use 410 quando você tiver removido uma página deliberadamente e não houver substituição. Use 404 quando uma página está faltando mas o status é incerto ou temporário. Para uma página renomeada ou movida, use nenhum dos dois: um redirecionamento 301 para a nova URL é o correto.
410 remove uma página do Google mais rápido que 404?
Levemente. Google trata 410 como um sinal mais claro de remoção permanente e tende a remover aquelas URLs um pouco mais rápido, mas ambas eventualmente são desindexadas. A diferença prática é pequena; o que importa mais é usar um redirecionamento quando existe uma substituição em vez de qualquer um dos códigos de erro.
Erros 404 prejudicam SEO?
Alguns 404s em páginas genuinamente removidas são normais e inofensivos. Prejudicam apenas quando páginas importantes retornam 404 por acidente, ou quando links internos e sitemaps apontam para elas e desperdiçam orçamento de rastreamento. Corrija 404s em páginas que deveriam existir; deixe o resto como está.
