iKidz English — Home page dell'accademia di inglese per bambini, migrata su un server proprio
166 Articoli del blog migrati
875 Redirect 301, nessun link rotto
23 Attività dell'app recuperate
8.438 Email migrate, 0 perse

La sfida: tre pezzi, tre posti diversi e un conto alla rovescia

iKidz English è un'accademia di inglese di Torrejón de Ardoz con programmi per bambini, adolescenti e adulti, un modello in franchising e un decennio di contenuti didattici propri. La sua presenza online era cresciuta a strati, ognuno per conto suo:

  • Il sito istituzionaleSi trovava su un vecchio hosting che si sarebbe rinnovato da solo nel giro di pochi giorni. Aprendolo con «https» compariva un avviso di pericolo e il sito di un'altra azienda, i moduli di contatto e di franchising non inviavano nulla e il pulsante del menu verso la loro app portava a una pagina morta.
  • Il blog «Vamos Creciendo»Dieci anni di articoli su un altro dominio e un altro hosting, con link sparsi per internet nel corso degli anni. Il fornitore non permetteva nemmeno di esportare il database.
  • iKidz Space, l'app degli allieviIl suo server rispondeva «questa applicazione non esiste», l'app Android non era più su Google Play e del programma originale restava solo il codice, senza un solo dato.
  • La postaLe caselle email dell'accademia si trovavano sullo stesso hosting in scadenza.

E una condizione chiara fin dalla prima email: il design resta. Erano contenti del loro sito, quindi il lavoro consisteva nel cambiare tutto sotto il cofano senza che da fuori si notasse.

Cosa ho costruito

1. Un server proprio e lo stesso sito, nuovo dentro

  • Server cloud intestato all'accademianginx, PHP 8.3 e MariaDB, con firewall, fail2ban e HTTPS di Let's Encrypt che si rinnova da solo. L'hosting lo paga e lo controlla il cliente: non dipende da me.
  • Le sei pagine rifatte in PHP, con gli stessi URLIntestazione, menu e piè di pagina condivisi, e ogni pagina confrontata schermata per schermata con l'originale: stesso aspetto e stessi indirizzi, per non perdere nemmeno una posizione su Google.
  • Home page da 4.001 KB a 1.902 KB e zero richieste a terziFont e avviso dei cookie vengono serviti dal server stesso, senza Google Fonts né CDN esterni. In un sito per bambini, con la sua informativa sulla privacy, questo conta.
  • Moduli riscritti da zeroI messaggi arrivano per email e in più vengono salvati nel pannello e in un file a parte, nel caso un'email vada persa o finisca nello spam.
  • Accessibilità e analytics28 foto con testo alternativo scritto guardandole una per una, e Google Analytics 4 collegato: le vecchie analytics non misuravano più nulla dal 2023.

