Migração do Magento 1 para o Magento 2: dados, SEO e plano de cutover
O Magento 1 chegou ao fim da vida em junho de 2020, e ainda há lojas rodando nele, muitas vezes remendadas à mão e presas em versões antigas do PHP. Movê-las para o Magento 2.4.8 tem menos a ver com a ferramenta que copia os dados e mais com planejamento: o que migrar, como manter o ranking nos buscadores e como fazer a troca sem perder pedidos.
Este é o plano que sigo em uma migração do Magento 1 para o Magento 2. Ele é dividido em quatro frentes que rodam em paralelo: dados, código e tema, SEO e cutover.
O que migra e o que não migra
O Data Migration Tool da Adobe move conteúdo do banco de dados. Isso cobre:
- Produtos, categorias, atributos e attribute sets
- Clientes, endereços e customer groups
- Pedidos, invoices, shipments e credit memos
- CMS pages e blocks, URL rewrites, a maior parte da configuração da loja
- Cart price rules, catalog price rules e configurações de impostos
Ele não move:
- Código de extensões, temas ou templates. Esses são reconstruídos para o Magento 2.
- Arquivos de mídia. Você copia o
media/do Magento 1 para opub/media/por conta própria. - Dados de tabelas de extensões de terceiros, a menos que você escreva map files para elas.
Antes de mexer na ferramenta, faça um inventário de toda extensão do Magento 1, do que ela guarda no banco e se o negócio ainda precisa dela. Muitas lojas carregam extensões que ninguém usa mais. Cada uma que você descarta é um map file a menos e um módulo do Magento 2 a menos para comprar ou construir.
Frente 1: migração de dados
Configure a ferramenta
Instale um Magento 2.4.8 limpo, sem sample data, e depois adicione o Data Migration Tool na mesma versão do Magento:
composer require magento/data-migration-tool:2.4.8
bin/magento setup:upgrade
A configuração fica em vendor/magento/data-migration-tool/etc/, em uma pasta para o par de edições, como opensource-to-opensource/, com uma subpasta por versão suportada do Magento 1. Escolha a que corresponde à sua loja de origem. Copie o config.xml.dist para config.xml e preencha os dados dos bancos de origem e destino e a crypt_key do app/etc/local.xml do Magento 1. A chave é necessária para manter legíveis valores criptografados, como a configuração de pagamento.
Não edite arquivos dentro de vendor/ diretamente. Copie a configuração e os map files que você alterar para o seu próprio módulo e aponte a ferramenta para eles, para que um update do Composer não apague o seu trabalho.
Rode os três passos
bin/magento migrate:settings --reset path/to/config.xml
bin/magento migrate:data --reset path/to/config.xml
bin/magento migrate:delta path/to/config.xml
- Settings move websites, stores e configuração.
- Data move o grosso do conteúdo. Ele roda primeiro as checagens de integridade e para em qualquer campo ou documento de origem que não tenha destino nem regra nos map files.
- Delta copia as alterações feitas no Magento 1 depois do passo data, como novos pedidos e clientes. A ferramenta rastreia essas alterações com triggers que ela adiciona ao banco do Magento 1.
As falhas na checagem de integridade são o trabalho de verdade. Cada uma significa uma tabela ou coluna de uma extensão ou de uma customização que a ferramenta não conhece. Para cada uma, decida mapear para uma tabela do Magento 2, ignorar no map.xml (em document_rules ou field_rules da origem) ou migrar com o seu próprio script depois que a ferramenta rodar.
<ignore>
<document>aw_blog_post</document>
</ignore>
<ignore>
<field>sales_flat_order.legacy_erp_flag</field>
</ignore>
A opção --auto resolve alguns erros de integridade automaticamente. Evito, exceto em testes rápidos, porque ela esconde decisões que você quer tomar de propósito.
Limpe a origem primeiro
A migração é o melhor momento para descartar dados de que você não precisa. Quotes antigas, logs, tabelas de relatórios e carrinhos abandonados podem ser enormes no Magento 1 e deixar lento cada ensaio. Limpe em uma cópia do banco de origem antes de migrar, não no Magento 1 de produção.
Depois do passo data
rsync -a old-server:/var/www/m1/media/catalog/ pub/media/catalog/
bin/magento indexer:reindex
bin/magento catalog:images:resize
bin/magento cache:flush
Depois confira os dados com quem conhece o negócio. Conte produtos, clientes e pedidos dos dois lados. Abra alguns produtos complexos, um configurável com muitos filhos, um bundle, um produto com custom options, e compare com o Magento 1. Faça login como um cliente migrado. O Magento 2 aceita os hashes de senha antigos e os atualiza no login.
Frente 2: código e tema
Esta frente roda em paralelo e normalmente é a mais demorada. Para cada extensão do Magento 1 que fica, decida entre a versão do fornecedor para o Magento 2, outra extensão do Magento 2 que cubra a necessidade, a funcionalidade nativa do Magento 2 ou desenvolvimento custom.
O tema é uma reconstrução de qualquer jeito. Templates do Magento 1 não podem ser portados. Este é o momento de escolher entre um tema baseado em Luma e o Hyvä, que comparo em outro artigo.
Mantenha uma lista de todo comportamento custom do Magento 1: rewrites no config.xml, observers, cron jobs, steps de checkout custom, exportações para ERP. Cada linha vira um ticket no Magento 2 ou uma decisão explícita de descartar.
Frente 3: SEO
O ranking se perde nas migrações porque URLs mudam sem redirects, o conteúdo some ou o novo site entra no ar com erros técnicos. O plano tem três partes.
Monte o inventário de URLs
Antes de qualquer coisa mudar, reúna toda URL que importa:
- Um crawl completo do site Magento 1 com um crawler como o Screaming Frog.
- URLs com impressões ou cliques no Google Search Console dos últimos 16 meses.
- Landing pages com tráfego no analytics.
- URLs com backlinks externos, de qualquer ferramenta de backlinks que você use.
Junte tudo em uma lista. Essa lista é o conjunto de testes dos redirects.
Mantenha as URLs sempre que der
A ferramenta migra URL keys e URL rewrites, então a maioria das URLs de produto e categoria pode ficar idêntica. Para mantê-las idênticas, reproduza no Magento 2 as configurações do Magento 1:
- Sufixo de URL de produto e categoria, normalmente
.html, em Catalog, Search Engine Optimization. - Se as URLs de produto incluem o caminho da categoria.
- Store codes nas URLs, se o Magento 1 usava.
Cada URL que continua funcionando sem redirect é uma coisa a menos que pode dar errado.
Redirecione o que muda
Para as URLs que mudam, como CMS pages reestruturadas, categorias removidas, um blog que mudou de lugar ou URLs antigas de busca e filtro, crie redirects 301 para a página relevante mais próxima. Não para a home. Para algumas centenas de regras, URL rewrites custom do Magento funcionam. Para milhares, um map no servidor web é mais rápido e mais fácil de manter:
map $request_uri $m1_redirect {
default "";
/old-category/old-product.html /new-category/new-product.html;
/blog/2019/some-post /blog/some-post;
}
server {
if ($m1_redirect) {
return 301 $m1_redirect;
}
}
Depois teste o inventário inteiro de URLs contra o staging: toda URL deve retornar 200 direto ou um único 301 para uma página 200. Sem cadeias, sem 404, sem redirect para a home. Um script curto com curl faz isso em minutos e deve rodar depois de cada ensaio.
Checagens técnicas antes do lançamento
- Canonical tags em produtos e categorias configuradas do jeito que você quer.
- Robots meta e
robots.txtcorretos para produção, não copiados do staging. - XML sitemap gerado e acessível, pronto para enviar no Search Console.
- Titles, meta descriptions e descrições de categoria migrados, não deixados vazios.
- Dados estruturados de produtos presentes e válidos.
Frente 4: ensaios e cutover
Ensaie a migração completa
Rode a migração completa pelo menos duas vezes em uma cópia nova do banco de produção do Magento 1, cronometrando cada passo. O primeiro ensaio encontra os problemas. O segundo confirma as correções e dá uma duração realista. Se o passo data demora demais para o downtime que o negócio aceita, o modo delta é o que faz funcionar: rode settings e data dias antes do lançamento e só o delta durante a janela de cutover.
Uma regra importa aqui. Entre o passo data e o delta final, não altere entidades migradas no admin do Magento 2. O delta grava no Magento 2 as alterações do Magento 1 e pode sobrescrever ou entrar em conflito com edições feitas lá. Configure coisas novas, mas deixe produtos, clientes e pedidos migrados em paz até o lançamento.
Checklist de cutover
- Alguns dias antes: reduza o TTL do DNS para a troca propagar rápido.
- Congele alterações de conteúdo no Magento 1. Só pedidos e cadastros de clientes continuam.
- No início da janela: coloque o Magento 1 em modo de manutenção para não chegarem novos pedidos.
- Rode o
migrate:deltafinal, copie a mídia nova, faça o reindex e limpe os caches. - Smoke test no domínio real a partir de uma rede interna ou do arquivo hosts: navegar, buscar, fazer login, fazer pedidos com cada método de pagamento, conferir se o pedido chega ao ERP ou ao fulfillment.
- Troque o DNS ou o load balancer. Mantenha o Magento 1 disponível em modo somente leitura para consulta.
- Rode o teste do inventário de URLs contra a produção. Envie o sitemap.
As primeiras semanas
Acompanhe diariamente nas primeiras semanas a cobertura no Search Console e os relatórios de 404, e adicione redirects para o que foi esquecido. Acompanhe os logs de erro do servidor, as taxas de sucesso de pagamento e o fluxo de pedidos para o back office. Alguma oscilação no ranking logo depois do lançamento é normal. O que importa é que os 404 sejam corrigidos rápido e que nada importante tenha ficado sem redirect.
FAQ
O Data Migration Tool move temas e extensões?
Não. Ele move conteúdo do banco de dados, como produtos, clientes, pedidos, conteúdo de CMS, URL rewrites e configuração. Temas e código de extensões precisam ser reconstruídos ou trocados por versões do Magento 2, e os arquivos de mídia são copiados separadamente.
Os clientes mantêm as senhas depois de migrar do Magento 1?
Sim. Os hashes de senha dos clientes são migrados, e o Magento 2 aceita os hashes antigos e os atualiza para o algoritmo atual na próxima vez que o cliente fizer login.
Como evito perder ranking de SEO em uma migração Magento?
Monte um inventário de toda URL com tráfego ou backlinks, mantenha URL keys e sufixos idênticos sempre que possível, adicione redirects 301 para tudo o que mudar e teste a lista completa contra o staging antes do lançamento.
O que é o modo delta no Data Migration Tool?
Depois do passo principal de data, o migrate:delta copia só as alterações feitas no Magento 1 desde então, como novos pedidos e clientes. Ele permite migrar a maior parte dos dados dias antes e manter curta a janela de cutover.
Atendo como freelancer em Magento e Adobe Commerce, de desenvolvimento de módulos e auditorias de performance a migrações e projetos com Hyvä. Se isso for útil, fale comigo.
Artigos relacionados
Core Web Vitals no Magento 2: como corrigir LCP, INP e CLS
Onde lojas Magento 2 com Luma perdem nos Core Web Vitals e como corrigir LCP, INP e CLS: resposta do servidor, CSS, fontes, imagens, galeria e scripts de terceiros.
Hreflang no Magento 2: SEO multi-idioma do jeito certo
O Magento 2 não traz hreflang de fábrica. Como estruturar store views, montar URLs alternativas a partir dos URL rewrites, ligar páginas CMS e evitar erros comuns.
Checklist de SEO técnico do Magento 2 para desenvolvedores
Checklist de SEO técnico do Magento 2: URLs e rewrites, canonicals, layered navigation, robots.txt, sitemap, status codes, HTTPS e conferências pós-deploy.
Plano de migração do Luma para o Hyvä: auditoria, fases e lançamento
Plano de migração do Luma para o Hyvä no Magento 2: auditoria de extensões e tema, decisão de checkout, reconstrução página a página, paridade de SEO, testes e rollback.