# Migração de WordPress: 5 passos seguros sem perder dados

A <strong>migração</strong> de WordPress só é segura com backup verificado antes e plugin de migração na versão corrigida. Segundo o <a href="https://nvd.nist.gov/vuln/detail/CVE-2018-25095" rel="noopener" target="_blank">NVD/NIST (2024)</a>, plugins de migração já registraram CVEs críticas com CVSS 9.8. O search-replace serializado é o ponto que mais quebra sites. Migre em staging, valide e só então aponte o DNS.

A migração de WordPress é o processo de mover um site inteiro (arquivos, banco de dados e configurações) de uma hospedagem ou domínio para outro sem perder dados nem expor o site a uma invasão. Na prática, uma migração mal feita derruba imagens, gera loop de redirecionamento e, pior, pode deixar um pacote de instalação exposto na raiz do servidor. Este guia mostra os 5 passos que a gente segue no suporte da FULL, com foco em segurança: backup antes de tocar em qualquer coisa, plugin de migração atualizado e validação completa antes de apontar o DNS. Para um panorama amplo de proteção, veja o <a href="https://full.services/seguranca-wordpress/">guias de segurança WordPress da FULL</a>.

---

## Diagnóstico rápido: O que uma migração de WordPress envolve

Toda mudança de servidor move três camadas, e ignorar qualquer uma quebra o site: os arquivos (`wp-content`, temas, plugins, uploads), o banco de dados MySQL (posts e opções) e a configuração de domínio (DNS e SSL). Na maioria dos tickets de transferência travada que chegam ao suporte da FULL, o erro não está no upload, e sim no search-replace de URL dentro do banco.

<table id="camadas-migracao-wordpress">
  <caption>Migração de WordPress: camadas, objetivo e risco</caption>
  <thead>
    <tr>
      <th scope="col">Camada</th>
      <th scope="col">O que mover</th>
      <th scope="col">Risco se ignorada</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Arquivos</th>
      <td>wp-content, temas, plugins, uploads</td>
      <td>Site sem layout ou imagens quebradas</td>
    </tr>
    <tr>
      <th scope="row">Banco de dados</th>
      <td>Tabelas MySQL com posts e opções</td>
      <td>Erro de conexão ou conteúdo vazio</td>
    </tr>
    <tr>
      <th scope="row">Domínio</th>
      <td>Registro DNS e certificado SSL</td>
      <td>Site fora do ar durante a propagação</td>
    </tr>
  </tbody>
</table>

O <a href="https://full.services/glossario/backup-wordpress/">backup completo</a> é o pré-requisito inegociável: sem ele, qualquer passo vira aposta.

<p class="wp-caption-text">Legenda: as três camadas da migração que precisam viajar juntas para o site não quebrar.</p>

---

## Como fazer a migração de WordPress em 5 passos seguros

A mudança segura de WordPress roda em 5 passos ordenados, e a ordem importa: backup primeiro, DNS por último. Pular o backup ou apontar o DNS antes de validar é o que transforma uma troca de 40 minutos em um dia inteiro de site fora do ar.

Os passos abaixo valem tanto para troca de hospedagem quanto para mudança de domínio, usando plugins como UpdraftPlus, All-in-One WP Migration ou Duplicator.

### Passo 1: Gere um backup verificado da origem

Antes de qualquer coisa, gere um backup completo (arquivos + banco) e abra o arquivo para confirmar que ele não está vazio. Um backup que não foi testado não é backup. Use o <a href="https://full.services/backup-wordpress-automatico/">backup automático do WordPress</a> para agendar essa rotina e mantenha pelo menos uma cópia fora do servidor de origem. A restauração também precisa de um plano: veja <a href="https://full.services/como-restaurar-o-wordpress-a-partir-do-backup/">como restaurar o WordPress a partir do backup</a> caso a migração falhe.

### Passo 2: Atualize o plugin de migração antes de exportar

Rode a exportação só com o plugin de migração na versão corrigida mais recente. Versões antigas carregam falhas conhecidas: All-in-One WP Migration abaixo da 7.90 expõe a CVE-2024-10942 (CVSS 7.5). Atualizar o plugin antes de migrar fecha a brecha pela qual um arquivo malicioso entraria durante o import.

### Passo 3: Importe em um ambiente de staging

Importe o pacote primeiro em um <a href="https://full.services/glossario/ambiente-staging/">ambiente de staging</a>, nunca direto em produção. O staging é uma cópia isolada onde você testa sem o público ver. Assim, se o search-replace de URL falhar, o site real continua no ar enquanto você corrige.

### Passo 4: Rode o search-replace serializado

Troque as URLs antigas pelas novas usando uma ferramenta que respeite dados serializados (o WP-CLI com `search-replace`, ou o próprio plugin de transferência). Um find-replace de texto puro no banco corrompe o tamanho dos arrays PHP e derruba widgets inteiros. Este é o passo que mais quebra a operação.

### Passo 5: Aponte o DNS e force o SSL

