iKidz English — Página inicial da academia de inglês para crianças, migrada para um servidor próprio
166 Artigos do blog migrados
875 Redirecionamentos 301, nenhum link partido
23 Atividades da app recuperadas
8.438 Emails migrados, 0 perdidos

O desafio: três peças, três lugares e um relógio a contar

iKidz English é uma academia de inglês de Torrejón de Ardoz com programas para crianças, adolescentes e adultos, modelo de franchising e uma década de conteúdo educativo próprio. A sua presença online tinha crescido por camadas, cada uma para o seu lado:

  • O site corporativoEstava num alojamento antigo que se renovava automaticamente dentro de poucos dias. Ao entrar com «https» aparecia um aviso de perigo e o site de outra empresa, os formulários de contacto e de franchising não enviavam nada e o botão do menu que levava à app dava numa página morta.
  • O blog «Vamos Creciendo»Dez anos de artigos noutro domínio e noutro alojamento, com links espalhados pela internet ao longo de anos. O fornecedor nem sequer permitia exportar a base de dados.
  • iKidz Space, a app dos alunosO seu servidor respondia «esta aplicação não existe», a app Android já não estava no Google Play e do programa original só restava o código, sem um único dado.
  • O emailAs caixas de correio da academia estavam no mesmo alojamento que estava prestes a expirar.

E uma condição clara desde o primeiro email: o design mantém-se. Estavam satisfeitos com o seu site, por isso o trabalho consistia em mudar tudo por baixo sem que se notasse por fora.

O que construí

1. Um servidor próprio e o mesmo site, novo por dentro

  • Servidor na nuvem em nome da academianginx, PHP 8.3 e MariaDB, com firewall, fail2ban e HTTPS da Let's Encrypt que se renova sozinho. O alojamento é pago e controlado pelo cliente: não depende de mim.
  • As seis páginas refeitas em PHP, com os mesmos URLsCabeçalho, menu e rodapé comuns, comparados captura a captura com os originais: mesmo aspeto e mesmos endereços, para não perder nem uma posição no Google.
  • Página inicial de 4.001 KB para 1.902 KB e zero pedidos a terceirosA tipografia e o aviso de cookies são servidos a partir do próprio servidor, sem Google Fonts nem CDN externas. Num site para crianças, com a sua própria política de privacidade, isso importa.
  • Formulários reescritos de raizAs mensagens chegam ao email e, além disso, ficam guardadas no painel e num ficheiro à parte, caso um email se perca ou acabe no spam.
  • Acessibilidade e analítica28 fotos com texto alternativo escrito a olhar para cada uma delas, e Google Analytics 4 ligado: a analítica antiga não media nada desde 2023.

2. O blog: dez anos de conteúdo sem perder um único link

  • Extração completa pela API REST do WordPressO alojamento não permitia exportar, por isso tirou-se tudo pela API: 166 artigos, 3 páginas, 706 categorias e etiquetas, 737 comentários e 2.414 ficheiros (812 MB), contados e verificados um a um.
  • Importador próprio para blocos editáveisCada artigo é convertido em blocos que a equipa pode editar. Verificado que voltar a guardar qualquer um deles gera exatamente o mesmo HTML: 166 de 166.
  • 875 redirecionamentos 301, num único saltoCada link antigo leva diretamente ao respetivo artigo no novo domínio, que é o que preserva o posicionamento. As fotos antigas e o RSS continuam a responder nos endereços de sempre.
  • Uma listagem que finalmente tem bom aspetoFoto em 164 de 166 artigos (quase nenhum tinha imagem destacada: usa-se a primeira foto do texto), botões de partilha que não carregam rastreadores e vídeos do YouTube em modo sem cookies.

