CategoriaConteúdo e busca
Página 404 e redirecionamento: quando o endereço some
Quando uma página muda de endereço, o certo é um redirecionamento permanente (301 ou 308) do caminho antigo direto para o novo. Quando o conteúdo acabou e não há substituto, o servidor responde 404 ou 410 e mostra uma página que explica o que houve e aponta uma saída (Google, redirecionamentos e a Pesquisa). Os dois atalhos que dão errado são mandar tudo para a home e mostrar a mensagem de erro com código de sucesso.
Por que o endereço antigo ainda importa
Um link velho continua trazendo gente. Pode estar num favorito, numa mensagem antiga ou no texto de outro site. Em 1998, Jakob Nielsen já defendia que todo endereço publicado deveria viver para sempre, porque quem segue um link quer alguma coisa daquele site (NN/g, Fighting Linkrot (em inglês)). No mesmo texto, ele cita uma pesquisa da época com 6% dos links da web quebrados.
O argumento dele é de negócio. Cada endereço que para de funcionar recebe um visitante novo com uma mensagem de erro, justo na primeira visita.
Mudou de lugar: redirecionamento permanente
O Google separa os redirecionamentos em dois grupos (Google):
- Permanente (301 ou 308). O buscador passa a tratar o destino como o endereço principal da página. Serve quando a mudança não vai ser desfeita.
- Temporário (302 ou 307). O buscador segue o desvio, mas não o usa como sinal de que o destino virou o endereço principal. Serve, por exemplo, quando um serviço do site está fora do ar por um tempo e você quer mostrar uma página explicando a situação.
Na tabela de códigos HTTP do Google, o 301 é um sinal forte de que o destino deve ser processado, e o 302 é um sinal fraco. A mesma tabela trata o 308 igual ao 301 e o 307 igual ao 302. Ela pede, ainda assim, o código que descreve o caso, porque outros programas além do Google leem essa resposta.
Na Vercel, onde o kahue.net está hospedado, a diferença entre 301 e 308 é técnica. Os dois ficam guardados no navegador, mas o 308 nunca troca o método do pedido, e o 301 pode trocar para GET (documentação da Vercel (em inglês)). Para uma página comum, qualquer um dos dois resolve.
Direto ao destino, e por bastante tempo
O robô do Google segue até 10 saltos de redirecionamento, mas a recomendação é apontar o endereço antigo direto para o final. Se não der, a cadeia deve ficar em no máximo 3 saltos, e sempre abaixo de 5. Cada salto a mais atrasa quem está navegando, e nem todo navegador aguenta uma cadeia longa (Google, mudanças e migrações de sites).
A cadeia costuma nascer sem ninguém perceber. Uma página muda de endereço em março e de novo em agosto, e a regra nova aponta para o endereço de março, que já redirecionava.
Quanto ao prazo, a mesma página do Google pede manter os redirecionamentos pelo maior tempo possível, em geral pelo menos um ano. Pensando em quem visita, o conselho é mantê-los para sempre. Os seus próprios links internos, porém, devem ir direto para o endereço novo.
Acabou de vez: 404 ou 410
O 404 diz que o servidor não achou nada naquele endereço (MDN, sobre o código 404). O 410 diz mais: o conteúdo não está mais disponível, e isso tende a ser permanente. Na dúvida entre os dois, o MDN, sobre o código 410, manda usar o 404.
Para a busca do Google, a escolha não muda nada. A tabela de códigos do Google trata todos os erros 4xx do mesmo jeito, menos o 429. A URL sai do índice, e o robô visita cada vez menos. A diferença entre 404 e 410 fica para outros programas que leem a resposta.
O erro que finge sucesso
O problema mais sério é a página que diz “não encontrada” no texto, mas responde 200, o código de sucesso. O Google chama isso de soft 404, um erro disfarçado. Quando o conteúdo parece uma mensagem de erro ou uma página vazia, o Search Console, painel do Google para donos de site, aponta o problema (Google).
O mesmo rótulo pode cair num redirecionamento. Mandar muitos endereços antigos para um destino sem relação, como a home do site novo, confunde quem chega e pode ser lido como soft 404 (Google, mudanças e migrações de sites). A exceção é quando várias páginas antigas foram mesmo juntadas numa só. Aí todas podem apontar para ela.
O que escrever na página de erro
O artigo do NN/g sobre a página 404 também é de 1998, e a base dele continua de pé (Jakob Nielsen, NN/g (em inglês)). A mensagem padrão do servidor falha nas três regras de toda mensagem de erro: linguagem simples sem culpar a pessoa, precisão e uma sugestão do que fazer. A página própria, segundo ele, deve ter:
- uma frase curta, com um leve pedido de desculpas, dizendo que o endereço não foi encontrado no site;
- os erros de digitação mais comuns no site, tirados dos registros do servidor;
- quando der, sugestões de endereços parecidos, já como links;
- um campo de busca do site.
No mesmo artigo, Nielsen cita o relato de um consultor italiano. Num site de páginas de hotéis, a checagem de grafia das URLs pedidas reduziu os erros 404 em pelo menos 40% (NN/g (em inglês)). É um caso só, contado pelo próprio responsável, e não um estudo.
Como fiz no kahue.net
O site tem uma página 404 só, servida pela Vercel em qualquer caminho que não exista. Ela sai em inglês, o idioma padrão do site, e mantém no menu o seletor de idioma. Quem chega por um endereço antigo em português ou espanhol troca o idioma sem ficar preso.
Ela não troca o idioma sozinha, e isso foi de propósito. O detector de idioma do site leva a pessoa para o mesmo caminho na outra língua. Num endereço que não existe, isso só produziria um segundo 404. A página também tem noindex, para não entrar na busca, e responde com o código 404 de verdade, conferido no site no ar.
O texto diz que o endereço não existe e oferece duas saídas: a home e a lista completa dos trabalhos. Pela lista do NN/g, falta a sugestão de endereços parecidos. O campo de busca não entra porque o site não tem busca.
Os redirecionamentos ficam no vercel.json, todos permanentes. Quando o case do bel app mudou de endereço, de bell-app para bel-app, o caminho antigo passou a apontar direto para o novo nos três idiomas. Os endereços antigos em /pt-pt/ vão para /pt-br/ com o resto do caminho preservado. A Vercel alerta que um coringa que pega qualquer caminho pode mandar tudo para um destino só (Vercel (em inglês)). Aqui o coringa leva cada página para a sua equivalente, e não para a home.
Onde as fontes divergem
Para o NN/g, nem conteúdo velho deveria morrer. O exemplo dele é a página de inscrição de um congresso que já aconteceu, que deveria redirecionar para o relato do evento ou para o programa do ano seguinte (NN/g (em inglês)).
O Google é mais cauteloso. Redirecionar para algo sem relação pode virar soft 404 (Google). As duas posições se encontram na relevância. O redirecionamento vale quando o destino responde ao que a pessoa buscava. Quando nada responde, um 404 honesto é melhor que uma home genérica.
O erro comum: conferir só pelo que aparece na tela
A página de erro pode estar bonita e ainda responder 200. No navegador, as duas situações parecem iguais. A conferência leva um minuto: abra a aba Rede das ferramentas do navegador, ou rode curl -I com o endereço, e veja o código. Faça o mesmo num endereço antigo e confirme que ele chega ao destino em um salto só.
Fontes
- Google, Redirecionamentos e a Pesquisa Google
- Google, Como os códigos de status HTTP afetam os rastreadores do Google
- Google, Mudanças e migrações de sites
- MDN, 404 Not Found
- MDN, 410 Gone
- Documentação da Vercel, Redirects (em inglês)
- Nielsen Norman Group, Fighting Linkrot (em inglês)
- Nielsen Norman Group, Improving the Dreaded 404 Error Message (em inglês)


