Mover o seu site WordPress pode ser uma tarefa intimidadora, mas com o conhecimento e preparação adequados, torna-se um processo gerenciável. Seja alterando domínio, atualizando hospedagem ou reestruturando arquitetura do site, este guia técnico o acompanhará em cada etapa do processo de migração WordPress.
Endereço do WordPress e endereço do site
Antes de mergulharmos nas técnicas de migração, é crucial entender as duas configurações fundamentais de URL no WordPress:
- Endereço WordPress (URL): Onde residem os seus ficheiros core do WordPress
- Endereço do Site (URL): Este é o endereço que visitantes digitam no navegador para acede ar o seu site
Ambas configurações devem incluir a parte https:// e não devem ter barra / no final. Essas configurações controlam como o WordPress exibe URLs em todo seu site, incluindo seção admin e frontend.
Quando é preciso migrar um site WordPress
Vários cenários podem exigir migração do seu site WordPress:
- Mudanças de Domínio: Rebranding ou mudança para melhor nome de domínio
- Migração de Hospedagem: Mudança para provedor de hospedagem melhor
- Mudanças de Servidor: Atualização de infraestrutura do servidor
- Restruturação do Site: Movendo WordPress para subdiretório ou diretório raiz
- Desenvolvimento para Produção: Movendo de staging para ambiente live
- HTTP para HTTPS: Implementação de certificados SSL
Como preparar a migração de um site WordPress
O que guardar em backup antes da migração
Antes de tentar qualquer migração, crie backups completos:
- Backup do Banco de Dados: Exporte seu banco de dados WordPress via phpMyAdmin ou WP-CLI
- Backup de ficheiros: Transfira todos os ficheiros e diretórios WordPress
- Backup de Configuração: Salve o seu ficheiro wp-config.php separadamente
- Configurações de Plugins/Themes: Documente configurações personalizadas
Como testar a migração num ambiente de staging
Sempre teste migrações em ambiente staging antes de ir para produção:
## Criar subdiretório de teste
mkdir /var/www/html/test-site
## Copiar ficheiros para local de teste
cp -r /var/www/html/wordpress/* /var/www/html/test-site/Como migrar um site WordPress passo a passo
Método 1: definir WP_HOME e WP_SITEURL no wp-config.php
Para migrações rápidas onde apenas precisa atualizar URLs:
// Em wp-config.php
define('WP_HOME', 'https://novosite.com');
define('WP_SITEURL', 'https://novosite.com');Quando usar: Migrações simples de domínio, ambiente de desenvolvimento para produção
Vantagens: Rápido, sem necessidade de banco de dados Desvantagens: Não migra conteúdo, apenas atualiza URLs
Método 2: migrar com um plugin
Plugins populares:
- All-in-One WP Migration: Interface amigável, migração completa
- Duplicator: Cria pacotes completos para migração. As versões até à 1.5.17 (Pro até à 4.6.10) tinham a vulnerabilidade CVE-2026-82814 (CVSS 3.1: 8,8): um valor deixado num comentário comum por um atacante não autenticado era executado pelo instalador numa migração posterior (Wordfence, 20 de outubro de 2026). A versão 5.0.0 corrige a falha, mas atualizar o plugin não reconstrói os pacotes antigos, por isso crie um pacote novo antes de migrar.
- WP Migrate Lite (antes WP Migrate DB): exportação da base de dados com pesquisa e substituição
Processo típico:
- Instale plugin de migração
- Exporte pacote de migração
- Importe para novo local
- Execute processo de migração
Método 3: migração manual passo a passo
Passo 1: Backup completo
## Backup do banco de dados
mysqldump -u usuario -p nome_banco > backup.sql
## Backup dos ficheiros
tar -czf backup_arquivos.tar.gz /caminho/para/wordpress/Passo 2: Transferir ficheiros
## Via SCP
scp -r /caminho/para/wordpress/ usuario@servidor:/var/www/html/
## Via rsync (recomendado para sites grandes)
rsync -avz /caminho/para/wordpress/ usuario@servidor:/var/www/html/Passo 3: Importar banco de dados
## Via WP-CLI
wp db import backup.sql --path=/var/www/html/
## Via MySQL
mysql -u usuario -p nome_banco < backup.sqlPasso 4: Atualizar wp-config.php
// Atualizar credenciais do banco de dados
define('DB_NAME', 'novo_banco');
define('DB_USER', 'novo_usuario');
define('DB_PASSWORD', 'nova_senha');
define('DB_HOST', 'localhost');Passo 5: Atualizar URLs na base de dados
-- Atualizar URLs principais
UPDATE wp_options SET option_value = REPLACE(option_value, 'antigo.com', 'novo.com') WHERE option_name IN ('siteurl', 'home');
-- Atualizar URLs no conteúdo
UPDATE wp_posts SET post_content = REPLACE(post_content, 'antigo.com', 'novo.com');
-- A coluna guid nunca se altera. Metadados e opções serializadas tratam-se com wp search-replace, não com SQLAlterar o endereço do site via functions.php, RELOCATE ou phpMyAdmin
Quando não consegue entrar na administração do WordPress depois da mudança, há três outras formas de definir siteurl e home (Moving WordPress).
functions.php. Se tem acesso FTP mas não à administração, acrescente estas linhas logo a seguir à etiqueta de abertura <?php no functions.php do tema ativo:
update_option('siteurl', 'https://novo.com');
update_option('home', 'https://novo.com');Carregue o ficheiro, abra a administração uma vez e retire as linhas quando o site estiver a funcionar.
A constante RELOCATE. Acrescente define('RELOCATE', true); ao wp-config.php antes da linha That's all, stop editing!, abra o wp-login.php no novo endereço e inicie sessão normalmente. Confirme os endereços em Definições > Geral e retire a constante a seguir. Deixá-la no wp-config.php é inseguro.
phpMyAdmin. Abra a base de dados, encontre a tabela wp_options (o prefixo pode ser outro) e altere o option_value das linhas siteurl e home. Faça sempre uma cópia de segurança da base de dados antes de a editar diretamente.
Seja qual for o método, há uma regra do manual que se mantém: a coluna guid de wp_posts nunca se altera. GUID significa Global Unique Identifier, e alterá-lo pode levar os leitores de feeds a mostrar artigos antigos como novos.
Migrar WordPress para novo domínio, multisite ou HTTPS
Migração de domínio com mudança de estrutura
Cenário: de blog.antigo.com/blog para novo.com
Solução:
- Mover ficheiros para novo diretório raiz
- Atualizar wp-config.php
- Executar substituição de URLs
- Configurar redirecionamentos 301
Migração multisite
Desafios:
- Múltiplos bancos de dados ou tabelas compartilhadas
- Configurações de rede complexas
- Plugins compartilhados
Solução com WP-CLI:
## Migrar todos os sites na rede
wp search-replace 'antigo.com' 'novo.com' --network --skip-columns=guid --dry-run
wp search-replace 'antigo.com' 'novo.com' --network --skip-columns=guidMigração HTTP para HTTPS
Passos necessários:
- Instalar certificado SSL
- Atualizar URLs no banco de dados
- Configurar redirecionamento forçado
- Atualizar .htaccess
Configuração .htaccess:
## Forçar HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Checklist depois de migrar o WordPress
Verificação técnica de páginas, plugins e formulários
- Página inicial carrega corretamente
- Links internos funcionam
- Área admin acessível
- Plugins funcionando
- Tema exibindo corretamente
- Formulários funcionando
- Upload de media funcionando
Redirecionamentos 301, sitemap e velocidade
- Configurar redirecionamentos 301
- Atualizar sitemap XML
- Verificar Google Search Console
- Testar velocidade do site
- Verificar metatags
- Testar busca interna
Verificação de segurança após a migração
- Remover ficheiros de migração
- Limpar caches
- Verificar permissões de ficheiros
- Atualizar senhas se necessário
- Configurar firewall se aplicável
Erros comuns depois de migrar WordPress e soluções
Problema 1: página branca após a migração
Causas possíveis:
- Erro de conexão com banco de dados
- Memória PHP insuficiente
- Plugin incompatível
Soluções:
// Aumentar memória PHP em wp-config.php
define('WP_MEMORY_LIMIT', '256M');
// Habilitar debug
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);Problema 2: links quebrados após a migração
Causa: URLs não atualizadas corretamente
Solução com WP-CLI:
## Buscar e substituir URLs
wp search-replace 'http://antigo.com' 'https://novo.com' --dry-run
wp search-replace 'http://antigo.com' 'https://novo.com'Problema 3: erro de ligação à base de dados
Verificar:
- Credenciais em wp-config.php
- Servidor MySQL ativo
- Permissões do utilizador do banco
- Nome do banco de dados correto
Problema 4: falha no upload de multimédia
Soluções:
## Verificar permissões
chmod 755 wp-content
chmod 755 wp-content/uploads
chmod 644 wp-content/uploads/*
## Verificar o caminho de uploads na base de dados (valor vazio significa o padrão wp-content/uploads)
wp option get upload_pathPlugins e ferramentas para migrar WordPress
Comandos WP-CLI úteis na migração
Comandos úteis:
## Exportar banco de dados
wp db export
## Substituir URLs
wp search-replace 'antigo.com' 'novo.com'
## Limpar cache
wp cache flush
## Verificar integridade do banco
wp db checkPlugins para substituir URLs e ativar HTTPS
- Better Search Replace: interface simples para substituir URLs, com suporte para dados serializados (o Velvet Blues Update URLs foi fechado no diretório de plugins a 3 de maio de 2024)
- SSL Insecure Content Fixer: corrige conteúdo misto HTTP/HTTPS
- Really Simple Security (antes Really Simple SSL): configuração automática de HTTPS
Ferramentas para testes locais e de desempenho
- Local by Flywheel: Ambiente local para testes
- XAMPP/MAMP: Servidores locais
- BrowserStack: Testes cross-browser
- GTmetrix: Análise de performance
Como migrar WordPress sem perder dados
Antes da migração
Planejamento Detalhado
- Documentar processo completo
- Identificar pontos críticos
- Definir cronograma
Backup Redundante
- Backup local
- Backup em nuvem
- Backup do banco separado
Testes Completos
- Ambiente staging idêntico
- Testar todos os fluxos
- Envolvimento da equipa
Durante a migração
Monitoramento Ativo
- Logs em tempo real
- Verificação de status
- Comunicação com equipa
Válidação Contínua
- Verificar cada etapa
- Testar funcionalidades críticas
- Documentar problemas
Após a migração
Verificação Abrangente
- Teste completo do site
- Verificação de SEO
- Análise de performance
Otimização
- Limpeza de dados desnecessários
- Otimização de banco de dados
- Configuração de cache
Migrar WordPress para VPS ou cloud com Nginx
O que muda em VPS e cloud
Ambientes em nuvem:
- Configuração de balanceamento de carga
- CDN integration
- Backup automatizado
- Escalabilidade
VPS/Dedicado:
- Configuração do servidor
- Otimização de performance
- Segurança avançada
- Monitoramento
Configuração de Nginx para WordPress
server {
listen 80;
server_name novo.com www.novo.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name novo.com www.novo.com;
root /var/www/html;
index index.php index.html;
# Configuração SSL
ssl_certificate /caminho/para/cert.pem;
ssl_certificate_key /caminho/para/private.key;
# Configuração WordPress
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# Cache de arquivos estáticos
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}Como migrar WordPress sem perder SEO
Como manter rankings com redirecionamentos 301
Estratégias:
- Redirecionamentos 301 permanentes
- Manutenção de estrutura de URLs
- Preservação de metadados
- Monitoramento de rankings
Google Search Console
Ações necessárias:
- Adicionar nova propriedade
- Submeter novo sitemap
- Monitorar erros de rastreamento
- Verificar indexação
Que métricas acompanhar após a migração
Métricas para monitorar:
- Tráfego orgânico
- Rankings de palavras-chave
- Taxa de rejeição
- Tempo de carregamento
- Conversões
Como migrar WordPress sem tempo de inatividade com o TTL de DNS
Um resolver pode guardar em cache um registo DNS durante o tempo que o TTL permite (RFC 1035, secção 3.2.1). Isso define a ordem dos passos:
- Baixe o TTL com antecedência. Defina os registos A e AAAA com um TTL curto, por exemplo 300 segundos, pelo menos um TTL antigo completo antes da mudança. Se o valor antigo era 86400 segundos, isso significa um dia antes, porque até expirar os resolvers continuam a responder com o IP antigo.
- Teste o novo servidor através do ficheiro hosts. Associe o domínio ao novo IP no ficheiro hosts local e percorra o checkout, o início de sessão e os formulários no servidor de destino antes de o registo público mudar. Os visitantes continuam a chegar ao servidor antigo.
- Congele as escritas para o dump final. Encomendas, comentários e envios de formulários que cheguem ao servidor antigo depois do último
wp db exportnão passam para o novo. Coloque o site antigo em modo de manutenção, ou pare a publicação, durante a exportação e a importação finais.
Como transferir uma biblioteca de multimédia grande com rsync
O FTP volta a copiar todos os ficheiros em cada tentativa. O rsync sobre SSH compara origem e destino e envia apenas as diferenças, por isso uma segunda execução só move o que mudou desde a primeira (manual do rsync).
- Execute-o duas vezes. A primeira passagem copia
wp-content/uploadsenquanto o site antigo continua online. A segunda, durante o congelamento das escritas, apanha os ficheiros adicionados entretanto. - Substitua os URLs com WP-CLI, não com SQL. O WordPress guarda opções e definições de widgets como arrays PHP serializados que registam o comprimento de cada cadeia. O
wp search-replacereescreve esses comprimentos, umREPLACE()de SQL não. - Regenere as miniaturas se o tema mudar. O
wp media regeneratevolta a criar as miniaturas para os tamanhos de imagem registados na nova instalação, e--only-missinglimita-o às imagens a que faltam tamanhos (WP-CLI: wp media regenerate).
Como verificar SEO, SSL e Core Web Vitals depois de migrar WordPress
- Rastreie a lista de URLs antigos. Cada URL antigo deve responder com um 301 para o seu equivalente novo, e nenhuma ligação interna deve devolver 404. A Google recomenda redirecionamentos permanentes do lado do servidor dos URLs antigos para os novos numa mudança de site, e uma alteração de endereço na Search Console quando o domínio muda (Google Search Central: mudanças de site com alteração de URLs).
- TLS e HSTS. Instale o certificado no novo servidor antes da mudança. O HTTP Strict Transport Security obriga os browsers a usar apenas HTTPS com o domínio durante todo o período max-age (RFC 6797), por isso ative-o só quando o HTTPS funcionar em todos os subdomínios que abrange.
- Meça antes e depois. Corra o PageSpeed Insights nos mesmos modelos no servidor antigo e no novo. A cache de páginas, o OPcache, a cache de objetos e a compressão gzip ou Brotli do novo alojamento notam-se no tempo de resposta do servidor.
Obrigações do RGPD ao mudar de alojamento WordPress
Para o site de uma empresa na UE, um novo alojamento é também um novo subcontratante no tratamento de dados pessoais:
- Um contrato de subcontratação com o novo fornecedor. O artigo 28.º do RGPD exige um contrato que defina o objeto, a duração, a natureza e a finalidade do tratamento e que obrigue o subcontratante às medidas de segurança do artigo 32.º (RGPD, Regulamento (UE) 2016/679).
- Atualize a política de privacidade. Se a mudança acrescenta uma CDN, um novo local de cópias de segurança ou um novo alojamento, a lista de destinatários na política de privacidade muda com ela.
- Apagamento no fornecedor antigo. Nos termos do artigo 28.º, n.º 3, alínea g), o subcontratante apaga ou devolve os dados pessoais no fim do serviço, consoante a escolha do responsável pelo tratamento. Quando o novo servidor estiver estável, peça ao fornecedor antigo que confirme o apagamento de ficheiros, bases de dados e cópias de segurança.
Implementação de WordPress com GitHub Actions e reversão
- Implemente a partir do repositório. Um workflow em GitHub Actions ou GitLab CI compila os assets do tema e publica o código a cada push para o ramo principal, por isso o servidor não tem ficheiros editados à mão.
- Guarde a versão anterior. Cada versão vai para a sua própria pasta e uma ligação simbólica aponta para a ativa. Reverter o código é apontar a ligação para a versão anterior. Faça um
wp db exportantes de qualquer passo que altere a base de dados, porque reverter o código não desfaz alterações em tabelas nem em conteúdo. - As mesmas versões em todo o lado. Iguale as versões de PHP e de MySQL ou MariaDB entre o ambiente local, o staging e a produção, para que uma migração testada em staging se comporte da mesma forma em produção.
Como o wp search-replace trata dados serializados
O manual do WordPress avisa que uma pesquisa e substituição geral na base de dados pode estragar dados serializados e que a coluna guid de wp_posts nunca deve ser alterada (Moving WordPress). O wp search-replace foi feito para este caso: trata dados PHP serializados e não altera valores de chave primária (WP-CLI: wp search-replace). As opções que contam numa migração:
--dry-runindica o que mudaria e não grava nada.--skip-columns=guidmantém os GUID dos artigos como estão.--preciseforça o processamento em PHP de todas as colunas. É mais lento e mais fiável com dados serializados complexos.--networkabrange todas as tabelas de uma rede multisite. Sem esta opção, só são pesquisadas as tabelas do site atual.--all-tables-with-prefixacrescenta tabelas que os plugins criaram com o prefixo do WordPress sem as registar, e--all-tablesinclui todas as tabelas da base de dados.--export=ficheiro.sqlescreve os dados alterados num ficheiro SQL em vez de na base de dados, o que ajuda quando a base de dados de destino está noutro servidor.
As tabelas sem chave primária são ignoradas, por isso uma tabela de plugin sem chave primária precisa de uma verificação à parte. Para multisite, o manual indica ainda o que rever à mão: as tabelas wp_blogs e wp_site e as opções home, siteurl e fileupload_url de cada site.
O wp db export e o wp db import completam o conjunto. A exportação corre o mysqldump com as credenciais do wp-config.php e aceita qualquer opção do mysqldump, e wp db export - escreve para STDOUT (WP-CLI: wp db export). A importação não cria a base de dados, apenas executa o SQL do ficheiro, e wp db import - lê de STDIN (WP-CLI: wp db import). Crie primeiro a base de dados vazia no destino.
Conclusão
Migração WordPress não precisa ser avassadora quando abordada sistematicamente. Seguindo este guia técnico, preparando-se adequadamente e testando diligentemente, pode migrar o seu site WordPress com sucesso com mínima interrupção para utilizadores e performance SEO.
Lembre-se que preparação é chave, nunca tente migração sem backups completos e plano de rollback claro. Tome seu tempo, teste completamente e não hesite em buscar ajuda profissional para migrações complexas.
Com planejamento e execução adequados, sua migração WordPress pode ser um processo suave que prepare o seu site para crescimento e sucesso futuro.
Do lado da entrega mantemos este tema sob serviço relacionado.







