O meu site não carrega: como diagnosticar o problema

Site em baixo ou a comportar-se de forma estranha? Veja como verificar o DNS, a IP de alojamento, os códigos HTTP e os cabeçalhos de resposta.

O DNS do meu domínio .pt está a resolver?

Antes de mexer no alojamento, é preciso afastar a hipótese de uma falha de DNS. Um domínio .pt depende de registos geridos junto do fornecedor (a maioria em revenda de registo na DNS.pt) que apontam para servidores de nomes. Se o registo A, AAAA ou CNAME estiver em falta, errado, ou ainda a apontar para o alojamento anterior depois de uma migração, os visitantes com MEO, NOS ou Vodafone vão ver um erro mesmo que o servidor web esteja a funcionar sem problemas.

Faça uma pesquisa DNS e confirme que o registo A devolve o endereço IP esperado, e que os registos NS coincidem com os que o seu registrar mostra. Depois de mudar de servidores de nomes, a propagação pode demorar algumas horas, e alguns operadores guardam respostas antigas em cache durante mais tempo do que outros.

→ Pesquisa DNS

O meu domínio aponta para o servidor certo?

Depois de o DNS resolver, falta confirmar que aponta para o sítio certo. Pegue no endereço IP obtido e verifique o fornecedor de alojamento, o ASN e o país associados. Se o site deveria estar alojado com um fornecedor português e a informação da IP mostra em vez disso um centro de dados desconhecido no estrangeiro, isso costuma indicar um registo A desatualizado, um servidor de testes esquecido e ainda ativo, ou, no pior dos casos, um domínio comprometido.

Este passo também revela um caso comum: o site carrega, mas ainda mostra uma versão antiga do alojamento anterior porque o DNS ainda não propagou por completo.

→ Informação de IP

Que código HTTP o servidor está a devolver?

Se o DNS e o alojamento estiverem corretos, a falha está no que o servidor devolve. Um 200 significa que a página carrega mas outra coisa está lenta, como uma consulta à base de dados ou um script que bloqueia o carregamento. Um ciclo de redireccionamento 301 ou 302 costuma vir de uma regra no .htaccess ou de um plugin em conflito consigo próprio. Um 403 significa que o servidor recusa entregar o ficheiro, quase sempre por permissões ou por uma regra de firewall. Um 404 significa que o caminho pedido simplesmente não existe.

As falhas do lado do servidor contam cada uma a sua própria história: o 500 é um erro da aplicação, o 502 costuma indicar que um proxy inverso não conseguiu contactar o backend, o 503 aponta muitas vezes para um pool de PHP-FPM sobrecarregado ou um modo de manutenção que ficou ligado, e o 504 significa que o backend demorou demasiado tempo a responder.

→ Referência de códigos HTTP

O que revelam os cabeçalhos de resposta?

Os cabeçalhos explicam o como por trás do código de estado. cache-control e expires indicam se um navegador ou uma CDN está a servir uma cópia antiga. cf-ray ou x-cache mostram se a Cloudflare ou outra CDN tratou o pedido, útil quando uma correção feita no servidor não parece chegar aos visitantes. Um problema com set-cookie pode quebrar de forma silenciosa páginas que dependem de sessão iniciada, e a ausência de um cabeçalho strict-transport-security num site que deveria forçar HTTPS também merece atenção.

Cole os cabeçalhos de resposta tal como aparecem e leia cada linha explicada em linguagem simples em vez de adivinhar o significado.

→ Explicador de cabeçalhos HTTP