Teste de soft 404
Uma página que não existe deveria responder com o status 404. Muitos sites respondem 200, ou mandam o visitante discretamente para a página inicial. Este teste pede ao seu servidor dois endereços que não podem existir e mostra o que ele responde.
Toda resposta traz um número que o visitante nunca vê
Quando um servidor responde a uma requisição, a primeira linha da resposta é um código de status de três dígitos. A página vem depois. As pessoas leem a página, e os programas leem o número. 200 quer dizer “aqui está o que você pediu”, 301 quer dizer “mudou de lugar, veja ali”, 404 quer dizer “não há nada neste endereço” e 410 quer dizer “foi removido de propósito”.
Um soft 404 é o que acontece quando os dois não batem. O texto na tela diz que a página não existe, ou o visitante cai discretamente na página inicial, e enquanto isso o número diz 200. Os mecanismos de busca continuam rastreando, e às vezes indexando, endereços que não levam a lugar nenhum. Os verificadores de links dão todo link quebrado como saudável. Os monitores de disponibilidade continuam verdes enquanto uma seção inteira do site sumiu.
O que o teste pede e como ele decide
Nosso servidor monta dois endereços com caracteres aleatórios, para que não coincidam com nenhuma página real. Um tem forma de pasta (/probe-check-k7m2x9qa4t/) e o outro de arquivo (/h3n8v2c5w7pq.html). Usamos as duas formas porque o servidor web muitas vezes responde sozinho às requisições que parecem arquivos e passa o resto para o CMS. Os redirecionamentos são seguidos e o código de cada etapa é guardado. Se o site não responder nada em HTTPS, o teste tenta em HTTP simples.
| O que voltou | Veredito |
|---|---|
404 ou 410 no endereço pedido | Correto. |
Um redirecionamento que termina numa página 404 | Atenção. Os robôs entendem, mas o endereço que o visitante digitou é trocado na barra do navegador. |
200 no endereço pedido | Soft 404. |
Um redirecionamento para a página inicial (/, /en, /index.php) que responde 200 | Soft 404. |
Um redirecionamento para qualquer outra página que responde 200 | Soft 404. |
500 ou mais | Erro. Alguma coisa quebra com endereços desconhecidos. |
401 ou 403 | Atenção. Normalmente é uma regra de firewall respondendo antes do site. |
A página de erro também é avaliada
Quando o código está certo, o teste lê o HTML da página de erro e procura o que um visitante perdido precisaria:
- Um caminho de volta. Vale qualquer link para a raiz do site ou de uma versão de idioma, inclusive um logo clicável.
- Uma explicação. O título, o cabeçalho principal ou o texto precisa conter algo como “404”, “não encontrada”, “não existe” ou “desculpe”. Menos de 15 palavras de conteúdo, sem contar cabeçalho, menu e rodapé, é anotado como conteúdo fraco.
- Um campo de busca. Se não houver, você recebe uma observação. Não conta como falha.
- Um
<title>e um atributolang, para que as abas do navegador e os leitores de tela tenham o que anunciar. - Peso. Mais de 500 KB de HTML é sinalizado, porque robôs pedem endereços inexistentes o dia inteiro.
A página padrão do nginx, Apache, IIS ou LiteSpeed é reconhecida e apontada como tal. Ela não tem logo nem links, então os visitantes acham que saíram do seu site. Você também é avisado quando os dois endereços de teste recebem páginas claramente diferentes, o que significa que o servidor web e o CMS têm cada um a sua.
Como transformar um soft 404 em um 404 de verdade
- Apache
ErrorDocument 404 /404.html. Informe um caminho local. Com uma URL completa, o Apache envia um redirecionamento e o código final vira200.- nginx
error_page 404 /404.html;. Remova qualquer=200colocado entre404e o caminho.- WordPress
- O núcleo já responde
404. Procure um plugin de redirecionamento ou de SEO com uma opção do tipo “redirecionar 404 para a página inicial” e desative. - Aplicações de página única
- Uma regra de reescrita que manda tudo para
index.htmlresponde200para qualquer coisa. Renderize as rotas desconhecidas no servidor com o status404, ou deixe a hospedagem fazer isso (Netlify e Cloudflare Pages servem um404.htmlna raiz com o código certo).
Confira a mudança num terminal com curl -I https://example.com/no-such-page, que mostra a linha de status primeiro.
Dois endereços aleatórios na raiz não cobrem um site inteiro. Uma loja, um fórum ou um blog instalado numa subpasta pode se comportar de outro jeito, então teste um endereço inventado ali à mão. Não executamos scripts, então uma mensagem de erro desenhada por JavaScript fica invisível aqui. E uma página real que só está vazia, que os mecanismos de busca também chamam de “soft 404”, não pode ser detectada de fora.
Perguntas frequentes
O que é um erro soft 404?
Uma resposta que diz às pessoas que a página não existe e diz aos programas que está tudo bem. Ela costuma ter uma de duas formas: uma página “não encontrada” servida com o status 200, ou um endereço desconhecido redirecionado para a página inicial.
Redirecionar todas as páginas 404 para a home prejudica o SEO?
Sim. O Google trata um redirecionamento geral para a página inicial como soft 404, então ele não transmite valor nenhum, e os visitantes não entendem por que foram parar ali. Só redirecione um endereço antigo para a página que o substituiu, com um 301, e deixe o resto responder 404.
Uma página apagada deve retornar 404 ou 410?
Os dois estão corretos. 410 Gone diz que a remoção é proposital e definitiva, e os mecanismos de busca tendem a descartar o endereço um pouco mais cedo. Use 404 quando não tiver certeza de que a página chegou a existir.
Erros 404 prejudicam meu posicionamento?
Não. Endereços inexistentes fazem parte normal da web e não contam contra um site. O que custa caro é um link nas suas próprias páginas apontando para um deles, ou uma página antiga popular que agora responde 404 quando poderia redirecionar para a sucessora.
Por que o Search Console mostra um soft 404 numa página que existe?
O Google também usa esse rótulo para páginas reais que parecem vazias: uma categoria sem produtos, uma busca sem resultados, uma página cujo conteúdo não carregou. Acrescente conteúdo, ou retorne 404 se a página não tiver razão de existir.
Como ver eu mesmo o código de status de uma página?
Abra as ferramentas de desenvolvedor do navegador, selecione a aba Rede (Network) e recarregue. A primeira linha mostra o código. Num terminal, curl -I seguido do endereço faz o mesmo.