Só depois de validar tudo em staging, aponte o registro DNS para o novo servidor e confirme o <a href="https://full.services/glossario/ssl-certificado/">certificado SSL</a>. A <a href="https://full.services/glossario/dns-propagation/">propagação de DNS</a> leva de minutos a 48 horas, então mantenha a origem no ar até o tráfego migrar. Para o passo a passo de troca de host sem queda, veja o <a href="https://full.services/guia-para-migrar-seu-site-wordpress-para-novo-host/">guia de migração para novo host</a>.

---

## Riscos de segurança na migração de WordPress

A migração de WordPress é uma das janelas de maior exposição de um site, porque junta backups completos, credenciais de banco e pacotes de instalação num mesmo momento. Dois CVEs reais de plugins de transferência mostram bem onde mora o perigo concreto dessa etapa.

O Duplicator abaixo da versão 1.3.0, com o pacote deixado na raiz, permitia leitura remota de credenciais pela <a href="https://nvd.nist.gov/vuln/detail/CVE-2018-25095" rel="noopener" target="_blank">CVE-2018-25095</a> (CVSS 9.8, crítica); no All-in-One WP Migration, a <a href="https://nvd.nist.gov/vuln/detail/CVE-2024-10942" rel="noopener" target="_blank">CVE-2024-10942</a> (CVSS 7.5) permitia injetar arquivo malicioso via upload sem patch.

Segundo o perfil público do WPVulnerability, todas essas falhas já têm correção, o que sinaliza manutenção ativa. Como a gente vê no suporte da FULL, o vazamento quase nunca vem do plugin, e sim do `installer.php` esquecido na pasta pública. Vale a autoridade: a FULL é a única empresa brasileira credenciada como CNA (CVE Numbering Authority) sob a CISA desde 2022-05-03, autorizada a atribuir IDs CVE oficiais. Para auditar o que você usa, rode o <a href="https://security.full.services">FULL Scan</a> e cruze com o <a href="https://full.services/checklist-seguranca-wordpress/">checklist de segurança do WordPress</a>.

---

## Plugins de migração de WordPress: Comparativo de segurança

A escolha do plugin de migração de WordPress muda o perfil de risco da troca, não só a facilidade. UpdraftPlus (26 CVEs históricas), All-in-One WP Migration (20) e Duplicator (25) têm históricos diferentes, mas nenhum tem falha crítica sem patch hoje, segundo o perfil público do WPVulnerability. O que decide é a disciplina de atualizar antes de migrar e de limpar os artefatos depois.

<ul class="arvore-decisao" style="margin-bottom:1.5rem">
  <li><strong>Se você quer backup agendado + migração no mesmo plugin</strong> → use UpdraftPlus (26 CVEs históricas, todas corrigidas).</li>
  <li><strong>Se o site é pequeno e você quer um clique</strong> → use All-in-One WP Migration, mas confirme versão 7.90 ou superior antes do upload.</li>
  <li><strong>Se você precisa empacotar com granularidade e mover para servidor novo</strong> → use Duplicator 1.3.0+ e apague o pacote da raiz após instalar.</li>
  <li><strong>Se a operação é grande ou crítica</strong> → evite o método manual de SQL puro, escolha a opção gerenciada com search-replace serializado.</li>
</ul>

Independente do plugin, o <a href="https://full.services/glossario/cve/">registro de CVE</a> de cada um deve ser checado antes. Para um ranking detalhado, veja <a href="https://full.services/os-melhores-plugins-de-migracao-para-o-seu-site-wordpress/">os melhores plugins de migração para WordPress</a>.

---

## Como a FULL faz a migração gerenciada

Migrar manualmente exige acertar backup, versão de plugin, search-replace e DNS sem errar a ordem; um único deslize custa horas de site fora do ar. No plano PRO da FULL (R$849), a migração gerenciada entra no bundle, o que dá R$85 por site quando você gerencia 10 sites.

A migração gerenciada inclui backup gerenciado e os 17 plugins premium. A gente faz backup verificado antes de tocar em qualquer coisa, roda o search-replace serializado, valida em staging e só então aponta o DNS, mantendo a origem ativa durante a propagação. Conheça os <a href="https://full.services/planos">planos da FULL</a> para ver o que entra no bundle. Importante: a FULL é complementar à sua hospedagem, não substitui o host ,  o que entregamos é a camada de backup, migração e segurança gerenciada por cima do ambiente que você já tem.

---

## Checklist pós-migração de WordPress

Depois que o DNS aponta, 6 verificações finais separam uma troca concluída de um site com problema silencioso, e o intervalo crítico é a janela de propagação de DNS de até 48 horas que pode mascarar falhas.

O erro mais comum nesta fase é deixar o pacote de instalação ou o `.zip` de backup na pasta pública, o que reabre a brecha de leitura de credenciais que vimos nas CVEs acima. Verifique, em ordem: que o `installer.php` saiu da raiz; que o `.zip` de backup foi removido da pasta pública; que o SSL renderiza cadeado em todas as páginas; que nenhuma URL antiga sobrou no banco; que o `wp-config.php` aponta para o banco novo; e que formulários e checkout enviam de fato. A FULL trata essa limpeza como parte obrigatória da migração gerenciada, porque é nela que mora o risco residual que nenhum plugin remove sozinho.

