A tela que o navegador mostra não revela sozinha o status HTTP. Uma SPA pode exibir “não encontrado” e ainda responder 200, gerando um soft 404. Teste a resposta direta da URL no servidor, incluindo quando o JavaScript não executa.
| Situação real | Resposta normalmente adequada | O que implementar/verificar |
|---|---|---|
| Página disponível | 200 OK | Entregar o conteúdo correspondente à rota, não uma página vazia/app shell com falha |
| Mudança permanente com destino equivalente | 301 ou 308 | Redirecionar no servidor para a URL nova; atualizar links internos, canonical e sitemap |
| Mudança temporária | 302 ou 307 | Usar redirecionamento temporário enquanto a URL original continua sendo a principal |
| Recurso público inexistente | 404 Not Found | Mostrar página útil de erro e manter o status 404 real |
| Página removida sem substituta | 404 ou 410 Gone | Indicar que o conteúdo não está disponível; não enviar todos os erros à página inicial |
| Área que exige autenticação | 401 (desafio/autenticação) ou 403 (acesso negado), conforme servidor e fluxo | Não expor conteúdo protegido no HTML pré-renderizado nem tratar login como página pública indexável |
| Sobrecarga temporária | 503 ou resposta apropriada de limitação | Usar só durante indisponibilidade real; evitar manter resposta de erro em rotas existentes |
O significado exato depende do protocolo e configuração. No Google Search, 404/410 indicam conteúdo ausente; 301/308 são sinais de mudança permanente e 302/307, temporária. Não use 401/403 para sinalizar uma URL pública que deveria carregar normalmente.
Cuide do fallback de SPA
Muitos hosts reescrevem qualquer caminho desconhecido para index.html. Isso permite carregar a aplicação, mas, se o servidor responde 200 para /pagina-que-nao-existe/, o mecanismo de busca pode interpretar o erro como soft 404. Configure o host/router para retornar o status correto no servidor ou encaminhar rotas inexistentes a um endpoint/página com status real. Um erro criado só no navegador pode não consertar o cabeçalho já enviado. O Google documenta uma saída de cliente para casos em que status é impraticável, mas prefira resposta de servidor quando a hospedagem permite.
Valide sem depender da aparência
curl -sS -o NUL -w "%{http_code} %{url_effective}\n" https://exemplo.com.br/rota/
Teste a rota válida, URL aleatória inexistente, antiga redirecionada, recurso protegido e página indisponível. No DevTools, confira código, Location, cadeia de redirecionamento e conteúdo. Repita com acesso direto (não apenas navegando por link interno), e no Search Console use inspeção/renderização para verificar como Google vê a resposta. Corrija loops, redirecionamentos para destinos irrelevantes e sitemap que continua listando URLs removidas.
Leia Princípios de JavaScript SEO, como status HTTP afetam crawlers do Google e redirecionamentos na Pesquisa Google. Veja o núcleo de SEO técnico.