2. Il blog: dieci anni di contenuti senza perdere un link

  • Estrazione completa tramite la REST API di WordPressL'hosting non permetteva di esportare, quindi è stato estratto tutto tramite l'API: 166 articoli, 3 pagine, 706 categorie e tag, 737 commenti e 2.414 file (812 MB), contati e verificati uno per uno.
  • Importatore proprio in blocchi modificabiliOgni articolo viene convertito in blocchi che il team può modificare. Verificato che salvare di nuovo un articolo qualsiasi produce esattamente lo stesso HTML: 166 su 166.
  • 875 redirect 301, con un solo saltoOgni vecchio link porta direttamente al suo articolo sul nuovo dominio, ed è questo che conserva il posizionamento. Le vecchie foto e il feed RSS continuano a rispondere ai loro indirizzi di sempre.
  • Un elenco degli articoli che finalmente fa bella figuraFoto in 164 articoli su 166 (quasi nessuno aveva un'immagine in evidenza: si usa la prima foto del testo), pulsanti di condivisione che non caricano tracker e video di YouTube in modalità senza cookie.

3. iKidz Space: l'app degli allievi, riportata in vita nel browser

  • Rifatta in PHP, nello stesso pannelloCondivide il database con il sito, vive su un proprio sottodominio e si gestisce dallo stesso backoffice del blog.
  • Le 23 attività originali, senza ricompilare nullaSono giochi HTML5 del 2017 pensati per un'app Android. Un ponte in JavaScript fornisce loro ciò che prima forniva l'app nativa, e funzionano in qualsiasi browser. Tutte e 23 testate in un vero Chrome, con zero errori.
  • Accesso sicuro tramite sessioneOgni bambino vede e salva solo ciò che è suo. Sessioni di tre ore per non perdere i progressi a metà lezione e un freno ai tentativi ripetuti che non blocca un'intera classe collegata a internet dalla stessa connessione.
  • Allievi, inviti e progressiIscrizione degli allievi con invito via email alla famiglia (accetta due indirizzi), monitoraggio attività per attività e controllo su quali attività si vedono e in quale ordine.
  • Niente analytics nell'area dei bambiniPer scelta progettuale: la loro navigazione non esce dal server dell'accademia.

4. Children's Day Map, recuperata (e non più scaduta)

  • Un'app orfana, di nuovo a casaL'app pubblica del 2014 linkata dal blog era rimasta senza casa: il suo dominio originale reindirizzava a una rete pubblicitaria e non era più né su App Store né su Google Play. Ora viene servita dal dominio dell'accademia, senza dipendere da nessuno.
  • Scaduta dal 2024, e sistemataAccettava solo gli anni dal 2014 al 2023, quindi dal 1° gennaio 2024 era impossibile andare oltre la prima schermata. Ho applicato una patch al codice del 2014 per portare il calendario al 2021-2030, con nuove illustrazioni e gli audio degli anni generati con l'IA a partire dalla voce originale.

5. La posta, trasferita senza perdere un messaggio

  • 4 caselle e 8.438 emailPosta in arrivo, inviata, bozze e cartelle, con le loro date, più 80 contatti, trasferiti su un nuovo servizio di hosting email.
  • Passaggio senza buchiIl trasferimento da un server di posta all'altro è stato pianificato perché nulla andasse perso durante la transizione, ed è stata corretta la configurazione antispam del dominio, che conteneva un errore che la rendeva inefficace.

6. Un pannello perché l'accademia lo gestisca in autonomia

  • Backoffice su misuraHome page modificabile per sezioni, pagine, editor del blog a blocchi, libreria di immagini che alleggerisce da sola le foto scattate con il cellulare e ne rimuove la posizione, messaggi dei moduli, allievi, attività, utenti e impostazioni.
  • Sicurezza di seriePassword con Argon2id, protezione CSRF in tutti i moduli e pulizia dell'HTML pubblicato.
  • Rete di sicurezzaSe il database non risponde, le pagine continuano a essere servite. Backup giornalieri in più posti, testati ripristinandoli davvero.
  • Manuale di consegna in PDFPerché il team possa cambiare testi, foto, articoli e accessi senza chiamare nessuno.

Il risultato

Sito, blog e app ora vivono sotto un unico dominio, su un server dell'accademia e gestiti da un solo pannello, con il design di sempre. Nulla è andato perso lungo la strada: né un articolo, né una foto, né un'email, né un link, e ogni cosa è stata contata una per una per verificarlo.

L'hosting è passato da circa 650 dollari all'anno a meno di 100 € (circa 500 € di risparmio annuo) su una macchina decisamente più potente. Strada facendo sono stati sistemati una decina di difetti ereditati che nessuno aveva notato, dai moduli che non inviavano nulla a un'offerta del 2016 che continuava a comparire su mobile.

Alcune schermate

Il sito e il blog, su tutti i dispositivi

iKidz Space, Day Map e il pannello

Stack

PHP 8.3 (senza framework) MariaDB nginx Hetzner Cloud Let's Encrypt Backoffice su misura TinyMCE Migrazione WordPress (REST API) Redirect 301 Phaser (giochi HTML5) Migrazione email IMAP Backup automatici ElevenLabs (voce con IA) Google Analytics 4

Sito del cliente: ikidzenglish.com — accademia di inglese a Torrejón de Ardoz.

Il tuo sito, il tuo blog o la tua applicazione sono sparsi in giro e fuori dal tuo controllo? Scopri il mio servizio di sviluppo web su misura.

Il tuo sito vive su un hosting che non controlli o ha parti ormai morte?

Ti dico cosa c'è, cosa si può salvare e come riportare tutto in un posto tuo senza perdere contenuti né posizionamento. Prima revisione senza impegno e preventivo chiuso per iscritto.

Parliamo del tuo sito →

Hai bisogno di riordinare e recuperare il tuo sito?

Migrazioni senza perdite, PHP su misura e pannelli che il tuo team può usare in autonomia. Chiamata di 30 minuti senza impegno.

Richiedi un preventivo gratuito