Migrating Grav → Hugo: 32 files, 0 regression
TL;DR
arleo.eu had been running on Grav CMS for ~3 years: flat-file, PHP-FPM, ModSecurity, Cloudflare. Everything worked. But operational debt was piling up: PHP upgrades, Grav plugins to patch, TTFB creeping past 800ms on some pages.
I migrated to Hugo (Go-based static site generator) in two weeks, keeping the same URLs, the same content, and both languages FR/EN. Zero regression on SEO, Cloudflare indexing, or internal links. Here’s how.
Why Hugo
I had 3 criteria:
- Performance — Pure static. No PHP, no DB. nginx serves pre-generated
.htmldirectly. - Security — Attack surface divided by 10. No more PHP-FPM, no server-side execution on public pages.
- Clean multilingual — Hugo natively supports i18n via the
index.{lang}.mdconvention (page bundles).
Hugo checks all the boxes. Alternatives evaluated: Eleventy (JS, but less mature i18n), Zola (Rust, awesome, but fewer themes), Gatsby (too heavy for a homelab).





