Como Colocar Seu Site em Manutenção SEM Prejudicar o SEO
HTTP 403 Forbidden ou 404 Not Found em páginas de manutenção. Isso faz o Google interpretar como erro permanente e pode desindexar seu site em horas.
O Problema: Por Que 403/404 Destroem Seu Ranking
Quando você coloca um site em manutenção e retorna 403 Forbidden ou 404 Not Found, está enviando um sinal catastrófico para o Google:
- 403 Forbidden: “Este conteúdo foi bloqueado permanentemente para crawlers”
- 404 Not Found: “Esta página não existe mais, remova do índice”
O Googlebot não diferencia “estou em manutenção” de “fui hackeado” ou “deletei meu site”. Ele simplesmente obedece o código HTTP que você enviou.
- Queda imediata nas impressões (Search Console)
- Perda de posições em palavras-chave estratégicas
- Desindexação progressiva de páginas importantes
- Tempo de recuperação: semanas a meses após voltar ao ar
A Solução: HTTP 503 Service Unavailable
O código HTTP 503 Service Unavailable é o padrão oficial para sinalizar manutenção temporária. Ele comunica:
“O site está temporariamente indisponível. Volte mais tarde — o conteúdo não foi removido.”
Quando combinado com o header Retry-After, você diz exatamente quando o bot deve retornar:
HTTP/1.1 503 Service Unavailable
Retry-After: 3600
Tradução: “Estamos em manutenção, tente novamente em 1 hora (3600 segundos)”.
Comparação Técnica: Status Codes em Manutenção
| Código HTTP | Significado | Impacto no SEO | Usar? |
|---|---|---|---|
| 503 Service Unavailable | Indisponibilidade temporária | ✅ Nenhum (se <24h) | ✓ SIM |
| 403 Forbidden | Acesso bloqueado permanentemente | ❌ Desindexação rápida | ✗ NUNCA |
| 404 Not Found | Página inexistente | ❌ Remoção do índice | ✗ NUNCA |
| 200 OK | Tudo normal (página carregou) | ❌ Indexa página de manutenção | ✗ NUNCA |
| 301/302 Redirect | Redirecionamento | ⚠️ Neutro (não ideal) | △ Evitar |
Implementação Prática: Código Pronto
✅ Opção 1: PHP (WordPress, Laravel, etc.)
<?php
http_response_code(503);
header('Retry-After: 3600'); // 1 hora
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Manutenção Programada</title>
<meta name="robots" content="noindex, nofollow">
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
text-align: center;
}
h1 { font-size: 3em; margin-bottom: 20px; }
p { font-size: 1.2em; }
</style>
</head>
<body>
<div>
<h1>🔧 Manutenção Programada</h1>
<p>Estamos melhorando sua experiência.</p>
<p>Voltamos em breve!</p>
</div>
</body>
</html>
✅ Opção 2: NGINX (VPS, Cloudflare Workers)
server {
listen 80;
server_name seusite.com.br;
# Permite seu IP continuar acessando
set $maintenance on;
if ($remote_addr = "SEU.IP.AQUI") {
set $maintenance off;
}
if ($maintenance = on) {
return 503;
}
error_page 503 @maintenance;
location @maintenance {
root /var/www/html;
rewrite ^(.*)$ /manutencao.html break;
add_header Retry-After 3600;
add_header Cache-Control "no-cache, no-store, must-revalidate";
}
# Resto da configuração...
}
✅ Opção 3: Apache / .htaccess (Hostinger, cPanel)
RewriteEngine On
# Libera seu IP
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000$
# Redireciona para página de manutenção com 503
RewriteCond %{REQUEST_URI} !^/manutencao\.html$
RewriteRule ^(.*)$ /manutencao.html [R=503,L]
# Header Retry-After
Header always set Retry-After "3600"
Header always set Cache-Control "no-cache, no-store, must-revalidate"
# Força status 503
ErrorDocument 503 /manutencao.html
✅ Opção 4: Cloudflare Workers (Edge Computing)
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const allowedIPs = ['123.456.789.000']; // Seu IP
const clientIP = request.headers.get('CF-Connecting-IP');
if (allowedIPs.includes(clientIP)) {
return fetch(request); // Libera seu acesso
}
const maintenanceHTML = `
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Manutenção</title>
<meta name="robots" content="noindex">
</head>
<body>
<h1>Manutenção Programada</h1>
<p>Voltamos em 1 hora.</p>
</body>
</html>
`;
return new Response(maintenanceHTML, {
status: 503,
headers: {
'Content-Type': 'text/html; charset=utf-8',
'Retry-After': '3600',
'Cache-Control': 'no-cache'
}
});
}
Estratégia Avançada: Manutenção Seletiva
Para sites grandes ou e-commerces, não derrube tudo. Use manutenção seletiva:
- Páginas de produtos/serviços (SEO)
- Blog e conteúdo informacional
- Landing pages de campanhas
- Área administrativa
- Checkout / pagamento
- Formulários críticos
Exemplo em NGINX:
# Manutenção apenas no checkout
location /checkout {
return 503;
}
location /admin {
return 503;
}
# Resto do site funciona normalmente
location / {
try_files $uri $uri/ /index.php?$args;
}
Checklist: Manutenção SEO-Safe
- ✓ Configurar status
503 Service Unavailable - ✓ Adicionar header
Retry-After(em segundos) - ✓ Incluir
<meta name="robots" content="noindex, nofollow">na página de manutenção - ✓ Liberar seu IP para testar o site normalmente
- ✓ Manter manutenção por menos de 24 horas (ideal)
- ✓ Evitar derrubar páginas SEO críticas (manutenção seletiva)
- ✓ Monitorar Search Console após voltar ao ar
Perguntas Frequentes (FAQ)
Por quanto tempo posso deixar o site em manutenção sem afetar SEO?
Com HTTP 503 correto, até 24 horas é seguro. Entre 24-48h há risco mínimo. Acima de 72h, o Google pode começar a desindexar páginas.
Preciso avisar o Google antes de colocar em manutenção?
Não é necessário. O código 503 + Retry-After já comunica tudo automaticamente. Mas você pode monitorar no Search Console.
E se eu esquecer de remover o 503 após a manutenção?
Risco sério de desindexação progressiva. Configure alertas (UptimeRobot, Pingdom) para monitorar o status HTTP do site.
Posso usar redirecionamento 302 em vez de 503?
Não é recomendado. O 302 sinaliza “página movida temporariamente”, não “site em manutenção”. Use 503 específico.
O Retry-After é obrigatório?
Não, mas altamente recomendado. Sem ele, o Googlebot tenta recrawlear em intervalos imprevisíveis, desperdiçando budget de crawl.
Precisa de Ajuda com SEO Técnico?
A Supremeweb é especializada em otimizações técnicas que protegem e aceleram seu ranking no Google.
Falar com Especialista