Hugoから別の静的サイトジェネレーターへの移行を検討してみた

Hugoから別の静的サイトジェネレーターへの移行を検討してみた
目次

はじめに

本ブログはHugoで構築しています。運用していく中で「他のツールに移行したほうが良いのでは?」と思い、代替となる静的サイトジェネレーター(SSG)を検討しました。

現在の構成

項目内容
SSGHugo
テーマBlonde(Tailwind CSS)
ホスティングAWS S3
記事形式Markdown

比較対象

主要な静的サイトジェネレーターを比較しました。

比較表

HugoAstroNext.js11tyZola
言語GoJS/TSJS/TSJSRust
ビルド速度最速速い普通速い最速
学習コスト低〜中
Markdown
テーマ数多い増加中少ない少ない少ない
日本語情報多い増加中多い少ない少ない
依存関係なしNode.jsNode.jsNode.jsなし
React対応××

各ツールの特徴

Hugo(現行)

メリット:

  • ビルドが圧倒的に速い(数百記事でも1秒以内)
  • 単一バイナリで依存関係なし
  • テーマが豊富
  • 日本語の情報が多い

デメリット:

  • テンプレート構文が独特
  • Reactなどのモダンフレームワークと統合しにくい

Astro

メリット:

  • デフォルトでJavaScript出力がゼロ(高速)
  • React/Vue/Svelteのコンポーネントを混在可能
  • モダンな開発体験

デメリット:

  • 比較的新しい(2021年〜)
  • Hugoほどテーマが充実していない

Next.js

メリット:

  • SSG/SSR両方に対応
  • Reactエコシステムが使える
  • Vercelとの相性が良い

デメリット:

  • ブログには機能過剰
  • Reactの知識が必須

11ty(Eleventy)

メリット:

  • 設定が最小限
  • 複数のテンプレートエンジンに対応
  • Hugoからの移行が比較的容易

デメリット:

  • テーマが少ない
  • 日本語情報が少ない

Zola

メリット:

  • Hugoに最も近い構成
  • 単一バイナリで高速
  • Sass組み込み

デメリット:

  • テーマ・情報が最も少ない
  • コミュニティが小さい

SEO機能の比較

ブログ運営で重要なSEO機能の対応状況を比較しました。

機能HugoAstroNext.js11tyZola
sitemap.xml◎ 標準◎ 標準△ 要設定△ 要プラグイン◎ 標準
RSS/Atom◎ 標準△ 要設定△ 要実装◎ 標準◎ 標準
robots.txt◎ 標準◎ 標準△ 要設定△ 要設定◎ 標準
OGP/Twitter Card◎ テーマ依存◎ 柔軟◎ 柔軟◎ 柔軟◎ テーマ依存
構造化データ△ 手動実装◎ 柔軟◎ 柔軟◎ 柔軟△ 手動実装
canonical URL◎ 標準◎ 標準△ 要設定△ 要設定◎ 標準
メタタグ制御

SEO面での所感

Hugo:

  • 基本的なSEO機能は標準で揃っている
  • 構造化データ(JSON-LD)はテンプレートで自作が必要
  • テーマによってSEO対応度が異なる

Astro / Next.js:

  • 柔軟にカスタマイズ可能
  • コンポーネントベースでSEOタグを管理できる
  • 設定の自由度が高い分、自分で実装する部分も多い

11ty:

  • プラグインで機能追加
  • 柔軟だが、設定は自分で行う必要あり

Zola:

  • Hugoに近い構成
  • テーマ依存が大きい

ブログ機能の比較

ブログとして必要な機能の対応状況です。

機能HugoAstroNext.js11tyZola
タグ/カテゴリ◎ 標準△ 要実装△ 要実装△ 要実装◎ 標準
ページネーション◎ 標準◎ 標準△ 要実装◎ 標準◎ 標準
アーカイブ◎ 標準△ 要実装△ 要実装△ 要実装◎ 標準
関連記事◎ 標準△ 要実装△ 要実装△ 要プラグイン◎ 標準
目次自動生成◎ 標準△ 要プラグイン△ 要実装△ 要プラグイン◎ 標準
下書き機能◎ 標準◎ 標準◎ 標準◎ 標準◎ 標準
予約投稿◎ 標準△ 要実装△ 要実装△ 要実装◎ 標準
多言語対応◎ 標準△ 要設定△ 要設定△ 要設定◎ 標準
検索機能△ 要実装△ 要実装△ 要実装△ 要実装△ 要実装

ブログ機能面での所感

Hugo / Zola:

  • ブログに必要な機能が最初から揃っている
  • 設定ファイルを書くだけで有効化できる
  • 「ブログを作る」という目的に特化している

Astro / Next.js:

  • 汎用的なフレームワークなので、ブログ機能は自分で実装
  • 自由度は高いが、実装コストがかかる
  • スターターテンプレートを使えば軽減可能

11ty:

  • プラグインで機能追加するスタイル
  • 必要な機能だけ選んで追加できる

移行コストの検討

現在のHugoサイトを移行する場合のコストを試算しました。

移行先記事の書き換えテーマ作成設定変更総合コスト
Astro小(フロントマター調整)
Next.js中(MDX化推奨)最高
11ty
Zola低〜中

結論: Hugo継続

検討の結果、Hugoを継続することにしました。

継続を選んだ理由

  1. 移行コストに見合うメリットがない

    • 現状で特に困っていない
    • 移行作業に時間を取られる
  2. ビルド速度に不満がない

    • 40記事程度なら1秒以内でビルド完了
  3. Markdownで記事を書くだけなら十分

    • Reactコンポーネントを使う予定がない
  4. テーマのカスタマイズで対応可能

    • 必要な機能は自分で追加できる

移行を検討すべきケース

以下の場合は移行を検討する価値があります。

ケースおすすめ
Reactでインタラクティブな機能を追加したいNext.js or Astro
ブログ以外のアプリ機能も追加したいNext.js
よりシンプルな構成にしたい11ty
Hugoに近い構成で別ツールを試したいZola

まとめ

静的サイトジェネレーターの選択は「何を重視するか」で決まります。

  • 速度重視 → Hugo, Zola
  • モダンな開発体験 → Astro
  • React使いたい → Next.js
  • シンプルさ → 11ty

現状に不満がなければ、無理に移行する必要はありません。「移行したい理由」が明確になったときに検討すれば十分です。