<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Ssg - Tag - arleo.eu</title><link>https://www.arleo.eu/en/tags/ssg/</link><description>Ssg - Tag - arleo.eu</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sat, 09 May 2026 13:01:28 +0200</lastBuildDate><atom:link href="https://www.arleo.eu/en/tags/ssg/" rel="self" type="application/rss+xml"/><item><title>Migrating Grav → Hugo: 32 files, 0 regression</title><link>https://www.arleo.eu/en/posts/migration-grav-vers-hugo/</link><pubDate>Sat, 09 May 2026 13:01:28 +0200</pubDate><author>Jmr</author><guid>https://www.arleo.eu/en/posts/migration-grav-vers-hugo/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/migration-grav-vers-hugo-featured.jpg" referrerpolicy="no-referrer">
            </div><h2 id="tldr">TL;DR</h2>
<p>arleo.eu had been running on <strong>Grav CMS</strong> 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.</p>
<p>I migrated to <strong>Hugo</strong> (Go-based static site generator) in two weeks, keeping the same URLs, the same content, and both languages FR/EN. <strong>Zero regression</strong> on SEO, Cloudflare indexing, or internal links. Here&rsquo;s how.</p>
<h2 id="why-hugo">Why Hugo</h2>
<p>I had 3 criteria:</p>
<ol>
<li><strong>Performance</strong> — Pure static. No PHP, no DB. nginx serves pre-generated <code>.html</code> directly.</li>
<li><strong>Security</strong> — Attack surface divided by 10. No more PHP-FPM, no server-side execution on public pages.</li>
<li><strong>Clean multilingual</strong> — Hugo natively supports i18n via the <code>index.{lang}.md</code> convention (page bundles).</li>
</ol>
<p>Hugo checks all the boxes. Alternatives evaluated: <strong>Eleventy</strong> (JS, but less mature i18n), <strong>Zola</strong> (Rust, awesome, but fewer themes), <strong>Gatsby</strong> (too heavy for a homelab).</p>]]></description></item></channel></rss>