SEO · GUIA PRÁTICO

Como devolver status HTTP corretos em rotas de site JavaScript

Página inexistente, movida ou protegida precisa comunicar o estado ao navegador e ao robô.

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 realResposta normalmente adequadaO que implementar/verificar
Página disponível200 OKEntregar o conteúdo correspondente à rota, não uma página vazia/app shell com falha
Mudança permanente com destino equivalente301 ou 308Redirecionar no servidor para a URL nova; atualizar links internos, canonical e sitemap
Mudança temporária302 ou 307Usar redirecionamento temporário enquanto a URL original continua sendo a principal
Recurso público inexistente404 Not FoundMostrar página útil de erro e manter o status 404 real
Página removida sem substituta404 ou 410 GoneIndicar que o conteúdo não está disponível; não enviar todos os erros à página inicial
Área que exige autenticação401 (desafio/autenticação) ou 403 (acesso negado), conforme servidor e fluxoNão expor conteúdo protegido no HTML pré-renderizado nem tratar login como página pública indexável
Sobrecarga temporária503 ou resposta apropriada de limitaçãoUsar 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.

Continue por aqui