Resumo: este passo a passo mostra um jeito seguro de migrar um WordPress para outro domínio, ajustando URLs no banco e garantindo compatibilidade de versão/PHP, com checklist e pontos de atenção.
O Problema
Quando você muda um WordPress de um domínio para outro, a URL antiga fica gravada em vários lugares (opções, conteúdo, metadados e até plugins). Resultado:
- links internos quebrados
- imagens e arquivos apontando para o domínio antigo
- plugins (ex: Jetpack) “presas” na URL antiga
- erro 500 por incompatibilidade de versão do WordPress com PHP
Checklist Antes de Começar
- 1) Backup dos arquivos (principalmente
wp-content) - 2) Backup do banco de dados (dump completo)
- 3) Anote o prefixo das tabelas (ex:
wp_,form_) - 4) Confirme a versão do WordPress e requisitos de PHP/MySQL
A Solução
1) Descubra a versão exata do WordPress
No WordPress migrado (ou no backup), abra:
/wp-includes/version.php $wp_version = '5.6.13'; $required_php_version = '5.6.20'; $required_mysql_version = '5.0'; |
Por quê isso importa? Se o servidor novo estiver com PHP abaixo do requerido, você pode tomar erro 500 ou falhas estranhas no admin.
2) Baixe a mesma versão do WordPress (recomendado)
Baixe a versão correspondente e use para validar/normalizar os arquivos do core:
- substitua somente as pastas:
wp-adminewp-includes - não mexa em:
wp-content
3) Ajuste as URLs no banco de dados
Depois de importar o banco no servidor novo, rode os REPLACE() para trocar o domínio antigo pelo novo.
⚠️ Importante: mantenha o mesmo protocolo (https/http) e o mesmo caminho (/form) se ele existir no domínio antigo.
-- Troque "form_" pelo prefixo real das suas tabelas -- Antigo: https://dominioantigo.com.br/form -- Novo: https://dominionovo.com.br UPDATE form_options SET option_value = REPLACE(option_value, 'https://dominioantigo.com.br/form', 'https://dominionovo.com.br/form') WHERE option_name IN ('home', 'siteurl'); UPDATE form_options SET option_value = REPLACE(option_value, 'https://dominioantigo.com.br/form', 'https://dominionovo.com.br/form') WHERE option_name IN ('jetpack_plugin_api_action_links'); UPDATE form_posts SET guid = REPLACE(guid, 'https://dominioantigo.com.br/form', 'https://dominionovo.com.br/form'); UPDATE form_posts SET post_content = REPLACE(post_content, 'https://dominioantigo.com.br/form', 'https://dominionovo.com.br/form'); UPDATE form_postmeta SET meta_value = REPLACE(meta_value, 'https://dominioantigo.com.br/form', 'https://dominionovo.com.br/form'); |
4) Ajuste o wp-config.php (pontos rápidos)
- confira
DB_NAME,DB_USER,DB_PASSWORD,DB_HOST - confira se o
$table_prefixé o mesmo do banco importado
$table_prefix = 'form_'; // exemplo: deve bater com o banco |
5) Pós-migração: validações rápidas
- Admin: acesse
/wp-admine valide login - Links permanentes: vá em Configurações → Links Permanentes e clique em “Salvar” (sem mudar nada)
- Cache: limpe cache do plugin/servidor/CDN
- Mídia: valide algumas páginas antigas com imagens
Erros comuns (e correção rápida)
Erro 500 depois da migração
- Causa comum: PHP incompatível com a versão do WP
- Correção: ajuste PHP para a versão mínima do
$required_php_version
Site abre, mas imagens continuam no domínio antigo
- Causa comum: URL antiga salva em
post_contentepostmeta - Correção: rode os REPLACE em
postsepostmeta(já está no script acima)
Plugins quebraram (ex: Jetpack)
- Causa comum: configs internas apontando para URL antiga
- Correção: ajuste opções específicas do plugin (como no exemplo do Jetpack)
Conclusão
Uma migração “limpa” de WordPress depende de 3 coisas:
- 1) trocar URLs em todos os pontos certos do banco
- 2) manter a versão do core (ou atualizar com planejamento)
- 3) garantir compatibilidade de PHP no servidor novo