Veja como mudar domínio de um site wordpress com wp-cli, essa ferramenta possui o recurso de search-replace.

A função de search-replace basicamente busca no banco de dados por “algo” e substituí por “algonovo”.

Com isso o wp-cli é a ferramenta perfeita para utilizar em uma migração de site onde o domínio vai ser alterado.

Faça backup antes

Lembre-se de que sempre é importante fazer um backup do seu banco de dados antes de fazer mudanças significativas no site WordPress, para que você possa restaurar o site caso algo dê errado.

Na raiz do site wordpress execute o backup do banco de dados

wp db export backup.sql

Comando do wp-cli

Depois execute o comando abaixo para substituir o domínio velho pelo domínio novo.

wp search-replace 'https://antigo-dominio.com' 'https://novo-dominio.com' --skip-columns=guid

O parâmetro --skip-columns=guid é usado para evitar substituir valores na coluna “guid” do banco de dados, que é usada para gerar links permanentes (permalinks) para posts e páginas.

Exportar database com as mudanças:

wp search-replace 'https://antigo-dominio.com' 'https://novo-dominio.com' --skip-columns=guid --export=database.sql

Ao adicionar --export=database.sql no final do comando acima, vai ser exportada uma base de dados nova com as mudanças, perfeita para fazer a migração de servidor.

Usar plugins em alternativa

Alguns plugins também fazem search and replace no banco de dados e funcionam para migrar para https:

Usar phpMyAdmin como alternativa

As mudanças do bando de dados podem ser feitas diretamente através de uma ferramenta como phpmyadmin ou adminer.

Esses são os endereços essenciais:

UPDATE wp_options SET option_value = replace(option_value, 'https://antigo-dominio.com', 'https://novo-dominio.com') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'https://antigo-dominio.com','https://novo-dominio.com');

UPDATE wp_posts SET post_content = replace(post_content, 'https://antigo-dominio.com', 'https://novo-dominio.com');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://antigo-dominio.com','https://novo-dominio.com');

Outras dicas:

Esse simples comando resolve a alteração de domínio, mas pode ser usado para substituir em outros casos, como para adicionar loading=“lazy” em iframes.

wp search-replace '<iframe ' '<iframe loading="lazy" ' --skip-columns=guid

Caso seu site não seja HTTPS, utilize o wp-cli para migrar imediatamente.

Como usar o WP-CLI

Comandos para instalar o WP-CLI

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

Agora seu servidor pode executar o wp-cli em qualquer diretório, mas para utilizar o wp-cli é preciso estar dentro do diretório raiz do wordpress.