3. iKidz Space: a app dos alunos, ressuscitada no navegador

  • Refeita em PHP, no mesmo painelPartilha a base de dados com o site, vive no seu próprio subdomínio e é gerida a partir do mesmo backoffice que o blog.
  • As 23 atividades originais, sem recompilar nadaSão jogos HTML5 de 2017 pensados para uma app Android. Uma ponte em JavaScript dá-lhes o que antes lhes dava a app nativa, e funcionam em qualquer navegador. Testadas as 23 num Chrome real, com zero erros.
  • Acesso seguro por sessãoCada criança só vê e guarda o que é seu. Sessões de três horas para não perder o progresso a meio da aula e um travão contra tentativas repetidas que não bloqueia uma turma inteira que acede à internet pela mesma ligação.
  • Alunos, convites e progressoRegisto de alunos com convite por email à família (admite dois endereços), acompanhamento atividade a atividade e controlo de que atividades se veem e por que ordem.
  • Sem analítica na área das criançasPor decisão de design: a sua navegação não sai do servidor da academia.

4. Children's Day Map, resgatada (e já não caducada)

  • Uma app órfã, de volta a casaA app pública de 2014 para a qual o blog remetia tinha ficado sem casa: o seu domínio original redirecionava para uma rede de publicidade e já não estava nem na App Store nem no Google Play. Agora é servida a partir do domínio da academia, sem depender de ninguém.
  • Caducada desde 2024, e corrigidaSó aceitava os anos de 2014 a 2023, por isso desde 1 de janeiro de 2024 era impossível passar do primeiro ecrã. Corrigi o código de 2014 para levar o calendário para 2021-2030, com ilustrações novas e os áudios dos anos gerados com IA a partir da voz original.

5. O email, transferido sem perder uma única mensagem

  • 4 caixas de correio e 8.438 emailsRecebidos, enviados, rascunhos e pastas, com as respetivas datas, mais 80 contactos, transferidos para um novo alojamento de email.
  • Mudança sem lacunasA passagem de um servidor de correio para outro foi planeada para que nada se perdesse na transição, e foi corrigida a configuração antispam do domínio, que tinha um erro que a anulava.

6. Um painel para que a academia o gira sozinha

  • Backoffice à medidaPágina inicial editável por secções, páginas, editor de blog por blocos, biblioteca de imagens que torna automaticamente mais leves as fotos do telemóvel e lhes retira a localização, mensagens dos formulários, alunos, atividades, utilizadores e definições.
  • Segurança de sériePalavras-passe com Argon2id, proteção CSRF em todos os formulários e limpeza do HTML que é publicado.
  • Rede de segurançaSe a base de dados não responder, as páginas continuam a ser servidas. Cópias de segurança diárias em vários locais, testadas com restauros reais.
  • Manual de entrega em PDFPara que a equipa altere textos, fotos, artigos e acessos sem ter de ligar a ninguém.

O resultado

Site, blog e app vivem agora sob um mesmo domínio, num servidor da academia e geridos a partir de um único painel, com o design de sempre. Nada se perdeu pelo caminho: nem um artigo, nem uma foto, nem um email, nem um link, e tudo foi contado um a um para o comprovar.

O alojamento passou de cerca de 650 dólares por ano para menos de 100 € (cerca de 500 € de poupança anual) numa máquina bastante mais potente. Pelo caminho foi corrigida uma dezena de falhas herdadas que ninguém tinha detetado, desde formulários que não enviavam até uma promoção de 2016 que continuava a aparecer no telemóvel.

Algumas capturas de ecrã

O site e o blog, em todos os dispositivos

iKidz Space, Day Map e o painel

Stack

PHP 8.3 (sem framework) MariaDB nginx Hetzner Cloud Let's Encrypt Backoffice à medida TinyMCE Migração WordPress (API REST) Redirecionamentos 301 Phaser (jogos HTML5) Migração de email IMAP Cópias de segurança automáticas ElevenLabs (voz com IA) Google Analytics 4

Site do cliente: ikidzenglish.com — academia de inglês em Torrejón de Ardoz.

O seu site, o seu blog ou a sua aplicação estão dispersos e fora do seu controlo? Descubra o meu serviço de desenvolvimento web à medida.

O seu site está num alojamento que não controla ou tem peças mortas?

Digo-lhe o que existe, o que se pode salvar e como trazer tudo para um lugar seu sem perder conteúdo nem posicionamento. Primeira revisão sem compromisso e orçamento fechado por escrito.

Vamos falar do seu site →

Precisa de organizar e resgatar o seu site?

Migrações sem perdas, PHP à medida e painéis que a sua equipa pode usar sozinha. Chamada de 30 minutos sem compromisso.

Pedir orçamento gratuito