iKidz English
Un'accademia di inglese per bambini di Torrejón de Ardoz (Madrid) aveva il sito, il blog e la sua app educativa sparsi in tre posti diversi, su un hosting sul punto di rinnovarsi da solo e con parti rotte da anni. Ho unificato tutto sotto il suo dominio, su un server di sua proprietà e con un pannello per gestirlo senza dipendere da nessuno. Sito e blog in produzione, con HTTPS, in meno di 48 ore dall'incarico.
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
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.
Altri progetti
Tu Póliza de Salud
Recupero del sito di un broker assicurativo, 1.600+ articoli e backoffice proprio.
Cristina Tol-2
Da un sito non responsive a un WordPress bilingue ben posizionato.
Mi Cuadro Médico
Directory nazionale delle reti mediche con migliaia di pagine programmatiche.
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

