We have officially completed the transition of netguide.jp from WordPress to Hugo, a modern static site generator (SSG).
Operating a dynamic CMS like WordPress had become increasingly bottlenecked by page load delays, security updates, and hosting costs. Migrating to a static workflow resolved all of these issues. In this case study, we share our motivation, migration strategy, and the post-migration performance gains.
1. Three Reasons We Left WordPress
While WordPress remains a highly versatile CMS, its dynamic, database-driven architecture presented critical challenges as our content grew:
- Page Speed Limitations (Core Web Vitals) Accumulated database queries and heavy plugins severely degraded mobile performance, negatively impacting our Core Web Vitals (specifically LCP and INP) and dragging down search rankings.
- Maintenance Overhead & Security Risks WordPress core, themes, and plugins are constant targets for vulnerabilities. The continuous cycle of testing and updating required too much manual time to prevent hacking attempts.
- Hosting Overhead Running dynamic PHP pages quickly at scale required premium VPS hosting, resulting in high monthly operational fees.
2. Migration Design: Hugo + Stack Theme
We chose Hugo, the fastest Go-powered static site generator, paired with the highly polished Stack theme (hugo-theme-stack).
🌐 Multilingual Architecture (ja / en)
We structured our system to serve Japanese content under /ja/ and English under /en/. Alongside proper HTML alternate tags, we generated Google-compliant XML sitemaps embedding xhtml:link (hreflang annotations) to keep multilingual SEO in perfect alignment.
🖼️ Image Optimization via AVIF
To maximize delivery speeds, we created an asset pipeline that automatically converts raw PNG and JPEG thumbnails into highly compressed, next-generation AVIF images.
🔗 Complete Redirect Strategy
As we changed our URL format from nested dated paths to clean slugs (e.g., /ja/software/...), we configured 104 redirects in a _redirects file, ensuring no incoming search engine link juice or user bookmarks would break.
3. Step-by-Step Transition
We executed the migration in four major phases:
- Exporting WordPress Data We used export plugins to download all raw HTML content, metadata, post dates, slugs, and featured image associations into an structured XML format.
- Converting to Markdown
Using a custom parsing script, we converted the XML database records into front-matter-equipped Markdown files (
.ja.mdand.en.md). - Applying Themes and Overrides
We structured
hugo-theme-stackinside the directory, setting up localized search, tag clouds, and TOCs. - Optimizing Image Assets We ran image automation scripts to regenerate optimized AVIF assets, as well as distinct light and dark mode thumbnail designs.
4. 📈 Post-Migration Results
By hosting our newly generated static HTML output on Cloudflare Pages, we observed immediate improvements:
- PageSpeed Insights Maxed Out Mobile performance scores reached 100/100. Our Largest Contentful Paint (LCP) was reduced to under 0.6 seconds, making transitions feel instantaneous.
- Zero Hosting Costs Leveraging Cloudflare’s global edge network meant we could serve millions of requests on a free tier, completely eliminating our monthly VPS hosting bills.
- Absolute Security Without a database or a dynamic PHP layer, common vulnerabilities like SQL injection or brute-force administrative attacks are structurally impossible.
💬 Final Thoughts
While the initial setup of an SSG takes effort, the long-term benefits in speed, cost, security, and SEO stability make switching from WordPress to Hugo one of the best investments you can make for your web platforms.
