Ir para o conteúdo principal

Guias / Códigos de status HTTP explicados

404 Not Found: links quebrados, soft 404s e quando usar o 410

Um 404 Not Found significa que o servidor não tem uma representação atual para aquela URL, e não diz nada sobre se o recurso já existiu ou vai voltar. Essa ambiguidade é o ponto: um 404 pode ser um link quebrado que você deveria corrigir, uma página que você removeu de propósito, ou uma página que funciona perfeitamente e só finge estar ausente.

O que um 404 diz e não diz

Segundo a RFC 9110, um 404 significa que o servidor de origem não encontrou uma representação atual para o recurso alvo, ou não está disposto a revelar que uma existe. Dois detalhes seguem dessa formulação.

Primeiro, um 404 é deliberadamente evasivo sobre permanência. Não promete que a URL vai continuar morta, e é por isso que os rastreadores continuam tentando URLs 404 por um bom tempo. Segundo, o 404 é armazenável em cache por padrão segundo a RFC 9111, então um proxy de cache ou CDN pode guardar o erro e continuar servindo-o depois de você ter corrigido o problema de origem. Sempre limpe o cache depois de corrigir um 404 e teste de novo.

Um 404 também é uma resposta normal e saudável. Todo site devolve alguns. Os que valem o seu tempo são em URLs que deveriam funcionar, ou em URLs que as pessoas estão tentando alcançar.

Esses dois casos parecem idênticos em um código de status e precisam de respostas opostas.

Um link quebrado significa que o conteúdo existe mas a URL está errada. As causas usuais são um erro de digitação em um link interno, um slug editado depois da publicação, uma incompatibilidade de maiúsculas/minúsculas, uma diferença de barra final, uma migração de site que mudou o esquema de URL, ou uma implantação que parou de gerar um arquivo. A correção é restaurar a URL ou redirecioná-la.

Uma remoção genuína significa que o conteúdo se foi e não vai voltar: uma vaga de emprego vencida, um produto descontinuado, uma página de conta apagada. Aqui um 404 é honesto mas preguiçoso, porque deixa os rastreadores tentando de novo e os visitantes sem nada.

Forma prática de diferenciar: existe uma página equivalente em algum lugar do site hoje? Se sim, redirecione. Se não, decida entre 404 e 410.

410 Gone, a alternativa honesta

O 410 diz que o recurso estava disponível e foi removido intencionalmente, e a condição é esperada ser permanente. Onde 404 significa "não encontrado", 410 significa "apagado de propósito, pare de perguntar".

Use o 410 quando você aposenta conteúdo deliberadamente e não tem substituto. É o sinal correto para vagas vencidas, páginas de produto descontinuadas e conteúdo removido por motivos legais ou editoriais. Os buscadores geralmente tratam o 410 como um sinal de remoção mais forte e rápido do que o 404, embora os dois eventualmente descartem a URL. Como o 404, o 410 é armazenável em cache por padrão.

Não use o 410 para nada que você possa restaurar, e não o use como um tratador genérico para URLs desconhecidas. Se existe uma página de substituição adequada, um redirecionamento é melhor do que qualquer um dos dois códigos, e a escolha do redirecionamento importa: veja 301 vs 302 para escolher o certo.

Soft 404s e por que os monitores os perdem

Um soft 404 é uma página que devolve 200 OK enquanto o conteúdo dela diz que o recurso está ausente. Isso acontece quando uma aplicação captura a própria condição de não-encontrado e renderiza um template amigável de "página não encontrada" sem definir o código de status, ou quando uma rota abrangente serve a página inicial para toda URL não correspondida.

Os buscadores e os monitores de uptime então leem a mesma página de formas opostas. O Google inspeciona o conteúdo renderizado, reconhece o padrão de conteúdo ausente e o classifica como um soft 404 no Search Console, então a URL não é indexada mas o orçamento de rastreamento ainda é gasto nela e o sinal fica confuso. Um monitor que compara códigos de status vê 200 e reporta a página como saudável, que é como uma seção inteira pode servir texto de "não encontrado" para todo visitante enquanto o painel continua verde.

A correção no site é devolver um 404 real com a página de erro, o que não custa nada e satisfaz os dois leitores. A correção no monitoramento é fazer asserção sobre conteúdo além de status: verifique se uma frase conhecida da página real está presente, para que uma página que devolve 200 com o corpo errado ainda falhe na verificação.

Como corrigir 404s na ordem certa

  1. Confirme o código real, não a página visível. Uma tela de erro amigável não prova nada:
    curl -sS -o /dev/null -w "%{http_code}\n" https://example.com/missing-page
    Se isso imprimir 200 para uma página que diz "não encontrado", você tem um soft 404.
  2. Descubra quais URLs estão sendo atingidas. Logs de acesso do servidor e o Search Console listam URLs 404 com volume. Corrija por tráfego, não em ordem alfabética.
  3. Corrija links internos primeiro. Um 404 alcançado a partir da sua própria navegação está inteiramente sob o seu controle e é a correção de maior valor.
  4. Redirecione onde existe um equivalente real. Mapeie a URL antiga para a página atual mais próxima, uma URL de cada vez. Evite redirecionar tudo para a página inicial, que os buscadores também tratam como um soft 404.
  5. Devolva 410 para remoções deliberadas sem substituto, para que os rastreadores parem de tentar de novo.
  6. Torne a página 404 útil. Busca, navegação principal e links populares recuperam visitantes que uma página de erro simples perde.
  7. Limpe caches e teste de novo. Como o 404 é armazenável em cache, verifique a URL corrigida de fora da sua rede, não só da origem.

Verificando o código e o conteúdo juntos

Uma edição de slug, uma atualização de plugin ou uma mudança de roteamento quebra um conjunto de URLs enquanto a página inicial continua carregando, então nada alerta e ninguém percebe até o tráfego ou as conversões caírem. Uma verificação HTTP agendada nas suas URLs importantes compara tanto o código de status quanto o conteúdo esperado da página, o que pega tanto um 404 real quanto um soft 404. Para a família mais ampla de códigos do lado do cliente, e para diferenciar um erro genuíno de cliente de uma configuração incorreta de servidor, veja a visão geral do 4xx.

Verificar agora

Faça a verificação gratuita no seu próprio site, sem precisar de conta.

HTTP check

Monitorar permanentemente

Seja avisado no momento em que algo quebrar: o HostTracker verifica de mais de 300 localidades e notifica você por e-mail, SMS, Slack, Telegram e mais.

Recursos do HostTracker

Mais nesta seção: Códigos de status HTTP explicados