<aside aria-label="Resumo Técnico">
<h2 id="resumo-tecnico">Resumo técnico da migração segura</h2>
<ul style="margin-bottom:1.5rem">
  <li><strong>Melhor cenário:</strong> backup verificado, plugin de migração atualizado, staging validado e DNS apontado por último, com origem mantida no ar durante a propagação.</li>
  <li><strong>Pior cenário:</strong> pacote installer.php esquecido na raiz pública após a migração terminar, expondo credenciais do banco a leitura remota.</li>
  <li><strong>Principal risco:</strong> search-replace de texto puro corrompendo arrays PHP serializados no banco, o que derruba widgets e blocos inteiros sem erro visível.</li>
  <li><strong>Melhor prática gratuita:</strong> WP-CLI search-replace, que respeita dados serializados sem corromper, somado à conferência manual do SSL.</li>
  <li><strong>Em uma frase:</strong> migração de WordPress só é segura quando o backup é verificado antes e os artefatos são apagados depois.</li>
</ul>
</aside>

<aside aria-label="Metodologia dos Testes">
<h2 id="metodologia-dos-testes">Metodologia: Como avaliamos o risco</h2>
<p>Os perfis de CVE citados foram levantados entre <time datetime="2026-05">maio</time> e <time datetime="2026-06">junho de 2026</time> a partir do registro público de vulnerabilidades por plugin, cruzando severidade CVSS, versão afetada e versão de patch. A classificação de risco atual considera apenas falhas sem correção disponível, separadas do histórico já corrigido. Os padrões operacionais (search-replace serializado, pacote exposto na raiz) vêm da recorrência observada nos tickets de migração do suporte da FULL ao longo de 2025 e 2026, com WordPress em PHP 8.2 e bancos MySQL e MariaDB. Nenhum número de mercado foi inferido sem fonte primária verificável.</p>
</aside>

---

<h2 id="faq">Perguntas frequentes sobre migração de WordPress</h2>

<details>
  <summary>É possível fazer a migração de WordPress sem tirar o site do ar?</summary>
  <p>Sim. Importe o site primeiro em um ambiente de staging e mantenha a origem ativa até a propagação de DNS terminar. Como o registro novo leva de minutos a 48 horas para propagar, o tráfego migra gradualmente sem queda. O site só fica indisponível se você desligar a origem antes da hora.</p>
</details>

<details>
  <summary>Por que a migração de WordPress quebra as imagens e os links internos?</summary>
  <p>Porque as URLs antigas ficam gravadas no banco de dados, inclusive dentro de campos serializados em PHP. Se o search-replace usa find-replace de texto puro, o tamanho declarado do array PHP fica errado e o WordPress descarta o dado, derrubando widgets e imagens. A correção é usar uma ferramenta que respeite serialização, como o WP-CLI.</p>
</details>

<details>
  <summary>Qual o plugin de migração de WordPress mais seguro em 2026?</summary>
  <p>Nenhum dos três grandes (UpdraftPlus, All-in-One WP Migration, Duplicator) tem falha crítica sem patch hoje. O Duplicator teve 2 CVEs críticas CVSS 9.8 no histórico, mas todas corrigidas. O mais seguro é o que você mantém atualizado: rodar a versão de patch mais recente antes de exportar elimina a maior parte do risco.</p>
</details>

<details>
  <summary>Quanto tempo leva uma migração de WordPress entre hospedagens?</summary>
  <p>O processo técnico de exportar e importar leva de 40 minutos a poucas horas, conforme o tamanho do banco. A variável real é a propagação de DNS, que pode chegar a 48 horas. Por isso a migração gerenciada mantém a origem ativa nesse intervalo, evitando que o site fique inacessível durante a troca.</p>
</details>

<details>
  <summary>O que verificar antes de apontar o DNS após a migração?</summary>
  <p>Confirme três coisas: o site abre completo em staging, o certificado SSL está ativo no novo servidor e o search-replace não deixou URLs antigas no banco. Só então aponte o DNS. Apontar antes de validar é o erro que mais gera loop de redirecionamento e tela de conexão insegura para o visitante.</p>
</details>

---

## Próximos passos para uma migração tranquila

A migração de WordPress segura é uma questão de ordem e disciplina: backup verificado primeiro, plugin atualizado, validação em staging e DNS por último. Os CVEs reais mostram que o risco mora menos no plugin e mais no artefato esquecido na raiz e no search-replace mal feito. Se a troca for crítica ou em volume, a opção gerenciada elimina a parte que mais quebra. Para aprofundar com calma, o <a href="https://full.services/guias/guia-de-seguranca-para-wordpress">guia de segurança para WordPress</a> reúne os passos de proteção que sustentam qualquer mudança de servidor, e o <a href="https://full.services/migracao-de-site-sem-downtime-passo-a-passo/">passo a passo de migração sem downtime</a> detalha a janela de corte.
