Migração WordPress: mudar o site com segurança

Migração WordPress: mudar o site com segurança

Última verificação: 21 de outubro de 2026
16 min de leitura
Tutorial
Desenvolvedor full-stack
500+ projetos WP

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:

  1. Mudanças de Domínio: Rebranding ou mudança para melhor nome de domínio
  2. Migração de Hospedagem: Mudança para provedor de hospedagem melhor
  3. Mudanças de Servidor: Atualização de infraestrutura do servidor
  4. Restruturação do Site: Movendo WordPress para subdiretório ou diretório raiz
  5. Desenvolvimento para Produção: Movendo de staging para ambiente live
  6. 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:

  1. Backup do Banco de Dados: Exporte seu banco de dados WordPress via phpMyAdmin ou WP-CLI
  2. Backup de ficheiros: Transfira todos os ficheiros e diretórios WordPress
  3. Backup de Configuração: Salve o seu ficheiro wp-config.php separadamente
  4. 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:

  1. Instale plugin de migração
  2. Exporte pacote de migração
  3. Importe para novo local
  4. 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.sql

#Passo 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 SQL

#Alterar 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:

  1. Mover ficheiros para novo diretório raiz
  2. Atualizar wp-config.php
  3. Executar substituição de URLs
  4. 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=guid

#Migração HTTP para HTTPS

Passos necessários:

  1. Instalar certificado SSL
  2. Atualizar URLs no banco de dados
  3. Configurar redirecionamento forçado
  4. 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);

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_path

#Plugins 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 check

#Plugins 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

  1. Planejamento Detalhado

    • Documentar processo completo
    • Identificar pontos críticos
    • Definir cronograma
  2. Backup Redundante

    • Backup local
    • Backup em nuvem
    • Backup do banco separado
  3. Testes Completos

    • Ambiente staging idêntico
    • Testar todos os fluxos
    • Envolvimento da equipa

#Durante a migração

  1. Monitoramento Ativo

    • Logs em tempo real
    • Verificação de status
    • Comunicação com equipa
  2. Válidação Contínua

    • Verificar cada etapa
    • Testar funcionalidades críticas
    • Documentar problemas

#Após a migração

  1. Verificação Abrangente

    • Teste completo do site
    • Verificação de SEO
    • Análise de performance
  2. 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:

  1. Adicionar nova propriedade
  2. Submeter novo sitemap
  3. Monitorar erros de rastreamento
  4. 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 export nã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/uploads enquanto 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-replace reescreve esses comprimentos, um REPLACE() de SQL não.
  • Regenere as miniaturas se o tema mudar. O wp media regenerate volta a criar as miniaturas para os tamanhos de imagem registados na nova instalação, e --only-missing limita-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 export antes 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-run indica o que mudaria e não grava nada.
  • --skip-columns=guid mantém os GUID dos artigos como estão.
  • --precise força o processamento em PHP de todas as colunas. É mais lento e mais fiável com dados serializados complexos.
  • --network abrange todas as tabelas de uma rede multisite. Sem esta opção, só são pesquisadas as tabelas do site atual.
  • --all-tables-with-prefix acrescenta tabelas que os plugins criaram com o prefixo do WordPress sem as registar, e --all-tables inclui todas as tabelas da base de dados.
  • --export=ficheiro.sql escreve 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.

Próximo passo

Transforme o artigo numa implementação real

Este bloco reforça a ligação interna e conduz o leitor para o passo seguinte mais útil dentro da arquitetura do site.

Quer implementar isto no seu site?

Se quer transformar o artigo em melhorias concretas, redesign ou num plano de implementação, posso fechar o escopo e executar.

Explorar outros serviços WordPress e base de conhecimento

Reforce o seu negócio com suporte técnico profissional em áreas-chave do ecossistema WordPress.

Perguntas frequentes

Respostas práticas para aplicar o tema na execução real.

Quanto tempo demora uma migração WordPress?#
Tempo de migração varia por tamanho do site: Sites pequenos (1-5GB): 1-2 horas, Sites médios (5-20GB): 2-4 horas, Sites grandes (20GB+): 4+ horas.
Preciso de habilidades técnicas para migração WordPress?#
Habilidades técnicas básicas são úteis, mas com orientação adequada e ferramentas, mesmo iniciantes podem migrar sites WordPress com sucesso.
Meu SEO será afetado pela migração?#
Migração executada corretamente com redirecionamentos 301 preserva rankings SEO. Sempre informé o Google sobre mudanças de domínio através do Search Console.
Qual é a diferença entre migração manual e por plugin?#
Migração manual oferece controle total mas requer conhecimento técnico. Migração por plugin é mais fácil mas pode ter limitações para sites complexos.
Como migro instalação multisite WordPress?#
Migração multisite requer tratamento especial de configurações de rede, bancos de dados compartilhados e mapeamento de domínio. Considere ajuda profissional para migrações multisite complexas.

Precisa de FAQ adaptado ao setor e mercado? Crio uma versão alinhada com os seus objetivos de negócio.

Fale connosco

Artigos Relacionados