Eagle Vision Language Institute
Un site vitrine d'école de langues piraté (RCE via le mode debug laissé actif en production), puis quasiment invisible sur Google. Sécurisation complète, puis refonte SEO et performance en trois mois : 36 pages optimisées, accessibilité à 100/100.
- Client
- Eagle Vision Language Institute, école d’anglais à Accra, Ghana
- Rôle
- Développement full-stack : sécurité, backend Laravel, SEO technique, performance, déploiement
- Durée
- 3 mois · 2026
- Stack
- Laravel 10, Filament, Tailwind CSS, Alpine.js, Vite
- Équipe
- Moi, en direct avec l’école
Piraté,
puis invisible
Eagle Vision Language Institute est une école d'anglais à Accra, au Ghana, qui recrute des candidats francophones d'Afrique de l'Ouest préparant les tests TOEFL, IELTS et TOEIC. Le site précédent avait été compromis par une faille RCE : le mode debug d'Ignition était resté actif en production, exposant l'exécution de code à distance.
Une fois la brèche colmatée, l'audit a révélé un second problème, plus silencieux : le site n'avait quasiment aucune stratégie de référencement. Un seul <title> générique couvrait les 34 URLs du site, aucun hreflang ne signalait ses versions français/anglais, et aucune donnée structurée n'aidait Google à comprendre son contenu.
Sécuriser,
puis rendre visible
Premier chantier : la sécurité. Suppression des dumps SQL contenant de vraies données de production versionnés par erreur (mots de passe admin, contacts, inscrits), durcissement du formulaire de contact (honeypot, piège temporel anti-spam, limitation de débit), et documentation stricte imposant APP_DEBUG=false en production.
Deuxième chantier : le référencement technique. Titre et meta description uniques sur 36 pages FR/EN, canonical et hreflang complets, Open Graph et Twitter Cards, sitemap.xml dynamique généré à partir des 56 URLs du site, données structurées JSON-LD (organisation, FAQ, cours, fil d'Ariane), et correction de la structure des titres : 32 routes passées de trois balises <h1> à une seule.
Troisième chantier : la performance. 24,6 Mo d'images mortes supprimées du dépôt, bannière compressée en WebP (570 Ko → 61 Ko), logo redimensionné (195 Ko → 30 Ko), CSS compilé réduit de 141 Ko à 60,5 Ko en inlinant les icônes Font Awesome en SVG, cache serveur et applicatif activés.