Como migrar um site WordPress de hospedagem sem sair do ar
Migração de hospedagem só dá errado por dois motivos: alguém troca o DNS antes de o site estar pronto no destino, ou alguém esquece que o e-mail vai junto. O passo a passo abaixo evita os dois.
A migração não quebra o site — a pressa quebra
Quase todo relato de "meu site sumiu quando troquei de hospedagem" tem a mesma origem: o DNS foi apontado para o servidor novo antes de o site estar funcionando lá. Durante as horas seguintes, parte dos visitantes vai para o servidor novo (vazio) e parte para o antigo. O site fica intermitente, e ninguém entende por quê.
A solução é simples e é sempre a mesma: o DNS é o último passo, nunca o primeiro. Você monta tudo no destino, testa com o domínio real sem mexer no DNS público, e só então aponta.
Este roteiro serve para hospedagem compartilhada com cPanel, que é o caso mais comum.
---
Antes de começar: reduza o TTL
Este passo precisa ser feito 24 a 48 horas antes da migração, e é o mais esquecido.
O TTL diz por quanto tempo os servidores de DNS do mundo guardam em cache a resposta do seu domínio. Se ele estiver em 24 horas, sua mudança demora até 24 horas para valer para todo mundo.
No painel de DNS atual, mude o TTL dos registros A (e do www) para 300 segundos (5 minutos). Espere o TTL antigo expirar. Assim, na hora da virada, a mudança propaga em minutos em vez de um dia.
Depois de tudo estabilizado, você volta o TTL para 3600 ou mais.
---
1. Faça o backup completo — e confira
No cPanel antigo, você precisa de duas coisas:
Os arquivos. Em Gerenciador de Arquivos, entre em public_html, selecione tudo e compacte em .zip. Baixe.
O banco de dados. Em phpMyAdmin, selecione o banco do site, aba Exportar, método rápido, formato SQL. Baixe.
Confira o óbvio antes de seguir: o .zip abre? O .sql tem tamanho compatível (um site com conteúdo não gera um dump de 2 KB)? Backup que ninguém abriu não é backup.
Anote também as credenciais que estão no wp-config.php: nome do banco, usuário e senha. Você vai precisar.
---
2. Monte o site no destino
No cPanel novo:
- Crie o banco em Bancos de Dados MySQL: banco, usuário e senha. Vincule o usuário ao banco com todos os privilégios.
- Importe o dump pelo phpMyAdmin do servidor novo, dentro do banco recém-criado.
- Suba os arquivos em
public_htmle extraia. - Edite o
wp-config.phpcom os dados novos:
``php define( 'DB_NAME', 'novo_banco' ); define( 'DB_USER', 'novo_usuario' ); define( 'DB_PASSWORD', 'nova_senha' ); define( 'DB_HOST', 'localhost' ); ``
---
3. Teste com o domínio real, sem tocar no DNS
Este é o truque que transforma migração arriscada em migração tranquila. Você engana apenas o seu computador para que ele resolva o domínio no servidor novo, enquanto o mundo continua vendo o antigo.
Edite o arquivo de hosts:
- Windows:
C:\Windows\System32\drivers\etc\hosts(abra o editor como administrador) - Linux/macOS:
/etc/hosts
Acrescente uma linha com o IP do servidor novo:
`` 203.0.113.10 seusite.com.br 203.0.113.10 www.seusite.com.br ``
Salve e abra o site no navegador. Você está vendo o servidor novo, com o domínio real, e nenhum visitante foi afetado.
Agora teste de verdade: home, uma página interna, um post, a busca, o formulário de contato, o login em /wp-admin, e o checkout se houver loja. Verifique se as imagens carregam — imagem quebrada aqui normalmente significa caminho absoluto antigo no banco.
Terminado o teste, remova as linhas do hosts. Esquecer delas é a causa número um de "para mim o site funciona e para o cliente não".
---
4. Não esqueça o e-mail
Aqui mora o desastre silencioso. Se o seu e-mail @seudominio.com.br está hospedado no mesmo servidor do site, ao apontar o DNS você move o e-mail junto — e as mensagens que chegarem depois disso vão para o servidor novo, onde as contas talvez nem existam.
Antes da virada:
- Recrie todas as contas de e-mail no cPanel novo, com as mesmas senhas
- Migre as mensagens antigas (o cPanel novo costuma ter ferramenta de importação, ou faça por cliente IMAP)
- Confira os registros MX — se o e-mail é de outro serviço (Google Workspace, Zoho), anote os MX atuais e replique-os exatamente no DNS novo
E-mail perdido em migração raramente volta.
---
5. Aponte o DNS
Com tudo testado, troque os registros A para o IP novo — o do domínio e o do www.
Com TTL de 300 segundos, a propagação começa em minutos. Mantenha a hospedagem antiga ativa por pelo menos mais 7 dias: enquanto houver cache antigo circulando, parte do tráfego ainda chega lá, e você quer que ele encontre o site funcionando em vez de erro.
---
6. Depois da virada
Emita o SSL. No cPanel, o certificado gratuito costuma sair sozinho depois que o DNS aponta — mas confira. Site sem HTTPS perde visitante e posição.
Force HTTPS e www (ou sem www). Escolha uma versão canônica e redirecione a outra com 301. Duas versões acessíveis dividem sua força no Google.
Recrie os agendamentos. Cron jobs não migram junto: backup automático, wp-cron, tarefas de plugin.
Limpe o cache. Do plugin de cache, do CDN se houver, e do próprio navegador antes de testar.
Confira o Search Console nos dias seguintes, no relatório de páginas, para pegar erro que só aparece em produção.
---
Checklist rápido
- [ ] TTL reduzido para 300s, 24–48h antes
- [ ] Backup de arquivos e banco, verificados
- [ ] Banco criado e importado no destino
- [ ]
wp-config.phpatualizado - [ ] Site testado pelo arquivo hosts, com o domínio real
- [ ] Linhas do hosts removidas
- [ ] Contas de e-mail recriadas e MX conferidos
- [ ] DNS apontado
- [ ] Hospedagem antiga mantida por 7 dias
- [ ] SSL emitido e HTTPS forçado
- [ ] Cron jobs recriados
- [ ] Cache limpo
Migração de site pequeno leva cerca de uma hora de trabalho efetivo. O que consome tempo é a espera do TTL — e é justamente ela que impede o site de piscar.