Se já visitaste este site antes, provavelmente terás reparado que algo mudou. Este post serve precisamente para explicar os motivos, o desafio e as lições que se retiraram da migração deste site, de Ghost para WordPress.
Caso sejas novo neste site, este era o look anterior, que utilizava a plataforma Ghost e o tema Unblock:
O problema (e a solução)
Este redesign não estava nos planos, pelo menos não para tão cedo. No entanto, o meu antigo hosting (Ghostify) acabou por acelerar o processo; no dia 30 de Outubro recebi um e-mail a informar-me que o serviço iria fechar as suas portas no final de 2014.
Não posso dizer que fiquei surpreendido quando recebi esse e-mail, visto que há já alguns meses que o serviço estava a piorar – os e-mails e tweets ficavam vários dias sem resposta e as actualizações à versão do Ghost demoravam a surgir. Era tempo de encontrar uma nova “casa” para o blog.
A solução mais simples passaria por exportar o conteúdo do blog actual para um novo hosting que suportasse o Ghost, mas a lenta evolução desta plataforma fez-me pensar 2 vezes em manter esta alternativa ao WordPress.
Como se tal não bastasse, o autor do tema que tinha adquirido já tinha deixado claro que não faria mais actualizações ao mesmo, pelo que ficaria sem as novas funcionalidades do Ghost quando estas surgissem.
Apesar de admirar a velocidade e simplicidade do Ghost, os serviços de hosting para esta plataforma não praticam um preço simpático, pelo menos se considerarmos que existem alternativas bem mais em conta para um simples blog pessoal.
O valor mais baixo praticado pelo hosting da equipa que desenvolve o Ghost é de $10 por mês, algo que considero demasiado dispendioso para o que é. Para além da questão do custo, estava na hora de passar para algo com maior suporte e número de funcionalidades.
Era tempo, portanto, de migrar para o WordPress.
Passar para WordPress acaba por ser um pouco o regresso à minha zona de conforto (já trabalho com o WordPress há muitos anos) mas o final do Ghostify acabou por ditar também o fim (pelo menos para já) da minha aventura com o Ghost.
Obstáculos
Os benefícios de passar para WordPress eram óbvios, mas esta migração não seria possível com um par de cliques – afinal de contas, estava também a passar de um CMS (Content Management System) para outro. Era como começar de novo – com conteúdos já criados, é certo, mas com tudo o resto por adaptar.
Após alguma pesquisa, percebi que a melhor forma de garantir que tudo funcionaria perfeitamente seria se refizesse tudo… à mão. Felizmente, tinha um site relativamente pequeno e 2 meses para preparar todo este projecto.
Outro problema seria a performance – os serviços de hosting optimizados para Ghost eram francamente rápidos, mas se passasse para um hosting partilhado, a performance ficaria bastante abaixo. O desafio estava em encontrar uma solução com um preço competitivo (similar ao do Ghost, cerca de $5 por mês) mas sem criar uma experiência frustrante para o utilizador.
Em resumo, no final desta transição, queria garantir que:
- todos os artigos e imagens estariam neste novo site;
- não haveria impacto no SEO e social shares;
- os comentários existentes não seriam perdidos;
- a performance do site permaneceria elevada.
Objectivos traçados – mãos à obra!
A Checklist
Existiam vários pontos importantes que se podem aplicar a muitas outras migrações de sites. Para garantir que nada ficava esquecido, criei esta checklist no meu programa de eleição para gerir tarefas, o Wunderlist:
Vamos então conhecer cada ponto um pouco melhor…
Performance do site
Esta era uma questão crítica, porque como referi em cima, se recorresse a um plano de hosting partilhado e lá instalasse o WordPress, poderia acabar por ficar com um site bastante lento.
Existem excelentes soluções de hosting optimizadas para WordPress (como o WP Engine) mas o preço é proibitivo para quem apenas quer um simples blog pessoal.
Depois de bastante pesquisa, acabei por optar pela solução da DigitalOcean – uma VPS (Virtual Private Server) acessível, a 5 dólares por mês, que dá direito a configurarmos o nosso servidor como bem entendermos. Lá, instalei o Ubuntu 12.04.5 x64 e sincronizei-o com o serviço ServerPilot, que é gratuito.
O ServerPilot é um projecto específico para o hosting da DigitalOcean que não só instala o WordPress por nós, como configura o Nginx para o frontend, tornando toda a estrutura mais leve e rápida.
No entanto, mesmo com o Nginx, o site não aguentaria muitos utilizadores em simultâneo se o CPU e a RAM estivessem a trabalhar constantemente. Era importante garantir que a VPS trabalharia o mínimo possível.
Para garantir uma boa gestão dos recursos da VPS, instalei posteriormente o popular plug-in W3 Total Cache e configurei uma nova CDN na Amazon Cloudfront.
Segui ainda os vários passos deste artigo para optimizar a velocidade de carregamento.
Os resultados foram bastante positivos, como este teste de velocidade do Pingdom confere. Agora sim, o site estava preparado para receber visitas!
Importar todos os artigos e imagens
O site até poderia ser o site mais rápido do mundo, mas que utilidade teria sem conteúdo? O próximo passo seria claro passar todos os artigos do blog original para o WordPress.
Existe muita documentação sobre como passar de WordPress para Ghost, mas o inverso é raro. Como este blog tem cerca de 50 artigos, optei por fazê-lo “à mão”, até porque teria de re-inserir todas as imagens manualmente, visto que estavam associadas a outra CDN e com menos informação do que aquela que o WordPress permite. Algumas imagens de destaque tiveram ainda de ser redimensionadas ou mesmo alteradas.
Não foi certamente a tarefa mais divertida ou produtiva, mas foi a melhor forma de garantir que tudo ficava conforme pretendido.
Restaurar datas e links
Importados os artigos, o próximo passo seria alterar a data de cada post para a data original de publicação, para ficarem todos na ordem original e com a mesma informação.
Garantir que os links eram iguais aos anteriores era crítico, não só para garantir que não surgiam broken links, como para efeitos de SEO. Esta seria ainda a única forma de preservar os social shares que cada artigo já possuía.
Este passo tornou-se mais simples com esta folha de cálculo:
Migrar Disqus
O Disqus é a plataforma que geria todos os comentários do anterior blog e também aquela que pretendia utilizar neste WordPress.
Como todos os URLs ficariam iguais (como se viu no passo anterior) e como o ID do Disqus seria o mesmo, em teoria tudo funcionaria como devia.
Pelo sim, pelo não, optei por confirmar primeiro via Twitter para depois proceder à instalação do plugin para WordPress.
Dito e feito! Este passo não poderia ser mais simples.
Traduções do theme
O WordPress foi instalado na versão portuguesa, para garantir que as funcionalidades principais estariam nesse idioma, mas a instalação do tema obrigava à tradução de mais elementos.
A maior parte dos temas premium traz ficheiros .po para facilitar as traduções. Tudo o que temos de fazer é abrir o ficheiro .po com o Poedit, traduzir os campos necessários e fazer o upload do resultado por FTP.
Styling
O theme escolhido para este blog foi o Gonzo, um tema bastante popular para WordPress. No entanto, queria torná-lo mais parecido com o design do site anterior, pelo que utilizei os mesmos tipos de letra e código de cores e personalizei o tema WordPress com as técnicas que descrevo aqui.
Pelo caminho, criei ainda um novo logotipo, um favicon e uma nova barra lateral, como se pode ver.
Alterar nameservers
O passo final ocorreu durante o dia 23 de Dezembro e consistiu na alteração dos nameservers, para que brunobrito.pt apontasse agora para este novo site.
Em algumas horas, o novo site estava 100% disponível!
Conclusão
Uma migração não tem que ser um quebra-cabeças, desde que bem planeada.
Depois de todos os passos, esperava encontrar vários problemas – links que não funcionavam, imagens em falta, problemas em restaurar comentários – mas a verdade é que tudo correu perfeitamente à primeira, sem surpresas.
Existe ainda muito trabalho pela frente, mas o mais difícil já está. Espero que gostes!