Para migrar um site de uma hospedagem para outra sem tirar nada do ar, você copia tudo para o servidor novo, testa por lá enquanto o antigo continua atendendo os visitantes e só então aponta o DNS. A hospedagem antiga só é cancelada depois que o site, os e-mails e as rotinas já estão funcionando no lugar novo.
O processo é o mesmo para um blog, um site institucional ou uma loja virtual. Muda o volume de dados e a quantidade de detalhes para conferir. Abaixo está a ordem que usamos e os erros que mais aparecem em migrações de sites.
- 1. Faça o inventário do site
- 2. Backup completo antes de mexer
- 3. Transferência de cPanel para cPanel
- 3b. Migração manual: arquivos, banco e wp-config
- 4. Teste antes de trocar o DNS
- 5. Troca de DNS com TTL baixo
- 6. Migração dos e-mails
- Checklist pós-migração
- Erros comuns na migração de hospedagem
- Perguntas frequentes
1. Faça o inventário do site
A maior parte dos problemas de migração vem de algo que ninguém lembrou que existia: um subdomínio criado anos atrás, uma tarefa agendada que gera o feed de produtos, um registro TXT que valida o domínio em outra ferramenta. Antes de copiar qualquer arquivo, abra o painel da hospedagem atual e anote o que está em uso.
| Item | Onde conferir no painel atual | O que anotar |
|---|---|---|
| Arquivos | Gerenciador de arquivos ou FTP | Pastas de cada site e subdomínio, tamanho total, arquivos ocultos como o .htaccess |
| Bancos de dados | MySQL/MariaDB e phpMyAdmin | Nome de cada banco, usuário e qual site usa qual banco |
| E-mails | Contas de e-mail | Contas, encaminhadores, respostas automáticas, listas e o espaço ocupado |
| DNS | Editor de zona | Todos os registros: A, CNAME, MX, TXT (SPF, DKIM, verificações) e onde estão os nameservers |
| SSL | SSL/TLS | Se o certificado é gratuito automático ou comprado, e a data de validade |
| Cron | Tarefas cron | Comando e horário de cada tarefa agendada |
| Ambiente | Seletor de PHP | Versão do PHP, extensões ativas e limites (memória, upload) |
Confira também onde o domínio está registrado. Trocar de hospedagem não exige trocar o registro do domínio: são coisas separadas. Se quiser levar o domínio para a mesma empresa depois, o caminho está no guia de transferência de domínio, mas faça isso em outro momento, nunca no meio da migração.
2. Backup completo antes de mexer
A cópia que vai para o servidor novo não substitui um backup guardado fora das duas hospedagens. Se algo der errado na transferência, é ele que salva o site. Baixe para o seu computador ou para um armazenamento em nuvem:
- O backup completo da conta, se o painel for cPanel (menu Backup ou Assistente de Backup).
- Um arquivo
.sqlde cada banco de dados, exportado à parte. - Uma cópia da pasta do site, para não depender só do arquivo compactado.
- Um print ou exportação da zona DNS e da lista de tarefas cron.
Dica: abra o arquivo baixado e confira se ele não está vazio ou corrompido. Um backup que nunca foi testado é só uma esperança. Entenda os tipos de cópia, incluindo o snapshot, no guia sobre o que é backup e as vantagens do backup em snapshot.
3. Transferência de cPanel para cPanel
Quando as duas hospedagens usam cPanel, o caminho mais curto é a cópia da conta inteira. Ela leva arquivos, bancos de dados, contas de e-mail com as mensagens e boa parte das configurações da conta de uma vez. Só tem um detalhe: o backup completo do cPanel não é restaurado pelo próprio cPanel, e sim pelo WHM, que é o painel do administrador do servidor. Na prática, quem faz essa etapa é a empresa de destino.
- Gere o backup completo da conta no cPanel antigo, ou combine com a nova hospedagem para que ela faça a cópia direto do servidor antigo.
- Envie o arquivo (ou o acesso, se for a cópia direta) pelo canal oficial de suporte da empresa nova.
- Depois da restauração, confira no cPanel novo se estão lá os domínios adicionais, subdomínios, bancos, contas de e-mail e tarefas cron.
- Se você passou a senha do cPanel antigo para a cópia, troque essa senha assim que a transferência terminar.
3b. Migração manual: arquivos, banco e wp-config
Se a hospedagem antiga não usa cPanel, ou se você quer levar só um site da conta, a migração é feita em três partes. O exemplo abaixo é de WordPress, mas a lógica vale para OpenCart, Joomla e qualquer sistema com banco de dados.
Arquivos
Compacte a pasta do site em um arquivo .zip no gerenciador de arquivos, baixe e envie para a pasta pública da conta nova (normalmente public_html), descompactando por lá. Compactar evita copiar milhares de arquivos um por um por FTP e garante que arquivos ocultos, como o .htaccess, vão junto.
Banco de dados
Exporte o banco pelo phpMyAdmin (aba Exportar, formato SQL). Na hospedagem nova, crie um banco vazio e um usuário com todas as permissões nele, e importe o arquivo. Se o banco for grande e passar do limite de upload do phpMyAdmin, quem tem acesso SSH pode usar a linha de comando:
# no servidor antigo
mysqldump -u usuario_antigo -p nome_do_banco > banco.sql
# no servidor novo
mysql -u usuario_novo -p banco_novo < banco.sql
wp-config.php
Com os arquivos e o banco no lugar, ajuste o wp-config.php com os dados do banco criado na hospedagem nova. Sem isso, o site mostra o erro “Erro ao estabelecer conexão com o banco de dados”.
define( 'DB_NAME', 'banco_novo' );
define( 'DB_USER', 'usuario_novo' );
define( 'DB_PASSWORD', 'senha_do_usuario_novo' );
define( 'DB_HOST', 'localhost' );
Mantenha o $table_prefix igual ao do site antigo. Se o endereço do site também vai mudar (de domínio ou de http para https), não use “localizar e substituir” num editor de texto sobre o arquivo SQL: o WordPress guarda dados serializados que quebram com essa troca. Use um plugin de busca e substituição ou o comando wp search-replace do WP-CLI.
4. Teste antes de trocar o DNS (arquivo hosts)
Enquanto o DNS aponta para a hospedagem antiga, seus visitantes continuam vendo o site de sempre. Você pode ver a versão nova antes de todo mundo editando o arquivo hosts do seu computador, que diz ao seu navegador para ir direto ao IP do servidor novo.
| Sistema | Onde fica o arquivo | Como editar |
|---|---|---|
| Windows | C:\Windows\System32\drivers\etc\hosts | Abra o Bloco de Notas como administrador |
| macOS | /etc/hosts | No Terminal: sudo nano /etc/hosts |
| Linux | /etc/hosts | Com sudo no editor que preferir |
Acrescente uma linha com o IP do servidor novo (ele aparece no painel da conta nova) e o domínio, com e sem www:
203.0.113.10 seudominio.com.br www.seudominio.com.br
Salve, feche o navegador e abra uma janela anônima. A partir daí, só o seu computador enxerga o servidor novo. Navegue pelas páginas principais, faça login no painel do site, envie um formulário de contato e, se for loja, finalize um pedido de teste. Quando terminar, apague a linha do hosts; se esquecer, você vai continuar vendo o servidor novo mesmo que algo mude depois.
Atenção: sem o domínio apontado, o certificado SSL gratuito do servidor novo pode ainda não ter sido emitido. Um aviso de certificado durante o teste pelo hosts é normal nesse caso; erro de página, banco ou layout não é.
5. Troca de DNS com TTL baixo
O TTL é o tempo que os servidores de DNS pela internet guardam a resposta antiga antes de perguntar de novo. Se ele estiver em várias horas, a mudança demora várias horas para chegar a todos. Por isso, a troca começa um dia antes.
- Na véspera: no editor de zona da hospedagem atual, baixe o TTL dos registros A, CNAME e MX para 300 segundos. Espere pelo menos o tempo do TTL antigo para que o valor novo valha em toda parte.
- Congele o site: evite publicar posts ou receber pedidos durante a troca. Em lojas, escolha o horário de menos vendas. Se o site mudou desde a cópia, sincronize os arquivos e o banco de novo antes de apontar.
- Aponte: há dois jeitos. Você pode trocar só os registros A (e o MX, se o e-mail também muda) para o IP novo, mantendo o DNS onde está. Ou pode trocar os servidores DNS (nameservers) do domínio para os da hospedagem nova, o que leva a zona inteira para lá.
- Acompanhe: verifique de fora se o domínio já responde com o IP novo e mantenha a hospedagem antiga ativa.
Trocar os nameservers dá menos controle sobre o tempo, porque o TTL desses registros é definido pelo registro do domínio, não por você. E a zona nova precisa ter todos os registros que você anotou no inventário, inclusive os TXT de verificação e os MX de um e-mail externo. Domínios .br têm os nameservers alterados no painel do Registro.br; os demais, no painel da empresa onde o domínio foi registrado. Para entender por que alguns visitantes veem o site novo antes dos outros, leia o guia de propagação de DNS.
6. Migração dos e-mails
O que fazer com os e-mails depende de onde eles estão hoje:
- E-mail em um serviço separado da hospedagem: não há caixa para migrar. Só garanta que os registros MX, SPF e DKIM desse serviço estejam na zona DNS que vai responder pelo domínio depois da troca.
- E-mail na mesma hospedagem, com cópia de conta cPanel: as caixas costumam ir junto. Confira se as contas, as senhas e o histórico de mensagens chegaram.
- E-mail na mesma hospedagem, migração manual: crie as mesmas contas no servidor novo e copie as mensagens via IMAP. Dá para fazer configurando a conta antiga e a nova no mesmo programa de e-mail e arrastando as pastas, ou com uma ferramenta de sincronização IMAP, que é mais prática quando são muitas caixas.
Durante a propagação, parte das mensagens ainda cai no servidor antigo. Mantenha a conta antiga ativa por alguns dias depois da troca do MX e faça uma última sincronização antes de cancelar. Quem lê e-mail pelo celular vai precisar atualizar o servidor de entrada e saída se o endereço do servidor mudar.
Checklist pós-migração
Assim que o domínio estiver respondendo pelo servidor novo, passe por esta lista:
- O cadeado aparece no navegador e o certificado SSL foi emitido para o domínio com e sem www.
- Páginas internas, imagens e links abrem sem erro 404 (se não abrirem no WordPress, salve de novo os links permanentes).
- Formulários enviam e as mensagens chegam na caixa de entrada.
- E-mails saem e chegam, sem cair no spam do destinatário.
- As tarefas cron estão cadastradas e rodando (backups de plugin, feeds, envios agendados).
- A versão do PHP é a mesma ou mais nova, com as extensões que o site usa.
- Integrações externas (pagamento, frete, ERP, CDN) apontam para o site certo; algumas liberam acesso por IP e precisam do IP novo.
- O backup automático da hospedagem nova está ativo.
- Depois de uma ou duas semanas sem problema, o TTL volta ao valor normal e a hospedagem antiga pode ser cancelada.
Na SAN: a hospedagem de sites em Instâncias Cloud tem migração gratuita, com cPanel, CloudLinux, tráfego ilimitado e suporte em português. Se você vai trazer seu site, fale com o time antes de mexer no DNS.
Erros comuns na migração de hospedagem
| Erro | O que acontece | Como evitar |
|---|---|---|
| Cancelar a hospedagem antiga cedo demais | Visitantes com DNS antigo em cache caem num site fora do ar; e-mails se perdem | Cancelar só depois de uma a duas semanas com tudo funcionando |
Esquecer o .htaccess | Links internos dão erro 404, redirecionamentos param de funcionar | Copiar a pasta compactada, mostrando arquivos ocultos |
Dados de banco errados no wp-config.php | “Erro ao estabelecer conexão com o banco de dados” | Conferir nome do banco, usuário, senha e host da conta nova |
| Trocar os nameservers sem copiar a zona | E-mail externo para de receber, verificações do Google e de outras ferramentas falham | Recriar todos os registros do inventário na zona nova antes da troca |
| Versão de PHP diferente | Tela branca ou erros de plugin | Escolher a mesma versão no servidor novo e atualizar depois, com calma |
| Esquecer as tarefas cron | Backups, feeds e e-mails agendados param sem ninguém perceber | Copiar a lista do painel antigo no inventário |
| Migrar com o site recebendo pedidos | Pedidos feitos depois da cópia ficam só no servidor antigo | Congelar o site ou sincronizar o banco de novo antes de apontar |
Perguntas frequentes
A cópia em si costuma levar de minutos a algumas horas, conforme o tamanho dos arquivos, do banco e das caixas de e-mail. O que mais pesa é a propagação de DNS, que fica bem mais curta se você baixar o TTL na véspera.
Não precisa ficar. A hospedagem antiga continua atendendo enquanto você copia e testa no servidor novo pelo arquivo hosts. Só depois do teste você troca o DNS, e as duas ficam ativas durante a propagação.
Não. O registro do domínio e a hospedagem são serviços separados; basta apontar o DNS para o servidor novo. Se quiser juntar tudo na mesma empresa, faça a transferência de domínio depois que a migração estiver concluída.
Não, se as caixas forem copiadas antes da troca do MX e a conta antiga ficar ativa por alguns dias. Numa cópia de conta cPanel para cPanel, as mensagens costumam ir junto; na migração manual, copie as pastas via IMAP.
Depois de uma a duas semanas com o site, os formulários, os e-mails e as tarefas agendadas funcionando no servidor novo, e com um backup completo guardado fora das duas hospedagens.