静的サイトジェネレータでブログをつくることにした理由

refresh calendar 2019-10-31

時々WordPressを使った方がいいのか質問されます。 実際「WordPressは誰にでも簡単にWEBサイトを製作できる」と言いきれそうなくらいに導入の難易度は低く、僕もWordPressからWEBの世界に入ったクチなので、WordPressは良いツールだと今でも思っています。

ただ、どんなものにもメリットがあればデメリットもあります。 このブログはGatsbyJSという静的サイトジェネレーターを使用して作られていますが、利用ツールを新しくしたことにはいくつか理由がありました。

動的サイトと静的サイト

ユーザーからのリクエスト(アクセス)の都度、必要なページがデータベースを通して生成される仕組みのサイトを動的サイトと言います。 WordPresがこれに当てはまります。

逆に静的サイトとは、事前に生成されたHTMLにアクセスするタイプのサイトになります。 事前に生成されているので、何度アクセスをしようとも表示される内容は変わりません。 初期のWEBページの多くはほとんどが静的なサイトでした。

そして今回の静的サイトジェネレータですが、これまではモダンなWEBページというとWordPressのようなCMS(コンテンツ管理システム)と呼ばれるツールを利用するのが一般的だったんですが、近年になって静的サイトジェネレータという選択肢が登場し、ジワジワと人気が出てきています。

このページは静的サイトそのものについて説明するページではないので、とりあえず静的サイトジェネレータとは静的なサイトをモダンな方法で作ることができるもの程度に捉えてもらえたらいいと思います。

静的サイトジェネレータにはデータベースが存在しない

WordPressではすべてのデータ(画像や記事など)がWEBサーバー上のデータベースによって管理されています。 そしてユーザーからのアクセスの度に、必要なページを生成する仕組みになっています。 (厳密にはキャッシュによってある程度抑えらてはいますが。) そのため、しばしばハッカーに狙われてしまうことがあります。 特に管理の甘くなりがちな個人ブログは格好の餌食で、以前の僕が管理していたサイトでも疑わしいアクセスが多数ありました。

しかし、これが静的サイトジェネレータによって作られたサイトになると状況は一転します。 静的サイトジェネレータではデータベースを使用しませんし、サイトデータを置くサーバー側でも基本的にはその手のプログラムが実行できないように設定してくれているので、サイト管理者が負うべきセキュリティリスクというものから一気に解放される訳です。

僕も以前まではWordPress用のセキュリティソフトにお金を出したりしていたんですが、それでも不審なアクセスは定期的にやってくるので、あまり気持ちの良いものではなかったのは確かです。 ある程度WordPressを使ってきた人にとっては、この変化はとても大きなメリットに映るはずです。

静的サイトジェネレータは運用が楽チン!

セキュリティリスクがない静的サイトジェネレータにおいては、静的サイトジェネレータ側の最新の機能を使いたい場合を除けば、必ずしも定期的なアップデートを実行する必要性がありません。 実質的にはノーメンテで稼働させることも可能という訳です。

WordPressはプラグインによるデメリットが多い

WordPressの良いところはプラグインによる自由さだと思うんですが、実はこのプラグインが厄介の種だったりします。

プラグイン自体がWordPressの度重なるアップデートについていけずバグってしまっていたり、その結果セキュリティ上の欠陥を内包してしまったりして、知らないうちにサイトのリスクを高めてしまうことがあります。 そのため定期的なプラグインの見直しがどうしても避けられず、これが地味に面倒くさい。

その上、プラグインによる拡張のしすぎはサイトの低速化を招くなどという構造的なデメリットもあるので、最近ではプラグイン離れみたいなものまで起きてたりしますよね。

プラグイン交換はなぜ面倒なのか?

プラグイン自体の導入は簡単なんですが、全く似た機能をもったプラグインが欲しいときってありますよね。 凝った機能のプラグインほど代替プラグインを探すのが難しくなってくるので、調査にも時間がかかってしまいます。

当然ですが、「全く同じ機能性をもったプラグインを用意できない」というケースもあるので、その場合は自作するか、あるいはその機能を諦めることも当然あります。 場合によってはサイトのレイアウト変更にまで発展することもあります。

僕はこうしたことを何回か繰り返した結果、次第にシンプルな設計を好むようになってしまって、あまり特徴のないサイトばかり作るようになってしまった記憶があります。

静的サイトジェネレータは爆速で動く!

一般的に「データベースからのページ生成がない」ということは、アクセス速度の高速化につながります。

WordPress自体の動作が重い

使用しているサーバーによっても若干変わりますが、それでもWordPress自体の動作ってのは重いです。 管理画面の移動ですら遅いですし。

まぁそれもこれも、基本的にレンタルサーバーのスペックってそれほど高くないということと、WordPressというプログラム自体がPHPという処理速度の遅いプログラミング言語で作られたからということに帰着します。

つまり、WordPress自体が遅いのだから、WordPressで高速なサイトを作ろうとすれば、当然骨の折れる作業になりがちということです。

高速化のプラグインが数多く存在していることこそが全てです。

静的サイトジェネレータの欠点

サイト構築の難易度がどうしても高くなってしまいます。

この静的サイトジェネレータというのはまだ火が付きはじめた段階にあるので、プログラムの仕様変更が激しいですし、まだベストプラクティスみたいなものは固まってないでしょう。 日本語の情報が少ないというのもネックですね。

でも一番の障害はやはりこれでしょうか。 WordPressのように管理画面があるわけではなく、全てテキストエディタ上でコーディングをしないと始まらないという仕様になってるので、どうしてもプログラミング未経験の人には敷居が高くなってしまうことに尽きると思います。

まとめ

  • セキュリティリスク
  • 保守性
  • 動作速度
  • 費用

WordPressのこうした部分に嫌気がさしている人には静的サイトジェネレータへの乗り換えは考える余地は十分あると思います。

僕自身、このサイトを作るまではJavascriptはほとんど触れたことがなく、ちゃんと作りきれるか不安だったんですが、それでも2週間程でとりあえず公開できる程度までは作り上げることができました。 そして実際に納得できる設計になったのは、初めてGatsbyに触れてから約5ヶ月後です。 その間、ずっとサイトの設計をしていた訳ではないので、総時間に換算すると大したことないはず。

静的サイトジェネレータ、オススメです。

以上、今日はこれにて!

Some images are made by Freepik's icons from www.flaticon.com